java servlet转发_JAVA记录-Servlet RequestDispatcher请求转发

RequestDispatcher接口提供将请求转发送到另一个资源的功能,它可能是html,servlet或jsp等。 此接口也可用于包括另一资源的内容。它是servlet协作的一种方式。

在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文件)。

java servlet转发_JAVA记录-Servlet RequestDispatcher请求转发_第1张图片

如上图所示,第一个servlet转发请求到第二个servlet的响应发送给客户端。 第一个servlet的响应不会显示给用户。

java servlet转发_JAVA记录-Servlet RequestDispatcher请求转发_第2张图片

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

如何获取RequestDispatcher的对象?

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

getRequestDispatcher方法的语法如下 -

public RequestDispatcher getRequestDispatcher(String resource);

Java

使用getRequestDispatcher方法的示例

RequestDispatcher rd=request.getRequestDispatcher("servlet2");

//servlet2 is the url-pattern of the second servlet

rd.forward(request, response);//method may be include or forward

Java

RequestDispatcher接口示例

在这个例子中,验证用户输入的密码。如果密码是:mypasswd,它会将请求转发到WelcomeServlet,否则会显示一条错误消息:sorry username or password error! 在这个程序中,使用的是硬编码(即:直接在代码中指定密码)。大部分应用中都是在数据库中存储用户信息和密码的,在接下来的教程文章我们也会介绍和学习。在这个例子中,创建了以下几个文件:

index.html:用于从用户处获取输入。

Login.java:用于处理响应的servlet类。如果用户输入的密码是mypasswd,它会将请求转发给WelcomeServlet。

WelcomeServlet.java:用于显示欢迎消息的servlet类。

web.xml:包含有关servlet信息的部署描述符文件。

工作流程,请参考下图 -

java servlet转发_JAVA记录-Servlet RequestDispatcher请求转发_第3张图片

打开Eclipse,创建一个名称为:ReqDispatcher 的动态Web项目,其完整的项目结构如下图所示 -

java servlet转发_JAVA记录-Servlet RequestDispatcher请求转发_第4张图片

下面是这个项目中相关文件的代码实现 -

文件:index.html -

登录

用户名:

密码:

你可能感兴趣的:(java,servlet转发)