获取Web应用程序中的当前URL

时间:2012-06-01 06:45:29

标签: java javascript jsp java-ee

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

在我目前的应用程序中,我们将把web服务器放在我们的应用程序服务器前面,而不是看起来这些值没有任何用处。

我有另一种方法可以帮助javascript document.URL,但我不确定它有多可靠。

我需要获取有关用户位置的详细信息,如果我可以使用getRequestURI(),则会返回www.abc.com/abc/search.jsp之类的内容。

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

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

3 个答案:

答案 0 :(得分:6)

在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();
}

答案 1 :(得分:3)

如果你想要一个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上了解阅读this article的其他参数。

答案 2 :(得分:3)

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

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

然后写一个javascript

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

是帮助吗?