定义
请求包含是指将另一个Servlet的请求处理流程包含进来。
请求转发是指将请求转发给别的Servlet处理。
实现
实现请求包含和请求转发,可以使用HttpServletRequest的getRequestDispatcher()方法取得RequestDispatcher接口的实现对象实例,调用时传入请求、响应对象即可。
取得RequestDispatcher还有两个方式,通过ServletContext的getRequestDispatcher()或getNamedDispatcher()。
demo
package com.test; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; @WebServlet({"/some.controller", "/world"}) public class Some extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println("Some do one..."); RequestDispatcher dispatcher = request.getRequestDispatcher("other.view"); // 请求包含 dispatcher.include(request, response); // 请求转发 // dispatcher.forward(request, response); out.println("Some do two..."); } }