jsp和Servlet的分工:
* JSP:
> 作为请求发起页面,例如显示表单、超链接。
> 作为请求结束页面,例如显示数据。
* Servlet:
> 作为请求中处理数据的环节。
来看一张图:
下边显示一个小Demo,在一个jsp页面中输入两个参数,在另一个页面中将两者相加的结果显示。
AServlet.java
package com.ywq;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class AServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//从form.jsp页面获取参数
String num1=request.getParameter("num1");
String num2=request.getParameter("num2");
//参数类型转换
int a=Integer.parseInt(num1);
int b=Integer.parseInt(num2);
int sum=a+b;
//将运算结果保存在request域中
request.setAttribute("result", sum);
//请求转发,使转换到显示结果页面。
RequestDispatcher rd=request.getRequestDispatcher("/add/result.jsp");
rd.forward(request, response);
}
}
form.jsp
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
这个页面用来输入两个参数加数1:
加数2:
result.jsp
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
运算结果显示页面Integer sum=(Integer)request.getAttribute("result");
%>
将Project部署到Tomcat中,启动服务器,在浏览器中输入http://localhost:8080/day11_1/add/form.jsp,则出现下图所示:
输入两个参数,点击按钮,则出现如下所示:
项目工程截图如下: