项目的  WebRoot 目录下的 calculator.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML>
<html>
<head>
<title>计算结果</title>
</head>
<body>
<jsp:useBean id="calculatorBean"
class="cn.itcast.domain.CalculatorBean"></jsp:useBean> <jsp:setProperty property="*" name="calculatorBean" />
<%
try {
calculatorBean.calculate();
} catch (Exception ex) {
out.write("计算出错:<font color='red'>" + ex.getMessage()
+ "</font>");
}
%> <hr />
<label>计算的结果是:<span id="x1"> <jsp:getProperty
property="arg1" name="calculatorBean" /> </span> <span id="x2"><jsp:getProperty
property="operator" name="calculatorBean" /></span> <span id="x3">
<jsp:getProperty property="arg2" name="calculatorBean" /> </span> = <span
id="x4"> <jsp:getProperty property="result"
name="calculatorBean" /> </span> </label>
<hr /> <form method="post" action="#">
<table border="1">
<tr>
<td colspan="2">简单计算器</td>
</tr>
<tr>
<td>第一个参数</td>
<td><input type="text" name="arg1" />
</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="arg2" />
</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="计算" />
</td>
</tr>
</table>
</form>
</body>
</html>
项目的 src 目录下的 包下面的 CalculatorBean.java
package cn.itcast.domain;

import java.math.BigDecimal;

// 封装计算方法 Bean
public class CalculatorBean {
private String arg1 = "0"; private String arg2 = "0"; private char operator = '+'; private String result; public String getArg1() {
return arg1;
} public void setArg1(String arg1) {
this.arg1 = arg1;
} public String getArg2() {
return arg2;
} public void setArg2(String arg2) {
this.arg2 = arg2;
} 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 calculate() {
BigDecimal firstBigDecimal = new BigDecimal(arg1);
BigDecimal sencondBigDecimal = new BigDecimal(arg2); switch (this.operator) {
case '+':
result = firstBigDecimal.add(sencondBigDecimal).toString();
break;
case '-':
result = firstBigDecimal.subtract(sencondBigDecimal).toString();
break;
case '*':
result = firstBigDecimal.multiply(sencondBigDecimal).toString();
break;
case '/':
if (sencondBigDecimal.doubleValue() == 0) {
//result = "除零错误!";
//break;
throw new RuntimeException("除零错误!");
}
result = firstBigDecimal.divide(sencondBigDecimal, 20,
BigDecimal.ROUND_HALF_UP).toString();
break;
default:
result = "未设定的操作!" + String.valueOf(this.operator);
break;
}
}
}

附上效果图:

[Java.web]简单计算器的更多相关文章

  1. 【知了堂学习笔记】java web 简单的登录

    最近皮皮潇在学习java web,刚接触了简单的东西,所以今天给大家带来一个简单的登录实现. 页面: 页面代码: <%@ page language="java" conte ...

  2. Java web 简单的增删改查程序(超详细)

    就是简单的对数据进行增删改查.代码如下: 1.bean层:用来封装属性及其get set方法 toString方法,有参构造方法,无参构造方法等. public class Bean { privat ...

  3. 学生信息的添加 Java web简单项目初试(修改)

    错误原因: 1.Java web 的Servlet类没有配置好,并且缺少一个 Dao类(Date Access Object通常用于操作数据库的). 2.代码的某些名称错误,导致数据库数据存储错误. ...

  4. java实现简单计算器功能

    童鞋们,是不是有使用计算器的时候,还要进入运行,输入calc,太麻烦了,有时候甚至还忘记单词怎么拼写,呵呵程序员自己写代码实现,又简单,又方便啊 以下为代码(想要生成可执行工具可参考:http://w ...

  5. [转]java web简单权限管理设计

    原文地址:http://blog.csdn.net/zwx19921215/article/details/44467099 最近在做一个网站类型项目,主要负责后台,ui框架选型为jquery eas ...

  6. java web简单权限管理设计

    一套最基本的权限管理包括用户.角色.资源. 数据库设计 我的设计如下: 用户:user 角色:role 用户-角色:user_role 资源:resource(包括上级菜单.子菜单.按钮等资源) 角色 ...

  7. java web 简单的登录注册

    --sql文件 create database studentgouse studentgocreate table stuinfo(--stuid int primary key identity( ...

  8. Java实现简单计算器、抽票程序

    计算器: import java.awt.BorderLayout; import java.awt.Container; import java.awt.Font; import java.awt. ...

  9. JAVA web简单的登录界面jsp实现

    此次试验所用到的软件是myeclipse10,tomcat7,Dreamweaver,sqlserver2008数据库.可以实现用户使用用户名和密码登录.如果登录成功,页面会显示登录成功,如果密码错误 ...

随机推荐

  1. [微信开发] - UnionID以及微信开放平台

  2. Python学习札记(四十三) IO 3

    参考:操作文件和目录 NOTE: 1.Python内置的os模块可以直接调用操作系统提供的接口函数: 2.os.name 打印操作系统的名称:如果是posix,说明系统是Linux.Unix或Mac ...

  3. Python的hasattr() getattr() setattr() 函数使用方法详解--转载

    hasattr(object, name)判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False.需要注意的是name要用括号括起来 1 ...

  4. zoj Candies 思维

    http://acm.zju.edu.cn/changsha/showProblem.do?problemId=31 题意: 给你n个非负整数,然后输入n个x[i],x[i] == -1表示第i个数不 ...

  5. MaintainableCSS 《可维护性 CSS》 --- 约定篇

    约定 可维护的CSS具有以下约定: .<module>[-<component>][-<state>] {} 根据所讨论的模块,方括号是可选的.这里有些例子: /* ...

  6. Android之修改用户头像并上传服务器(实现手机拍照和SD卡选择上传)

    写了这么多个的APP,最近才把他这个功能写上来,就抽取其中的用户修改头像的相关操作这个功能写了这篇博客,来与大家分享,希望对你有所帮助. 案例包含了: Xutil图片上传 拍照和SD卡选择图片 图片缓 ...

  7. HIVE之正则化详解

    有大神写的很好了,我借花献佛,有兴趣,看链接,在此不再赘述.想要学习Hive正则表达式重点应该是正则表达式的表示方式,只有正则表达式使用溜了,hive正则那就是小case. 附参考博文: https: ...

  8. C++的const类成员函数

    转自:http://blog.csdn.net/lihao21/article/details/8634876 我们知道,在C++中,若一个变量声明为const类型,则试图修改该变量的值的操作都被视编 ...

  9. Leetcode 62

    //从理解二维dp到简化成一维dp我用了一年的时间class Solution { public: int uniquePaths(int m, int n) { vector<); ;i &l ...

  10. halcon之屌炸天的自标定(2)

    自 halcon之屌炸天的自标定(1)发出以后,有朋友看了文章也应用到了自己的测量项目中,效果奇好,成功搞定了20um的需求,可喜可贺.   在halcon之屌炸天的自标定(1)中我提到了一片论文: ...