目录
目录
导图
思路
代码
HTML界面
<body>
<form action="OperServlet" method="get">
num:<input type="text" name="num1"/><br>
<select name="oper">
<option>+</option>
<option>-</option>
<option>*</option>
<option>÷</option>
</select>
num2:<input type="text" name="num2"/><br>
</select>
<input type="submit" value="计算">
</form>
</body>
提供三个表单元素
Num1 ->name=”num1”
<select name=“opera”> +-*/
Num2 ->name=”num2”
Servlet界面
@WebServlet("/OperServlet")
public class OperServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request,response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Double num1=Double.parseDouble(request.getParameter("num1"));
Double num2=Double.parseDouble(request.getParameter("num2"));
String oper=request.getParameter("oper");
Double result=0.0;
switch (oper) {
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "÷":
if(num2!=0){
result=num1/num2;
}else{
System.out.println("除数不能为零");
}
default:
System.out.println("计算出错!!!");
}
//共享结果到页面
request.setAttribute("result",result);
//转发到显示结果的页面
request.getRequestDispatcher("/result.jsp").forward(request,response);
System.out.println("计算业务开始!!!");
}
}
- 获取前台表单数据
String num1=request.getParamter(“num1”)
Double num1.parseDouble(num1)
String num2=request.getParamter(“num2”)
Double num2.parseDouble(num2)
String oper= request.getParamter(“opera”)
2. 计算业务
Switch(oper)
Case(“+“)—》result=num1+num2 break
…….
Case(“/”)-》if……..
Default …..
3->显示结果:转发到result.jsp
3.1 共享
Request.setAttribute(“res”,result ) 放到共享对象request[servlet,result,.jsp在一次请求中,所有文件可以共享result]
3.2 页面跳转
Request.getRequestDisthpather(“/result.jsp).forward()
JSP界面
<html>
<head>
<title>Title</title>
</head>
<body>
运算的结果是<%=request.getAttribute("result")%>
</body>
</html>
<%=request.getAttribute(“res)--à result显示在页面中。
拓展
防止接收中文乱码的方法
request.setCharacterEncoding("utf-8");//请求参数中文编码转换
response.setContentType("text/html;carset=utf-8");//应答结果中问编码转换
学习心得
- 感受
将java基础与html的知识进行综合利用 实现了网页的跳转和方法的调用