方立勋

    xiaoxiao2021-03-25  94

    JSP+JavaBean模式适合开发业务逻辑不太复杂的web应用程序,这种模式下,JavaBean用于封装业务数据,JSP即负责处理用户请求,又显示数据。Servlet+JSP+JavaBean(MVC)模式适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp负责数据显示,javabean负责封装数据。 Servlet+JSP、JavaBean模式程序各个模块之间层次清晰,web开发推荐采用此种模式。

    使用JSP+JavaBean编写一个计算器(calculator)页面,JavaBean具有firstNum、secondNum、result、operator属性,并提供一个calculate方法。


    JSP页面

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>简单计算器</title> </head> <body style="text-align: center;"> <jsp:useBean id="calculatorBean" class="com.java.domain.CalculatorBean"></jsp:useBean> <jsp:setProperty property="*" name="calculatorBean" /> <% try{ calculatorBean.calculator(); }catch(Exception e){ out.write(e.getMessage()); } %> <br />------------------------------------------------------------------------------- <br> 计算结果是: <jsp:getProperty property="firstNum" name="calculatorBean" /> <jsp:getProperty property="operator" name="calculatorBean" /> <jsp:getProperty property="secondNum" name="calculatorBean" /> = <jsp:getProperty property="result" name="calculatorBean" /> <br />------------------------------------------------------------------------------- <br> <form action="/day09_calculator/calculator.jsp" method="post"> <table width="50%" border="1px"> <tr> <td colspan="2">简单的计算器</td> </tr> <tr> <td>第一个参数:</td> <td><input name="firstNum" type="text"></td> </tr> <tr> <td>运算符:</td> <td><select name="operator"> <option value="+">+</option> <option value="-">-</option> <option value="*">*</option> <option value="/">/</option> </select></td> </tr> <tr> <td>第二个参数:</td> <td><input name="secondNum" type="text"></td> </tr> <tr> <td colspan="2"><input type="submit" value="计算"></td> </tr> </table> </form> </body> </html>

    JavaBean

    package com.java.domain; import java.math.BigDecimal; //封装计算器数据的Bean public class CalculatorBean { private String firstNum = "0"; private char operator = '+'; private String secondNum = "0"; private String result; public String getFirstNum() { return firstNum; } public void setFirstNum(String firstNum) { this.firstNum = firstNum; } public char getOperator() { return operator; } public void setOperator(char operator) { this.operator = operator; } public String getSecondNum() { return secondNum; } public void setSecondNum(String secondNum) { this.secondNum = secondNum; } public String getResult() { return result; } public void setResult(String result) { this.result = result; } public void calculator() { BigDecimal first = new BigDecimal(this.firstNum); BigDecimal second = new BigDecimal(this.secondNum); switch (this.operator) { case '+':{ this.result = first.add(second).toString(); break; } case '-':{ this.result = first.subtract(second).toString(); break; } case '*':{ this.result = first.multiply(second).toString(); break; } case '/':{ if(second.doubleValue()==0){ throw new RuntimeException("被除数不能为0"); } this.result = first.divide(second,20,BigDecimal.ROUND_HALF_UP).toString(); break; } default: throw new RuntimeException("被除数只能为+-*/"); } } }
    转载请注明原文地址: https://ju.6miu.com/read-35642.html

    最新回复(0)