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> <base href="<%=basePath%>"> <title>My JSP 'caculate.jsp' starting page</title> </head> <body style="text-align: center;"> <%--把请求数据封装到bean里面 --%> <jsp:useBean id="caculateBean" class="com.caculator.caculateBean" /> <%--参数名相同,用*代替 --%> <jsp:setProperty name="caculateBean" property="*" /> <%--这里要捕获抛出的异常并输出--%> <% try { caculateBean.caculate(); } catch (Exception e) { out.write(e.getMessage()); } %> <br />----------------------------------------------------------- <br /> 计算结果为: <jsp:getProperty name="caculateBean" property="firstNum" /> <jsp:getProperty name="caculateBean" property="operator" /> <jsp:getProperty name="caculateBean" property="secondNum" /> = <jsp:getProperty name="caculateBean" property="result" /> <br />----------------------------------------------------------- <br /> <form action="/day0830/caculate.jsp" method="post"> <table border="1" width="30%" align="center"> <tr> <td colspan="2" align="center"><strong>简单的计算器</strong> </td> </tr> <tr> <td>第一个数:</td> <td><input type="text" name="firstNum" id="firstNum"> </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 type="text" name="secondNum" id="secondNum"> </td> </tr> <tr> <td colspan="2"><input type="submit" value=" 计算 "> </td> </tr> </table> </form> </body> </html>
javaBean部分的代码
package com.caculator; import java.math.BigDecimal; //封装计算器数据的bean public class caculateBean { private String firstNum="0"; private String secondNum="1"; private char operator='+'; private String result; public String getFirstNum() { return firstNum; } public void setFirstNum(String firstNum) { this.firstNum = firstNum; } public String getSecondNum() { return secondNum; } public void setSecondNum(String secondNum) { this.secondNum = secondNum; } public char getOperator() { return operator; } public void setOperator(char operator) { this.operator = operator; } public String getResult() { return result; } public void setResult(String result) { this.result = result; } public void caculate(){ 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).toString(); break; } default: throw new RuntimeException("运算符错误!"); } } }