Servlet转发原理如下:
请求转发就是Servlet将请求转送给其他的Servlet或服务器资源,实现如下:
request.getRequestDispatcher("转发路径").forward(request, response);
Servlet请求包含原理如下:
包含指多个Servlet共同处理一个请求,实现如下:
request.getRequestDispatcher("转发路径").include(request, response);
RequestDispatcher对象从客户端获取请求request,并把它们传递给服务器上的其他Web资源。
异同
1、同
都是使用多个Servlet一起处理请求,并且在请求之间公用一个request和response(include(request, response);
和forward(request, response);
)
2、异
请求转发,假设A转发给B,那么A将不能向客户端发起响应,因为这一动作是由B来完成的,大多应用在Servlet中;
请求包含,多页面协同响应,大多应用在JSP页面中,完成多页面的合并。