什么是请求转发
请求转发就是服务器从一个资源跳转到另一个资源的过程。
具体过程如下图:
代码实现如下:
servlet01:
@WebServlet(name = "Servlet01", value = "/Servlet01")public class Servlet01 extends HttpServlet {@Overrideprotected 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 {@Overrideprotected 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中的文件,在客户端地址栏无法访问,但可以使用请求转发来访问
