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

hunter

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

公告

View Post

Servlet的MVC模式(计算一元二次方程的根)

设计一个Web应用,该Web应用提供两个jsp页面,一个页面是用户输入一元二次方程的系数,另一个显示一元二次方程的系和根。Web应用提供一个名字为handle的servlet对象,handle负责计算一元二次方程的根,然后将有关数据存储到JavaBean中;Web应用提供的javaBean负责刻画一个一元二次方程,提供简单的获取数据和修改数据的方法。

用户需要为web.xml文件添加的如下字标记:

1 <servlet>
2     <servlet-name>handle</servlet-name>
3     <servlet-class>sun.yourservlet.HandleData</servlet-class>
4   </servlet>
5   <servlet-mapping>
6      <servlet-name>handle</servlet-name>
7      <url-pattern>/handleData</url-pattern>
8   </servlet-mapping>

1>模型(javabean)

 1 package moon.yourbean;
 2 
 3 public class Equation
 4 {  double a,b,c;
 5    String rootOne,rootTwo;
 6    boolean squareEquation;
 7    public void setA(double a)
 8    { this.a=a;
 9    }
10    public double getA()
11    {  return a;
12    }
13    public void setB(double b)
14    {  this.b=b;
15    }
16    public double getB()
17    {  return b;
18    }
19    public void setC(double c)
20    {  this.c=c;
21    }
22    public double getC()
23    {  return c;
24    }
25    public void setRootOne(String root)
26    { rootOne=root;
27    }
28    public String getRootOne()
29    {  return rootOne;
30    }
31    public void setRootTwo(String root)
32    { rootTwo=root;
33    }
34    public String getRootTwo()
35    {  return rootTwo;
36    }
37    public void setIsSquareEquation(boolean b)
38    { squareEquation=b;
39    }
40    public boolean getIsSquareEquation()
41    {  return squareEquation;
42    }
43 }

2>试图(jsp页面)
input.jsp

 1 <%@ page contentType="text/html;charset=GB2312" %>
 2 <HTML><BODY ><Font size=2>
 3 <FORM action="handleData" Method="post" >
 4   <BR>输入一元二次方程的系数:
 5   <BR> 二次项系数a:<Input type=text name="a" size=4>
 6        一次项系数b:<Input type=text name="b" size=4>
 7        常数项c:<Input type=text name="c" size=4>
 8   <Input type=submit value="提交">
 9 </FORM>
10 </Font></BODY></HTML>

show.jsp

 1 <%@ page contentType="text/html;charset=GB2312" %>
 2 <%@ page import="moon.yourbean.*"%> 
 3 <jsp:useBean id="equation" type="moon.yourbean.Equation" scope="request"/>
 4 <HTML><BODY ><Font size=2>
 5      一元二次方程的系数是:
 6 <BR> 二次项系数:<jsp:getProperty name="equation"  property="a"/>
 7      一次项系数:<jsp:getProperty  name="equation" property="b"/>
 8      常数项:<jsp:getProperty name="equation" property="c"/>
 9 <BR>是一元二次方程吗?<jsp:getProperty name="equation" property="isSquareEquation"/>
10 <BR>方程的两个根是:<jsp:getProperty name="equation" property="rootOne"/>,
11                     <jsp:getProperty name="equation" property="rootTwo"/>
12 </FONT></BODY></HTML>

3>控制器(servlet)

 1 package sun.yourservlet;
 2 import moon.yourbean.*;
 3 import java.io.*;
 4 import javax.servlet.*;
 5 import javax.servlet.http.*;
 6 public class HandleData extends HttpServlet
 7 {  public void init(ServletConfig config) throws ServletException
 8     {super.init(config);
 9     }
10    public void doPost(HttpServletRequest request,HttpServletResponse response) 
11                         throws ServletException,IOException
12     {   Equation equ=new Equation();  //创建Javabean对象
13         request.setAttribute("equation",equ);// 将equ存储到HttpServletRequest对象中
14         double a=Double.parseDouble(request.getParameter("a"));
15         double b=Double.parseDouble(request.getParameter("b"));
16         double c=Double.parseDouble(request.getParameter("c"));
17         equ.setA(a);            //将数据存储在equ中 
18         equ.setB(b);           
19         equ.setC(c);
20         if(a!=0)
21           equ.setIsSquareEquation(true);
22         else
23           equ.setIsSquareEquation(true);
24         double disk=b*b-4*a*c;
25         if(disk<0)
26          {  equ.setRootOne("无实根");
27             equ.setRootTwo("无实根");
28          }  
29         else
30          { double root1=(-b+Math.sqrt(disk))/(2*a),
31                   root2=(-b-Math.sqrt(disk))/(2*a);
32            equ.setRootOne(""+root1); 
33            equ.setRootTwo(""+root2); 
34          }
35         RequestDispatcher dispatcher=request.getRequestDispatcher("show.jsp");
36         dispatcher.forward(request,response);    //请求show.jsp显示equ中的数据         
37     } 
38    public  void  doGet(HttpServletRequest request,HttpServletResponse response) 
39                         throws ServletException,IOException
40     {   doPost(request,response);
41     }
42 }

 

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

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