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

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

例如

>原始要求:/ booking / getCruiseDetails
>转发到:/booking/validateCruiseDeteails.jsp
>转发到:/booking/validateUser.jsp
>最后转发到:/booking/showCruiseDetails.jsp

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

如何从通过多个转发到达的jsp获取原始(客户端制作的)请求URL.我确实在*上找到了提示解决方案herehere的以下帖子,但它们没有解决在多个转发发生后如何查找原始请求URL的问题.

解决方法:

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

在目标JSP上使用:

request.getAttribute( “javax.servlet.forward.request_uri”)

找出原始网址是什么.

它不需要您在转发servlet上执行任何额外的步骤

上一篇:java-Struts中的文件下载开始事件


下一篇:JavaWeb_(Struts2框架)Action中struts-default下result的各种转发类型