JSP可以使用像including和forwarding这样的标准标签(Tag),但是并不止于此。Servlet也可以访问这些强大的标签。
在转向到另一个Servlet时,包入(including)其它Servlet、JSP页面或者HTML页面有助于节约代码。包入另一个Servlet也是Servlet成链的一种方式。这些都有助于代码的重用。
Servlet能够通过ServletContext获取RequestDispatcher完成包入或者转向。
public doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
....
ServletContext context = this.getServletContext();
RequestDispatcher rd = context.getRequestDispatcher("/servlets/HeaderServlet");
rd.include(request, response);
....
}
转向的使用也非常类似,不同之处在于调用rd.forward(request, response)方法。
RequestDispatcher只能包入或者转向同一服务器中的资源,这在有时是一个令人讨厌的限制。
通过这种使用RequestDispatcher的方式,这种JSP开发中非常有用、强大的一面对于Servlet的开发也很有价值。