当前位置:
文档之家› javaweb实验报告——MVC
javaweb实验报告——MVC
z= <input name="z" class="input" type="text" /><br/>
<input class="btn" type="submit"id="submit" name="submit" value="计算" />
</form></body>
display.jsp:(输出实根数量和根页面)
double disk=b*b-4*a*(c-z);//判断有多少个根
if(disk<0)//如果没有实根
rootAdd="。";
else if(disk==0)//如果只有一个实根
{
double Add=(-b+Math.sqrt(disk))/(2*a);
rootAdd=(":"+Add);
}
else//如果有两个实根
文件与类设计:
文件名
说明
Equation.java
javabean封装系数和自定属性
root.jsp
方程系数输入界面
result.jsp
方程根数量和根输出界面
DataServlet.java
控制器层
Equation类
属性
属性名:
类型
说明
a
double
系数a
b
double
系数b
c
double
系数c
z
double
Java
实验要求:
设计一个Web应用程序,判断一个一元二次方程ax²+bx+c=z有几个根。该程序包括两个JSP页面,即root.jsp和result.jsp,以及一个JavaBean和一个Servlet。要求使用MVC模式实现此功能,即用户通过root.jsp输入一元二次方程a、b、c和z的值;提交该页面后使用JavaBean存储这些值和结果;使用servlet进行判断并将结果显示到result.jsp页面中。
c=<jsp:getProperty property="c" name="equation"/>,
z=<jsp:getProperty property="z" name="equation"/><br/>
此方程有<jsp:getProperty property="rootcount" name="equation"/>个实根
系数z
rootcount
int
实根的数法名
类型
说明
getA()
double
获取a的属性值
setA(doublea)
void
设置a的属性值
getB()
double
获取b的属性值
setB(doubleb)
void
设置b的属性值
getC()
double
获取c的属性值
setC(doublec)
void
设置c的属性值
getZ()
String
获取z的属性值
setZ(doublez)
void
设置z的属性值
getRootcount()
int
获取rootcount的属性值
(判断并存放方程实根个数)
setRootcount(int rootcount)
void
设置rootcount的属性值
getRootAdd()
a= <input name="a" class="input" type="text"/><br/>
b= <input name="b" class="input" type="text"/><br/>
c= <input name="c" class="input" type="text"/><br/>
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Equation equ=new Equation();
request.setAttribute("equation",equ);
double a=Double.parseDouble(request.getParameter("a"));
double b=Double.parseDouble(request.getParameter("b"));
double c=Double.parseDouble(request.getParameter("c"));
void
处理GET请求
(传递javabean参数,跳转显示结果页面)
doPost(HttpServletRequest request, HttpServletResponse response)
void
处理POST请求
init()
void
供tomcat调用,传递参数
.
关键代码
Equation
//
public int getRootcount() {
dispatcher.forward(request,response);
}
input.jsp:(输入方程系数页面)
<body>
<h1>一元二次方程求根ax²+bx+c=z</h1>
<form id="userForm" name="user" method="post" action="DataServlet">
double z=Double.parseDouble(request.getParameter("z"));
//设置javabean的a、b、c、z的值
equ.setA(a);
equ.setB(b);
equ.setC(c);
equ.setZ(z);
RequestDispatcher dispatcher=request.getRequestDispatcher("result.jsp");
<jsp:getProperty property="rootAdd" name="equation"/>
</body>
实验截图:
方程系数输入的界面:
方程输出根的数量和根的界面:
心得:通过这次实验,更加了解
double disk=b*b-4*a*(c-z);//判断有多少个根
if(disk<0)//如果没有实根
rootcount=0;
else if(disk==0)//如果只有一个实根
rootcount=1;
else//如果有两个实根
rootcount=2;
return rootcount;
}
public String getRootAdd() {
{
double root1=(-b+Math.sqrt(disk))/(2*a),
root2=(-b-Math.sqrt(disk))/(2*a);
rootAdd=(":"+root1+"和"+root2);
}
return rootAdd;
}
DataServlet.java:(servlet,控制器层,获取input数据,传递给javabean,并跳转显示结果页面)
String
获取rootAdd的属性值
(计算并存放实根)
setRootAdd(String rootAdd)
void
设置rootAdd的属性值
DataServlet类
属性
属性名:
类型
说明
serialVersionUID
long
确保类版本的兼容性,
方法
方法名
类型
说明
DataServlet()
构造方法
doGet(HttpServletRequest request, HttpServletResponse response)
<body>
<jsp:useBean id="equation" class="henu.bean.Equation" scope="request"/>
一元二次方程ax²+bx+c=z:<br/>
a=<jsp:getProperty property="a" name="equation"/>,
b=<jsp:getProperty property="b" name="equation"/>,