This question表示转发时,请求对象中的信息会更新以反映新文件。例如,当:
用户请求“/ abc” - >调用servlet>转发到/def.jsp
然后在def.jsp
${request.requestURI}
中将/def.jsp
而不是/abc
。如果想要获取原始请求的URI(或任何其他信息,如servlet路径等):
request.getAttribute("javax.servlet.forward.request_uri");
一切都很好,但是如何通过JSTL访问它。 ${javax.servlet.forward.request_uri}
不起作用。点被视为运算符,而不是名称的一部分。在其他情况下,这可以通过将名称放在方括号中并引用它来解决。但是这里没有地图对象,${['javax.servlet...']}
不起作用。
那么,怎么样?
(我可以将它放在servlet中的“无点”属性中,但这是一种解决方法)
答案 0 :(得分:16)
据我记忆,它是这样的:
${requestScope["javax.servlet.forward.request_uri"]}