Servlet 中的 RequestDispatcher

2025年3月17日 | 阅读 3 分钟

RequestDispatcher 接口提供了将请求分派到另一个资源(可以是 html、servlet 或 jsp)的功能。 此接口还可用于包含另一个资源的内容。 这是 servlet 协作的一种方式。

RequestDispatcher 接口中定义了两个方法。


RequestDispatcher 接口的方法

RequestDispatcher 接口提供两种方法。 它们是

  1. public void forward(ServletRequest request,ServletResponse response)throws ServletException,java.io.IOException:将来自 servlet 的请求转发到服务器上的另一个资源(servlet、JSP 文件或 HTML 文件)。
  2. public void include(ServletRequest request,ServletResponse response)throws ServletException,java.io.IOException:在响应中包含资源(servlet、JSP 页面或 HTML 文件)的内容。

forward() method of RequestDispatcher interface

如上图所示,第二个 servlet 的响应被发送到客户端。 第一个 servlet 的响应未显示给用户。


include() method of RequestDispatcher interface

如上图所示,第二个 servlet 的响应包含在发送到客户端的第一个 servlet 的响应中。

如何获取 RequestDispatcher 对象

ServletRequest 接口的 getRequestDispatcher() 方法返回 RequestDispatcher 对象。 语法

getRequestDispatcher 方法的语法

使用 getRequestDispatcher 方法的示例


RequestDispatcher 接口的例子

在本例中,我们正在验证用户输入的密码。 如果密码是 servlet,它将把请求转发到 WelcomeServlet,否则将显示错误消息:sorry username or password error!。 在此程序中,我们正在检查硬编码的信息。 但你也可以将其检查到数据库,我们将在开发章节中看到。 在本例中,我们创建了以下文件

  • index.html 文件:用于从用户获取输入。
  • Login.java 文件:一个 servlet 类,用于处理响应。 如果密码是 servet,它将把请求转发到欢迎 servlet。
  • WelcomeServlet.java 文件:一个 servlet 类,用于显示欢迎消息。
  • web.xml 文件:一个部署描述符文件,其中包含有关 servlet 的信息。

RequestDispatcher interface


index.html

Login.java

WelcomeServlet.java

web.xml
Program of RequestDispatcher interface Example of RequestDispatcher interface Program of RequestDispatcher Example of RequestDispatcher
下一个主题SendRedirect() 方法