使用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("被除数只能为+-*/"); } } }