使用RequestDispatcher的主要目的到底是什么,例如,当它在Filter中执行时,如下面的示例所示:
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws ServletException, IOException {
HttpServletRequest aHttpServletRequest = (HttpServletRequest) request;
aHttpServletRequest.getRequestDispatcher("/init.jsp").include(request, response);
chain.doFilter(request, response);
}发布于 2010-06-23 02:56:27
在您的示例中,JSP的输出将附加到附加了过滤器的每个页面。这是一种很容易为所有页面添加公共标题的技术。
当在他的上下文中使用RequestDispatcher时,这有点令人困惑。通常,当您希望将请求分派到另一个servlet或JSP进行处理时,可以使用RequestDispatcher转发到另一个资源。在这种情况下,您的请求不会被分派到其他任何地方,而是将另一个资源生成的输出包含到您的当前响应中。
发布于 2010-06-23 02:32:41
javadoc说比我更好:
RequestDispatcher
定义了一个对象,该对象接收来自客户端的请求,并将请求发送到服务器上的任何资源(例如servlet、HTML文件或JSP文件)。servlet容器创建RequestDispatcher对象,该对象用作位于特定路径或以特定名称命名的服务器资源的包装器。
换句话说,当您想要从服务器上的另一个资源包含或转发到服务器上的另一个资源时,您将获得一个RequestDispstcher。
https://stackoverflow.com/questions/3095990
复制相似问题