请求转发:一种在服务器内部的资源跳转方式
- 步骤:
- 通过request对象获取请求转发器对象 :
RequestDispatcher getRequestDispatcher(String path) - 使用RequestDispatcher对象来进行转发:
forward(ServletRequest request, ServletResponse response)
- 特点:
- 浏览器地址栏路径不发生变化;
- 只能转发到当前服务器内部资源中;
- 转发是一次请求;
requestA:
@WebServlet("/requestA")
public class requestDemoa extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("A被访问了");
//转发到B资源去
request.getRequestDispatcher("/requestB").forward(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request,response);//执行doPost代码逻辑,简化代码
}
}
requestB:
@WebServlet("/requestB")
public class requestDemob extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("B被访问了");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request,response);//执行doPost代码逻辑,简化代码
}
}
启动服务器: