gpt4 book ai didi

jsp - getURI 显示 JSP 名称而不是浏览器 URL?

转载 作者:行者123 更新时间:2023-12-01 05:28:24 28 4
gpt4 key购买 nike

我试图将在浏览器地址栏中查看的 URL 拉入 Google Analytics 标签。我使用了
<%
String getURI=request.getRequestURI();
%>

方法,但它向我显示了 JSP 文件名/路径,而不是浏览器中的内容。

我这样做是错误的还是因为我在 VM 上的开发人员 ToolKit 中这样做是预期的?我浏览了论坛并在谷歌上查看,但找不到我的问题的答案,似乎没有任何东西可以解决它在本地环境中工作方式不同的可能性,所以我认为我做错了什么。

最佳答案

如果 JSP 是 forwarded通过前端 Controller ,然后是 HttpServletRequest#getRequestURI() 确实会返回 JSP 的 URI 而不是客户端最初请求的原始 URI(在浏览器的地址栏中可见)。

在转发的情况下,原始请求 URI 可用作请求属性,其 key 由 RequestDispatcher#FORWARD_REQUEST_URI 标识。 , 即 javax.servlet.forward.request_uri .

所以,这应该做:

String getURI = request.getAttribute(RequestDispatcher.FORWARD_REQUEST_URI);

或者当您仍在使用 Servlet 2.5 或更早版本时(该常量是在 Servlet 3.0 中引入的):
String getURI = request.getAttribute("javax.servlet.forward.request_uri");

顺便说一下,它在 JSP EL 中可用,如下所示:
${requestScope['javax.servlet.forward.request_uri']}

关于jsp - getURI 显示 JSP 名称而不是浏览器 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12695105/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com