
实验二JavaBean在JSP中的应用(第2次实验,2学时,设计性)一、实验目的和要求1.理解JavaBean的含义;2.掌握JavaBean的编写方法:3.熟练JavaBean在JSP中的使用方法。二、实验内容使用JSP和JavaBean实现一个简易的计算器。要求:实现基本的加减乘除运算:并且,进行除法运算时,当除数为零时要给出错误提示。三、实验原理1.JavaBean规范:·JavaBean必须声明为public类型,类名与文件名相同。·JavaBean的属性一般定义为private类型。·属性应该由一组读写方法(getXxx和setXxx)来访问。·必须有一个无参构造方法。2.在JSP下使用JSP动作访问JavaBean:·:使用JavaBean·:设置属性值:获取属性值四、实验步骤1.打开Eclipse,File->New->DynamilWebProject,命名test2。2.在WebContent目录下新建calculator.jsp和error.jsp。3.在JavaResources目录下新建class(JavaBean):cn.edu.ycu.sxxy.beans.calculator类。4.在web.xml中进行错误页面内容的配置;5.测试运行。五、参考程序1.计算器页面calculator.jsp使用SP+JavaBean实现一个简易的计算器
1 实验二 JavaBean 在 JSP 中的应用 (第 2 次实验,2 学时,设计性) 一、实验目的和要求 1. 理解 JavaBean 的含义; 2. 掌握 JavaBean 的编写方法; 3. 熟练 JavaBean 在 JSP 中的使用方法。 二、实验内容 使用 JSP 和 JavaBean 实现一个简易的计算器。要求:实现基本的加减乘除运算;并且, 进行除法运算时,当除数为零时要给出错误提示。 三、实验原理 1. JavaBean 规范: JavaBean 必须声明为 public 类型,类名与文件名相同。 JavaBean 的属性一般定义为 private 类型。 属性应该由一组读写方法(getXxx 和 setXxx)来访问。 必须有一个无参构造方法。 2. 在 JSP 下使用 JSP 动作访问 JavaBean: • :使用 JavaBean • :设置属性值 • :获取属性值 四、实验步骤 1. 打开 Eclipse,File->New->Dynamil Web Project,命名 test2。 2. 在 WebContent 目录下新建 calculator.jsp 和 error.jsp。 3. 在 Java Resources 目录下新建 class(JavaBean):cn.edu.ycu.sxxy.beans.calculator 类。 4. 在 web.xml 中进行错误页面内容的配置; 5. 测试运行。 五、参考程序 1. 计算器页面 calculator.jsp 使用JSP + JavaBean实现一个简易的计算器

计算结果是:=简单的计算器第一个参数+-*/第二个数/td>计算2.Calculatorjava(JavaBean类,实现具体的计算操作)package cn.edu.ycu.sxxy.beans;import java.math.BigDecimal;public class Calculator(private String firstName;private String secondName;private String operator;private String result;public Caculator()(this.firstName-"o";this.secondName ="o";this.operator = "+";this.result -"";
2 计算结果是: = 简单的计算器 第一个参数 + - * / 第二个数 计算 2. Calculator.java(JavaBean 类,实现具体的计算操作) package cn.edu.ycu.sxxy.beans; import java.math.BigDecimal; public class Calculator { private String firstName; private String secondName; private String operator; private String result; public Caculator() { this.firstName = "0"; this.secondName = "0"; this.operator = "+"; this.result = "";

return firstName;public String getFirstName()(public void setFirstName(String firstName)(this.firstName=firstName;)public String getSecondName()(returnsecondName:1public void setSecondName(String secondName)(this.secondName= secondName;)public String getoperator()(return operator:1public void setoperator(stringoperator)(this.operator =operator;)public String getResult()(calculate();return result;)public void setResult(String result) (this.result = result; }冰水*Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算双精度浮点型变量doub1e可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的数进行运算和处理。般情况下,对于那些不需要准确计算精度的数字,我们可以直接使用Float和Double处一理*但是Double.valueof(String)和Float.valueof(String)会丢失精度。*所以开发中,如果我们需要精确计算的结果,则必须使用BigDecimal类来操作。*public void calculate()BigDecimal a =new BigDecimal(firstName);BigDecimal b =new BigDecimal(secondName)if("+".equals(operator))(result = a.add(b).tostring();Jelseif("_".equals(operator))(result = a.subtract(b).tostring();Jelse if("*".equals(operator))result = a.multiply(b).tostring();Jelseif("/".equals(operator))(if(b.intValue()==o)(thrownewRuntimeException("被除数不能为零!");result=a.divide(b,10,BigDecimal.ROUND_HALF_DOWN).toString();//public BigDecimal divide(BigDecimal divisor, int scale,introundingMode)//三个参数分别为:BigDecimal除数,整数小数位数,整数舍入模式:四舍五入)13.error.jspInserttitlehereSorry!出错了!!
3 } public String getFirstName() { return firstName; } public void setFirstName(String firstName) {this.firstName = firstName; } public String getSecondName() { return secondName;} public void setSecondName(String secondName) {this.secondName = secondName;} public String getOperator() { return operator; } public void setOperator(String operator) { this.operator = operator; } public String getResult() { calculate(); return result; } public void setResult(String result) { this.result = result; } /** * Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运 算。 * 双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小 的数进行运算和处理。 * 一般情况下,对于那些不需要准确计算精度的数字,我们可以直接使用Float和Double处 理, * 但是Double.valueOf(String) 和Float.valueOf(String)会丢失精度。 * 所以开发中,如果我们需要精确计算的结果,则必须使用BigDecimal类来操作。 */ public void calculate() { BigDecimal a = new BigDecimal(firstName); BigDecimal b = new BigDecimal(secondName); if("+".equals(operator)){ result = a.add(b).toString(); }else if("-".equals(operator)){ result = a.subtract(b).toString(); }else if("*".equals(operator)){ result = a.multiply(b).toString(); }else if("/".equals(operator)){ if (b.intValue()==0) { throw new RuntimeException("被除数不能为零!"); } result = a.divide(b,10,BigDecimal.ROUND_HALF_DOWN).toString(); //public BigDecimal divide(BigDecimal divisor, int scale, int roundingMode) //三个参数分别为:BigDecimal除数,整数小数位数,整数舍入模式:四舍五入) } } } 3. error.jsp Insert title here Sorry!出错了!!

4.关于错误页面内容的配置:在web.xml中添加如下内容,捕获Exception:java.lang.Exception/error.jsp运行结果如下:口使用JSP+JavaBean卖*【口蒙使用SP+JavaBean×+C☆localhost:8080/test2/calculatorjsp》C★@localhost:8080/test2/calculatorjspC☆localhost8080/test2/calculatorjspD谷D运城学院百座(Tomcat图【图文】(第三方支付计算结果是:0+0=0D Insert title herex简单的计算器Clocalhost:880/test2/calculatorjsp第一个参数1D谷款口运城学院会百度3《Tomcat与)圆【图文】《第三方支付Sorry!出错了!!第二个数0被除数不能为零!计算
4 4. 关于错误页面内容的配置: 在 web.xml 中添加如下内容,捕获 Exception: java.lang.Exception /error.jsp 运行结果如下: