有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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


共 (2) 个答案

  1. # 1 楼答案

    使用${requestScope['javax.servlet.forward.request_uri']}

    编辑:已更正语法

    EDIT:如果您将请求转发到第二个jsp(例如,使用<jsp:forward .../>),则此操作有效

  2. # 2 楼答案

    那么,您想要通过完整的HTTP请求调用当前页面的页面的URL吗?我假设没有转发的方法,因为您通常不使用JSP(因为它可能会产生IllegalStateException: Response already committed),而且,有了转发,您的需求就会按照您想要的方式工作

    最简单的方法也是最好的选择是获取HTTP ^{}头(是的,包括传说中的打字错误)。您可以在EL中获得它,如下所示:

    ${header.referer}
    

    我说的是“最佳选择”,因为客户不需要填写推荐人标题。大多数浏览器都会发送它们,但请记住,此值完全由客户端控制,因此客户端(或任何客户端安装的软件,以及已知的某些特定Norton软件)可以伪造甚至完全删除头值

    更可靠的方法是让原始页面作为(隐藏的)请求参数传递其URL。例如

    <input type="hidden" name="from" value="${pageContext.request.requestURI}">
    

    这样就可以在下一页的

    ${param.from}
    

    我说“bit”,因为客户端仍然可以更改它,但现在您不再依赖于特定于客户端的环境。您仍然需要记住,您不应该将此值用于业务目的。在最高级别使用它进行统计或调试