我正在开发一个使用 struts/tiles 的邮轮预订应用程序,该应用程序使用 多个 内部 servlet/jsp 转发来到达正确的 jsp 进行显示。但是,一旦到达用于呈现页面的最终 jsp,该 jsp 中的 ${pageContext.request.requestURL}
调用将返回 this jsp 的路径。
例如
- 原始请求:/booking/getCruiseDetails
- 被转发到:/booking/validateCruiseDeteails.jsp
- 被转发到:/booking/validateUser.jsp
- 最终被转发到:/booking/showCruiseDetails.jsp
所以,在/booking/showCruiseDetails.jsp 中,当我调用 ${pageContext.request.requestURL}
我
获取/booking/showCruiseDetails.jsp
您如何从通过 multiple 转发到达的 jsp 获取原始(客户端制作的)请求 url。我确实在 stackoverflow 上找到了以下帖子,这些帖子暗示了解决方案 here和 here ,但它们没有说明在发生多次转发后如何查找原始请求 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/