什么是请求转发
请求转发就是服务器从一个资源跳转到另一个资源的过程。
具体过程如下图:
代码实现如下:
servlet01:
@WebServlet(name = "Servlet01", value = "/Servlet01")
public class Servlet01 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//第一步,获取请求参数
String username = request.getParameter("username");
System.out.println("username:"+username);
//第二步获得的参数无误后,开始处理servlet01的业务
System.out.println("servlet01业务处理完毕");
//第三步,处理完servlet01的业务后,为了让servlet02也能进行操作,先要让客户的资源共享
request.setAttribute("key","资源共享");
//第四步,将客户调度到servlet02程序中
RequestDispatcher requestDispatcher = request.getRequestDispatcher("/Servlet02");
//第五步,客户前往servlet02应用程序
requestDispatcher.forward(request,response);
}
servlet02:
@WebServlet(name = "Servlet02", value = "/Servlet02")
public class Servlet02 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//第一步,获取请求参数
String username = request.getParameter("username");
System.out.println("username:"+username);
//第二步,即获取共享的客户资源,用以检查servlet01业务是否已完成
RequestDispatcher getRequestDispatcher = request.getRequestDispatcher("key");
//第三步,处理servlet02的业务
System.out.println("servlet02的业务处理完毕");
}
运行过程:
运行结果:
注意
WEB-INF中的文件,在客户端地址栏无法访问,但可以使用请求转发来访问