我用了五种方法写了
第一种:只有jsp
第二种:jsp+javabean
第三种:jsp+servlet
第四种:jsp+JavaBean+servlet
第五种:jsp+JavaBean+servlet+Dao
我只显示第五种,其他四种在第五种的基础上改改就行
jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>复数运算器</title>
</head>
<body>
<%
request.setCharacterEncoding("UTF-8");
if(request.getParameter("c1")!=null)
session.setAttribute("s1", request.getParameter("c1"));
if(request.getParameter("c2")!=null)
session.setAttribute("s2", request.getParameter("c2"));
if(request.getParameter("c3")!=null)
session.setAttribute("s3", request.getParameter("c3"));
if(request.getParameter("c4")!=null)
session.setAttribute("s4", request.getParameter("c4"));
%>
<form action="../acb_jisuan_2" method="post">
<table>
<tr><td>第一个数:</td>
<tr><td>实部:<input type="text" name="x"></td></tr>
<tr><td>虚部:<input type="text" name="y"></td></tr>
<tr><td>第二个数:</td>
<tr><td>实部:<input type="text" name="x1"></td></tr>
<tr><td>虚部:<input type="text" name="y1"></td></tr>
<tr><td>请选择下面您想要运算的类型!</td></tr>
<tr><td>
<input type="checkbox" name="o" value="+">加法;
<input type="checkbox" name="o" value="-">减法;
<input type="checkbox" name="o" value="*">乘法;
<input type="checkbox" name="o" value="/">除法;
</td></tr>
<tr align="center"><td colspan="2">
<input type="submit" value="提交">
<input type="reset" value="取消">
</td></tr>
</table>
</form>
</body>
</html>
javabean:
public class Add {
public String add(double x,double y,double x1,double y1,String o) {
double a = 0,b = 0;
switch(o){
case"+":
a=x+x1;
b=y+y1;
break;
case"-":
a=x-x1;
b=y-y1;
break;
case"*":
a=x*x1-y*y1;
b=x*y1+x1*y;
break;
case"/":
a=(x*x1+y*y1)/(x1*x1+y1*y1);
b=(y*x1-x*y1)/(x1*x1+y1*y1);
break;
}
ppest p = new ppest();
return p.ppest(a, b);
}
}
package bean;
public class Dd {
public double getA() {
return a;
}
public void setA(double a) {
this.a = a;
}
public double getB() {
return b;
}
public void setB(double b) {
this.b = b;
}
private double a;
private double b;
public Dd(double a, double b) {
this.a = a;
this.b = b;
}
public Dd() {}
public String ppest() {
String result=null;
if(b!=0) {
if(b>0)
result="("+a+"+"+b+"i)";
else
result="("+a+b+"i)";
}
else
result=""+b;
return result;
}
}
package bean;
public class ppest {
public String ppest(double a, double b) {
String result=null;
if(b!=0) {
if(a>0)
result="("+a+"+"+b+"i)";
else
result="("+a+b+"i)";
}
else
result=""+b;
return result;
}
}
Dao:
package bean;
public class MM {
public String mm( Dd d1,Dd d2,String o) {
double x=d1.getA();
double y=d1.getB();
double x1=d2.getA();
double y1=d2.getB();
double a = 0,b = 0;
switch(o){
case"+":
a=x+x1;
b=y+y1;
break;
case"-":
a=x-x1;
b=y-y1;
break;
case"*":
a=x*x1-y*y1;
b=x*y1+x1*y;
break;
case"/":
a=(x*x1+y*y1)/(x1*x1+y1*y1);
b=(y*x1-x*y1)/(x1*x1+y1*y1);
break;
}
ppest p = new ppest();
return p.ppest(a, b);
}
}
servlet:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ppest p=new ppest();
MM m = new MM();
double x = Double.parseDouble(request.getParameter("x"));
double y= Double.parseDouble(request.getParameter("y"));
double x1 = Double.parseDouble(request.getParameter("x1"));
double y1 = Double.parseDouble(request.getParameter("y1"));
Dd d1 = new Dd(x,y);
Dd d2 = new Dd(x1,y1);
String o = request.getParameter("o");
request.setAttribute("result", p.ppest(x, y) );
request.setAttribute("result1", p.ppest(x1, y1));
request.setAttribute("result2", m.mm(d1, d2, o));
request.setAttribute("o", o);
RequestDispatcher rd;
rd=request.getRequestDispatcher("jsp+javabean+servlet+dao/e5.jsp");
rd.forward(request, response);
}
show.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%=request.getAttribute("result")%><%= request.getAttribute("o")%>
<%=request.getAttribute("result1")%>=<%=request.getAttribute("result2") %>
</body>
</html>
输入表单页面:将该页面的请求参数传给servlet;
封装复数运算,并完成加减乘除4种业务方法;
将servlet的信息调整到show.jsp并显示;