java - 多个servlet转发后如何从servlet/jsp获取原始请求url

标签 java servlets jakarta-ee struts tiles

我正在开发一个使用 struts/tiles 的邮轮预订应用程序,该应用程序使用 多个 内部 servlet/jsp 转发来到达正确的 jsp 进行显示。但是,一旦到达用于呈现页面的最终 jsp,该 jsp 中的 ${pageContext.request.requestURL} 调用将返回 this jsp 的路径。

例如

  1. 原始请求:/booking/getCruiseDetails
  2. 被转发到:/booking/validateCruiseDeteails.jsp
  3. 被转发到:/booking/validateUser.jsp
  4. 最终被转发到:/booking/showCruiseDetails.jsp

所以,在/booking/showCruiseDetails.jsp 中,当我调用 ${pageContext.request.requestURL} 我 获取/booking/showCruiseDetails.jsp

您如何从通过 multiple 转发到达的 jsp 获取原始(客户端制作的)请求 url。我确实在 stackoverflow 上找到了以下帖子,这些帖子暗示了解决方案 herehere ,但它们没有说明在发生多次转发后如何查找原始请求 url。

最佳答案

我在这篇文章中找到了更好的答案 [ How do you detect the URL in a Java Servlet when forwarding to JSP? ]

在目标JSP上使用:

request.getAttribute("javax.servlet.forward.request_uri")

找出原始 URL 是什么。

它不需要您对转发 servlet 采取任何额外的步骤

关于java - 多个servlet转发后如何从servlet/jsp获取原始请求url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5450066/

相关文章:

java - 如何关闭 SLF4J 的日志记录?

java - Future Cancel 是否也会终止数据库端的 Oracle 查询

java - 如何将信息从 servlet 传递到 JSP 页面

java - 如何在JSP中访问web.xml初始化参数

java - 如何从 Swing 与 Servlet 进行通信

java - Struts 2 中插入更新删除但显示 NullPointerException

java - servlet api 试图解决什么问题?

java - WAR Web 应用程序重新部署依赖项

java - 实例化Java对象时,是不是自动创建了一个父类的对象?

java - 无法在 Android < 21 中使用 Retrofit 2 连接到 HTTPS