java如何获取客户端的url
我正在将请求从Display.jsp
发送到TrialShow。jsp页面,但无论何时在TrialShow jsp页面中调用${pageContext.request.requestURL}
,我都会将http://localhost:8081/newjsp1/TrialShow.jsp
作为输出。如何在TrialShow JSP页面中显示http://localhost:8081/newjsp1/Display.jsp
你可以在下面搜索框中键入要查询的问题!
我正在将请求从Display.jsp
发送到TrialShow。jsp页面,但无论何时在TrialShow jsp页面中调用${pageContext.request.requestURL}
,我都会将http://localhost:8081/newjsp1/TrialShow.jsp
作为输出。如何在TrialShow JSP页面中显示http://localhost:8081/newjsp1/Display.jsp
# 1 楼答案
使用
${requestScope['javax.servlet.forward.request_uri']}
编辑:已更正语法
EDIT:如果您将请求转发到第二个jsp(例如,使用
<jsp:forward .../>
),则此操作有效# 2 楼答案
那么,您想要通过完整的HTTP请求调用当前页面的页面的URL吗?我假设没有转发的方法,因为您通常不使用JSP(因为它可能会产生
IllegalStateException: Response already committed
),而且,有了转发,您的需求就会按照您想要的方式工作最简单的方法也是最好的选择是获取HTTP ^{} 头(是的,包括传说中的打字错误)。您可以在EL中获得它,如下所示:
我说的是“最佳选择”,因为客户不需要填写推荐人标题。大多数浏览器都会发送它们,但请记住,此值完全由客户端控制,因此客户端(或任何客户端安装的软件,以及已知的某些特定Norton软件)可以伪造甚至完全删除头值
更可靠的方法是让原始页面作为(隐藏的)请求参数传递其URL。例如
这样就可以在下一页的
我说“bit”,因为客户端仍然可以更改它,但现在您不再依赖于特定于客户端的环境。您仍然需要记住,您不应该将此值用于业务目的。在最高级别使用它进行统计或调试