Sal*_*cha 31 java struts servlets tiles java-ee
我正在使用struts/tiles工作巡航预订应用程序,它使用多个内部servlet/jsp转发到达正确的jsp进行显示.但是,一旦你到达用于呈现页面的最终jsp,jsp中的${pageContext.request.requestURL}
调用将返回此 jsp 的路径.
例如
所以,当我调用/booking/showCruiseDetails.jsp时,在${pageContext.request.requestURL}
/booking/showCruiseDetails.jsp中
如何从通过多个转发到达的jsp获取原始(客户端制作的)请求URL .我确实在stackoverflow上找到了以下关于此处和此处的解决方案的帖子,但是他们没有解决在多次转发发生后如何查找原始请求URL的问题.
Len*_*kus 59
我在这篇文章中找到了一个更好的答案[ 如何在转发到JSP时检测Java Servlet中的URL?]
在目标JSP上使用:
request.getAttribute("javax.servlet.forward.request_uri")
找出原始网址是什么.
它不需要您在转发servlet上执行任何额外的步骤
luk*_*ymo 12
您可以使用过滤器将原始地址放入请求属性,然后从jsp中读取它
过滤映射到/ booking/*执行:
request.setAttribute("origin", request.getRequestURL());
Run Code Online (Sandbox Code Playgroud)
JSP:
${pageContext.request.attribute["origin"]}
Run Code Online (Sandbox Code Playgroud)
这是因为过滤器默认设置了REQUEST调度程序.这意味着过滤器仅针对不用于转发/包含的直接客户端请求执行
归档时间: |
|
查看次数: |
42614 次 |
最近记录: |