我正在捕获当前URL,因为它显示在我的JSP页面的浏览器地址栏中,并且没有多少选项可以完成它。
javax.servlet.include.request_uri
和Servlet 2.4规范中定义的其他内容。我引用此主题获取有关它的详细信息java-httpservletrequest-get-url-in-browsers-url-bar。在我目前的应用程序中,我们将把web服务器放在我们的应用程序服务器前面,而不是看起来这些值没有任何用处。
我有另一种方法可以帮助javascript document.URL
,但我不确定它有多可靠。
我需要获取有关用户位置的详细信息,如果我可以使用getRequestURI()
,则会返回www.abc.com/abc/search.jsp
之类的内容。
简而言之,我只想捕获浏览器地址栏中的URL,并将其保存在JSP页面的隐藏字段中。
我不确定实现这一目标的最佳方法是什么。
答案 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>
是帮助吗?