JSP+JavaBea实现简单的Web计算器

Sun公司推出JSP之后,有两种设计方法供选择,一个是JSP+JavaBean来实现一些比较简单的案例,另一个就是使用JSP+Servlet+Javabean来实现较为复杂的案例,但是对于现在流行的MVC设计模式而言,后者无可厚非是最好的,前者现在几乎已经不再使用,但是作为一个案例,还是写了一个最简单的Web版面的计算器。

主要的注意点有,精确计算一定要使用BigDecimal类来完成,否则会出现不精确的失误,然后由于是JSP+ JavaBean,所以请求的处理都是在JSP页面里面实现的,其实这个是非常不好的,因为JSP里面几乎不要写代码的,即使出现代码也要使用标签去除。


下面是代码,首先是作为封装数据的JavaBean

package com.bird.domain; import java.math.BigDecimal; /** * @category 封装计算器数据的Bean * @author Bird * */ public class ClaculatorBean { 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 calculate(){ 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("运算符只能为+ - * /"); } } } }
第二个就是JSP界面

<%@page import="java.util.concurrent.ExecutionException"%> <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>计算器</title> </head> <body style="text-align: center;"> <jsp:useBean id="claculatorBean" class="com.bird.domain.ClaculatorBean" scope="page"></jsp:useBean> <jsp:setProperty name="claculatorBean" property="firstNum" param="firstNum"/> <jsp:setProperty name="claculatorBean" property="operator" param="operator"/> <jsp:setProperty name="claculatorBean" property="secondNum" param="secondNum"/> <% try{ claculatorBean.calculate(); }catch(Exception e){ out.write(e.getMessage()); } %> <br>--------------------------------------------------------------<br/> 计算结果为: <jsp:getProperty name="claculatorBean" property="firstNum"/> <jsp:getProperty name="claculatorBean" property="operator"/> <jsp:getProperty name="claculatorBean" property="secondNum"/> = <jsp:getProperty name="claculatorBean" property="result"/> <br>--------------------------------------------------------------<br/> <form action="/Web/calculator.jsp" method="post"> <table width="40%" border="1"> <tr> <td colspan="2">简单的计算器</td> </tr> <tr> <td>第一个参数</td> <td> <input type="text" name="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"> </td> </tr> <tr> <td colspan="2"> <input type="submit" value="计算"> </td> </tr> </table> </form> </body> </html>
下面是运行效果图


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值