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>

下面是运行效果图

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

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.****.net/jiangjunshow