RequestDispatcher对象

本文记录Java学习过程中遇到的RequestDispatcher对象~

当一个Web资源收到客户端的请求后,如果希望服务器通知另外一个资源去处理请求。这时,除了使用sendRedirect()方法实现请求重定向外,还可以通过RequestDispatcher接口的实例对象来实现。与他相关的方法如下:

1.getRequestDispatcher(String path)方法

返回封装了某个路径所指定资源的RequestDispatcher对象。其中,参数path必须以“/”开头,用于表示当前Web应用的根目录。需要注意的是,WEB-INF目录中的内容对RequestDispatcher对象也是可见的。因此,传递给getRequestDispatcher(String path)方法的资源可以是WEB-INF目录中的文件。

2.forword(ServletRequest request, ServletResponse response)方法

该方法用于将请求从一个Servlet传递给另外一个Web资源。在Servlet中,可以对请求做一个初步处理,然后通过调用这个方法,将请求传递给其他资源进行响应。需要注意的是,该方法必须在响应提交给客户端之前被调用,否则将抛出IllegalStateException异常。

3.include(ServletRequest request, ServletResponse response)方法

下面介绍下请求转发:

在Servlet中,如果当前Web资源不想处理请求时,可以通过forward()方法将当前请求传递给其它的Web资源进行处理,这种方式称为请求转发。请求转发的工作原理图如下:

从上图可以看出,当客户端访问Servlet1时,可以通过forward()方法将请求转发给其它的Web资源,其它Web资源处理完请求后,直接将响应结果返回到客户端。

标签: none