MVC模式计算两个正数的代数平均值与几何平均值
1.计算两个正数的代数平均值与几何平均值。
1)两个JSP页面:
(1)inputData.jsp(视图)页面提供两个表单,用户可以输入两个正数。inputData.jsp页面将用户输入的数据提交给一个资源名为calHandleAverage的servlet,该servlet负责计算两个正数的代数平均值与几何平均值。
(2)showResult.jsp页面可以显示代数平均值或几何平均值。
写出inputData.jsp和showResult.jsp的内容。
2)JavaBean(数据模型) : 写出SaveNumber.java的内容。
3)Servlet(控制器)为HandleAverage.java类
HandleAverage.java类(放于com.my.servlet包中),负责计算两个正数的代数平均值和几何平均值,将计算结果以及相关数据存储到数据模型JavaBean(SaveNumber.java类的实例)中,然后请求showResult.jsp显示模型JavaBean中的数据。
写出HandleAverage.java的内容。
4)修改本工程的WEB-INF目录中的web.xml文件。
写出web.xml中关于servlet部署的内容。
页面显示效果如下图示:
inputData.jsp页面显示效果
图1
showResult.jsp页面显示效果:
图2
inputData.jsp
<%@ page pageEncoding="UTF-8"%>
<jsp:useBean id="data" class="com.my.bean.SaveNumber" scope="page"></jsp:useBean><body bgcolor="#efddfa">
<font size=6>
//提交表单
<form action="calHandleAverage" method="post" name="form"><table>
<tr>
<td>计算两个整数的代数平均值</td><br>
<td>输入整数:<input type="text" name="num1" value=0></td>
<td>输入整数:<input type="text" name="num2" value=0></td>
<td><input type="submit" value="提交" name="sub"> </td>
</tr>
<tr>
<td>算两个整数的几何平均值</td><br>
<td>输入整数:<input type="text" name="num3" value=0></td>
<td>输入整数:<input type="text" name="num4" value=0></td>
<td><input type="submit" value="提交" name="sus"></td>
</tr>
</table>
</form>
showResult.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<jsp:useBean id="result" class="com.my.bean.SaveNumber" scope="request"></jsp:useBean>
<p>计算结果:</p>
<p>
<jsp:getProperty property="num1" name="result"/>与
<jsp:getProperty property="num2" name="result"/>
的代数平均值 : <jsp:getProperty property="result1" name="result"/>
<p>
<jsp:getProperty property="num3" name="result"/>与
<jsp:getProperty property="num4" name="result"/>
的几何平均值 : <jsp:getProperty property="result2" name="result"/>
SaveNumber.java
package com.my.bean;
public class SaveNumber {
double num1,num2,num3,num4,result1,result2;
public double getNum1() {
return num1;
}
public void setNum1(double num1) {
this.num1 = num1;
}
public double getNum2() {
return num2;
}
public void setNum2(double num2) {
this.num2 = num2;
}
public double getNum3() {
return num3;
}
public void setNum3(double num3) {
this.num3 = num3;
}
public double getNum4() {
return num4;
}
public void setNum4(double num4) {
this.num4 = num4;
}
public double getResult1() {
return result1;
}
public void setResult1(double result1) {
this.result1 = result1;
}
public double getResult2() {
return result2;
}
public void setResult2(double result2) {
this.result2 = result2;
}
}
HandleAverage.java
package com.my.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.my.bean.SaveNumber;
public class HandleAverage extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
SaveNumber sn = new SaveNumber();
request.setAttribute("result",sn);
try
{
double a=Double.parseDouble(request.getParameter("num1"));
double b=Double.parseDouble(request.getParameter("num2"));
double c=Double.parseDouble(request.getParameter("num3"));
double d=Double.parseDouble(request.getParameter("num4"));
if( c<0 || d<0)
return;
sn.setNum1(a);
sn.setNum2(b);
sn.setNum3(c);
sn.setNum4(d);
double s1 = 0,s2 = 0;
s1 = (a + b)/2;
s2 = Math.sqrt(c + d);
sn.setResult1(s1);
sn.setResult2(s2);
RequestDispatcher dispatcher=request.getRequestDispatcher("showResult.jsp");
dispatcher.forward(request,response);
// out.println("<p>代数平均值"+sn.getResult1());
//out.println("<p>几何平均值"+sn.getResult2());
}catch(Exception e){
out.println("3秒后跳转!");
response.setHeader("Refresh","3:url=inputData.jsp");
}
}
}