java - 使用 getRequestDispatcher 了解 JSP 代码行

标签 java jsp servlets

req.getRequestDispatcher("jsp/viewArticles.jsp").forward(req, resp);

因此我们获得了请求的调度程序,并提供了路径。到目前为止还好。现在我们将 reqresp 转发给它。

现在我迷路了:我们从这个 req 中获取 RequestDispatcher,所以 RequestDispatcherreq 的成员方法。那么为什么我们还需要forward req本身到这个RequestDispatcher呢?这个方法不能只使用 this 来访问 req 吗?

我发现了一个与我相同的问题,但它不理解解释,这就是为什么我作为一个绝对的 servlet 初学者再次询问。

How do the getRequestDispatcher() and forward() methods work?

为了澄清,reqresp 分别是 HttpServletRequestHttpServletResponse 类型。

最佳答案

从 API 开始,RequestDispatcher 是一个对象,它接收来自客户端的请求并将它们发送到服务器上的任何资源(例如 servlet、HTML 文件或 JSP 文件)。 Servlet 容器(又名 Tomcatt)创建 RequestDispatcher 对象,该对象用作位于特定路径或由特定名称指定的服务器资源的包装器

getRequestDispatcher() 方法可从当前 Request 对象或当前 Servlet Context 对象获取。在同一上下文中使用 req.getRequestDispatcher(path) 作为相对路径,并且更喜欢使用 ServletContext.getRequestDispatcher(path) 作为绝对路径。

在转发之前,您可以使用 req.setAttribute("key", valueObject ) 方法将参数对象添加为属性,以将参数转发到服务器端。 Request处理来自客户端的数据,你可以完成它,Response将处理页面、headers、cookie等给客户端。

希望这能有所帮助

关于java - 使用 getRequestDispatcher 了解 JSP 代码行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44656645/

相关文章:

java - 转发到 JSP 的 Servlet

java - 在java配置中配置Spring Integration SpEl

java - JPA 2 - 一对一交叉引用

java - 如何在显示JSP后执行hibernate session.close()以避免lazy=false

java - 如何使用参数初始化 Java EE 5 JAX-WS 2.0 Web 服务

java - servlet如何处理一次请求中上传多个文件

java - 本地通知未在所有设备中触发

java - 通过局部变量访问 volatile 字段

html - 如何忽略 HTML 和 CSS 中的 2 个断行?

python - 使用selenium webdriver python通过xpath登录jsp表单