• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

hunter

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

Servlet的MVC模式(计算等差、等比数列的和)

Web应用提供两个jsp页面,一个负责使用户输入等差数列的首项、公差和求和项以及等比数列的首项、公比和求和项数;另一个页面可以显示等差数列和等比数列的求和结果。Web应用提供一个名字为computerSum的servlet对象,computerSum负责计算等差数列和的呢公比数列的和,然后将有关数据存储到javabean中,Web应用提供的Javabean负责刻画等差数列和等比数列,提供简单的获取数据和修改数据。

加入web.xml文件中的字标记如下:

1   <servlet>
2     <servlet-name>computerSum</servlet-name>
3     <servlet-class>sun.yourservlet.HandleSum</servlet-class>
4   </servlet>
5   <servlet-mapping>
6     <servlet-name>computerSum</servlet-name>
7     <url-pattern>/lookSum</url-pattern>
8   </servlet-mapping>

1>模型(Javabean0

 1 package moon.yourbean;
 2 
 3 public class Series {
 4     double firstItem; //数列首项
 5     double var; //公差或公比
 6     int number; //求和项数
 7     double sum; //求和结果
 8     String name = ""; //数列类别       
 9 
10     public void setFirstItem(double a) {
11         firstItem = a;
12     }
13 
14     public double getFirstItem() {
15         return firstItem;
16     }
17 
18     public void setVar(double b) {
19         var = b;
20     }
21 
22     public double getVar() {
23         return var;
24     }
25 
26     public void setNumber(int n) {
27         number = n;
28     }
29 
30     public double getNumber() {
31         return number;
32     }
33 
34     public void setSum(double s) {
35         sum = s;
36     }
37 
38     public double getSum() {
39         return sum;
40     }
41 
42     public void setName(String na) {
43         name = na;
44     }
45 
46     public String getName() {
47         return name;
48     }
49 }

2>视图(jsp页面)
inputMess.jsp

 1 <%@ page contentType="text/html;charset=GB2312"%>
 2 <HTML>
 3 <BODY>
 4 <Font size=2>
 5 <FORM action="lookSum" Method="post">等差数列求和: <BR>
 6 输入首项:<Input type=text name="firstItem" size=4> 输入公差:<Input type=text name="var" size=4> 求和项数:<Input
 7     type=text name="number" size=4> <Input type=submit value="提交"></FORM>
 8 <FORM action="lookSum" Method="get">等比数列求和: <BR>
 9 输入首项:<Input type=text name="firstItem" size=4> 输入公比:<Input type=text name="var" size=4> 求和项数:<Input
10     type=text name="number" size=4> <Input type=submit value="提交"></FORM>
11 </Font>
12 </BODY>
13 </HTML>

showResult.jsp

 1 <%@ page contentType="text/html;charset=GB2312"%>
 2 <%@ page import="moon.yourbean.*"%>
 3 <jsp:useBean id="lie" type="moon.yourbean.Series" scope="request" />
 4 <HTML>
 5 <BODY>
 6 <Table border=1>
 7     <tr>
 8         <th>数列的首项</th>
 9         <th><jsp:getProperty name="lie" property="name" /></th>
10         <th>所求项数</th>
11         <th>求和结果</th>
12     </tr>
13     <td><jsp:getProperty name="lie" property="firstItem" /></td>
14     <td><jsp:getProperty name="lie" property="var" /></td>
15     <td><jsp:getProperty name="lie" property="number" /></td>
16     <td><jsp:getProperty name="lie" property="sum" /></td>
17     </tr>
18 </Table>
19 </BODY>
20 </HTML>

3>控制器(servlet)

 1 package sun.yourservlet;
 2 
 3 import moon.yourbean.*;
 4 import java.io.*;
 5 import javax.servlet.*;
 6 import javax.servlet.http.*;
 7 
 8 public class HandleSum extends HttpServlet {
 9     public void init(ServletConfig config) throws ServletException {
10         super.init(config);
11     }
12 
13     public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
14         Series shulie = new Series(); //创建Javabean对象
15         request.setAttribute("lie", shulie);//将shulie存储到HttpServletRequest对象中
16         double a = Double.parseDouble(request.getParameter("firstItem"));
17         double d = Double.parseDouble(request.getParameter("var"));
18         int n = Integer.parseInt(request.getParameter("number"));
19         shulie.setFirstItem(a); //将数据存储在shulie中 
20         shulie.setVar(d);
21         shulie.setNumber(n);
22         //计算和:
23         double sum = 0, item = a;
24         int i = 1;
25         shulie.setName("等差数列的公差");
26         while (i <= n) //计算等差数列的和
27         {
28             sum = sum + item;
29             i++;
30             item = item + d;
31         }
32         shulie.setSum(sum);
33         RequestDispatcher dispatcher = request.getRequestDispatcher("showResult.jsp");
34         dispatcher.forward(request, response); //请求showResult.jsp显示shulie中的数据         
35     }
36 
37     public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
38         Series shulie = new Series();
39         request.setAttribute("lie", shulie);
40         double a = Double.parseDouble(request.getParameter("firstItem"));
41         double d = Double.parseDouble(request.getParameter("var"));
42         int n = Integer.parseInt(request.getParameter("number"));
43         shulie.setFirstItem(a);
44         shulie.setVar(d);
45         shulie.setNumber(n);
46         //计算和:
47         double sum = 0, item = a;
48         int i = 1;
49         shulie.setName("等比数列的公比");
50         while (i <= n) //计算等比数列的和
51         {
52             sum = sum + item;
53             i++;
54             item = item * d;
55         }
56         shulie.setSum(sum);
57         RequestDispatcher dispatcher = request.getRequestDispatcher("showResult.jsp");
58         dispatcher.forward(request, response);
59     }
60 }

 

posted on 2013-05-11 10:37  hunter92  阅读(2434)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3