Java RequestDispatcher 教程显示了如何使用 Java RequestDispatcher
将请求分派到资源。
RequestDispatcher
RequestDispatcher 从客户端接收请求,并将其发送到服务器上的资源(例如 Servlet,HTML 文件,JSP 文件,FreeMarker 或 Thymeleaf 模板)。
RequestDispatcher
方法
RequestDispatcher
有两种方法:
forward()
-将请求从 Servlet 转发到另一个资源include()
-在响应中包含资源的内容
两种方法之间的区别在于,forward()
方法将在调用后关闭输出流,而include()
方法将打开输出流。 include()
方法从另一个资源获取内容,并将其包含在 Servlet 中。 forward()
方法将请求发送到另一个资源。
获取RequestDispatcher
RequestDispatcher
可以从请求对象或 servlet 上下文中获得。
我们可以使用getRequestDispatcher()
方法从请求对象中获取RequestDispatcher
。
在这里,我们从 servlet 上下文中获取RequestDispatcher
。 在这种情况下,路径必须以斜杠字符开头。
Java RequestDispatcher
转发到 JSP
以下示例将来自客户端的请求发送到 JSP 页面。
index.html
在主页中,我们有一个简单的形式:它从用户那里获取一个值,并将其作为请求参数发送到MyServlet
。
MyServlet.java
在MyServlet
中,我们使用RequestDispatcher
转发到greet.jsp
页面。
greet.jsp
在greet.jsp
页面中,我们显示name
参数,该参数由用户在表单中设置。
Java RequestDispatcher
转发到 Servlet
以下示例将来自客户端的请求发送到 Servlet,该 Servlet 将处理转发到另一个 Servlet。
index.html
主页包含一个调用MyServlet
的链接。
MyServlet.java
该请求首先到达MyServlet
。
我们为请求设置一个属性; 这是当前时间。
包括新属性的请求被发送到AnotherServlet
。
AnotherServlet.java
AnotherServlet
将即时对象格式化为简短的英语日期时间格式,并将其打印到输出流中。
我们使用DateTimeFormatter
类格式化日期时间。
我们使用getAttribute()
方法从请求中检索属性。
即时被格式化并打印到输出中。
Java RequestDispatcher
包括
下一个示例包括从另一个 servlet 到调用 servlet 的输出。
index.html
主页包含一个调用MyServlet
的链接。
MyServlet.java
MyServlet
将数据打印到输出流并转发到AnotherServlet
。
AnotherServlet.java
AnotherServlet
还将数据打印到输出流。 最后,我们将两条消息都写入输出流并发送给客户端。
在本教程中,我们介绍了 Java RequestDispatcher
。 我们已经介绍了RequestDispatcher's
,forward
和include()
方法。