以下是代碼:
Calculator.java
import java.math.BigDecimal;
/**
* @ClassName: Calculator
* @Description: 計(jì)算器
* @author: amosli
* @email:amosli@infomorrow.com
* @date Mar 20, 2014 1:04:59 AM
*/
public class Calculator {
private String firstnum="0";
private String secondnum="0";
private char operator='+';
private String result;
public String getResult() {
return result;
}
public char getOperator() {
return operator;
}
public void setOperator(char operator) {
this.operator = operator;
}
public void setResult(String result) {
this.result = result;
}
public String getFirstnum() {
return firstnum;
}
public void setFirstnum(String firstnum) {
this.firstnum = firstnum.trim();
}
public String getSecondnum() {
return secondnum;
}
public void setSecondnum(String secondnum) {
this.secondnum = secondnum.trim();
}
public void calculate() {
BigDecimal a = new BigDecimal(this.firstnum);
BigDecimal b = new BigDecimal(this.secondnum);
switch (this.operator) {
case '+':
this.result = a.add(b).toString();
break;
case '-':
this.result = a.subtract(b).toString();
break;
case '*':
this.result = a.multiply(b).toString();
break;
case '/':
if (b.doubleValue()==0) {
throw new RuntimeException("被除數(shù)不能為零");
}
this.result = a.divide(b,10,BigDecimal.ROUND_HALF_DOWN).toString();
break;
default:
break;
}
}
}
calculator.jsp
代碼介紹
1)這里注意如果要進(jìn)行精度運(yùn)算,用double + double很容易失真,比如,a=0.1,b=0.02 ,a+b=?
這里是因?yàn)橛?jì)算機(jī)底層只認(rèn)識(shí)0和1,而double是64位精度,所以在計(jì)算時(shí),很容易失真.
建議做運(yùn)算的時(shí)候使用BigDecimal或者BigInteger類進(jìn)行運(yùn)算,調(diào)用其原有的add,substract等方法即可實(shí)現(xiàn)加減等操作.
2)jsp主要用到的就是jsp:useBean進(jìn)行實(shí)例化對(duì)象,jsp:setProperty和jsp:getProperty進(jìn)行設(shè)值和取值.
3)關(guān)于錯(cuò)誤頁(yè)面內(nèi)容的配置:
在web.xml中添加如下內(nèi)容,捕獲exception:
同時(shí)在error.jsp頁(yè)面中將錯(cuò)誤信息顯示出來(lái):
補(bǔ)充:JSP有兩種開發(fā)模式:
SUN公司推出JSP技術(shù)后,同時(shí)也推薦了兩種web應(yīng)用程序的開發(fā)模式,一種是JSP+JavaBean模式,一種是Servlet+JSP+JavaBean模式。
1)JSP+JavaBean模式,適合簡(jiǎn)單開發(fā),適合開發(fā)業(yè)務(wù)邏輯不太復(fù)雜的web應(yīng)用程序,這種模式下,JavaBean用于封裝業(yè)務(wù)數(shù)據(jù),JSP即負(fù)責(zé)處理用戶請(qǐng)求,又顯示數(shù)據(jù);
2)Servlet+JSP+JavaBean(MVC)模式適合開發(fā)復(fù)雜的web應(yīng)用,在這種模式下,servlet負(fù)責(zé)處理用戶請(qǐng)求,jsp負(fù)責(zé)數(shù)據(jù)顯示,javabean負(fù)責(zé)封裝數(shù)據(jù)。 Servlet+JSP、JavaBean模式程序各個(gè)模塊之間層次清晰,web開發(fā)推薦采用此種模式。
本例中采用的即是第一種開發(fā)模式.
PS:這里再為大家推薦兩款本站的在線計(jì)算器,都是采用js實(shí)現(xiàn),且功能強(qiáng)大,相信對(duì)于大家深入了解JavaScript數(shù)學(xué)運(yùn)算及web設(shè)計(jì)會(huì)有所幫助:
在線標(biāo)準(zhǔn)計(jì)算器:http://tools.jb51.net/jisuanqi/jsq
在線科學(xué)計(jì)算器:http://tools.jb51.net/jisuanqi/jsqkexue
標(biāo)簽:西藏 貴州 青島 紅河 江西 宿州 云浮 丹東
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《使用jsp調(diào)用javabean實(shí)現(xiàn)超簡(jiǎn)單網(wǎng)頁(yè)計(jì)算器示例》,本文關(guān)鍵詞 使用,jsp,調(diào)用,javabean,實(shí)現(xiàn),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。