5

我正在捕获当前 URL,因为它显示在我的 JSP 页面的浏览器地址栏中,并且没有几个选项可以完成它。

在我当前的应用程序中,我们将把 web-server 放在我们的应用程序服务器前面,因为这些值似乎没有任何用处。

我有另一种方式来获取 javascript 的帮助, document.URL但我不确定它会有多可靠。

我需要获取有关用户位置的详细信息,如果可以使用getRequestURI(),它将返回类似www.abc.com/abc/search.jsp.

简而言之,我只想捕获浏览器地址栏中的 URL 并将其保存在我的 JSP 页面的隐藏字段中。

我不确定实现这一目标的最佳方法是什么。

4

3 回答 3

8

在 Java 中,您可以这样做:

 public static String getCurrentUrl(HttpServletRequest request){

    URL url = new URL(request.getRequestURL().toString())

    String host  = url.getHost();
    String userInfo = url.getUserInfo();
    String scheme = url.getProtocol();
    String port = url.getPort();
    String path = request.getAttribute("javax.servlet.forward.request_uri");
    String query = request.getAttribute("javax.servlet.forward.query_string");
    URI uri = new URI(scheme,userInfo,host,port,path,query,null)
    return uri.toString();
}
于 2015-04-10T12:36:00.513 回答
4

如果您想要一个 javascript 解决方案,您可以使用window.document.location对象及其属性:

console.log(window.document.location.protocol);
http:
console.log(window.document.location.host);
stackoverflow.com
console.log(window.document.location.port);

console.log(window.document.location.href);
http://stackoverflow.com/questions/10845606/get-current-url-in-webapplication
console.log(window.document.location.pathname);
/questions/10845606/get-current-url-in-webapplication

您可以在 MDN阅读本文了解其他参数。

于 2012-06-01T07:00:58.887 回答
4

您可以在表单中创建隐藏字段

<input type="hidden" id="myurl" name="myurl"/>

然后写一个javascript

<script type="text/javascript">
document.getElementById('myurl').value = window.location.href
</script>

那是帮助吗?

于 2012-06-01T07:02:18.403 回答