获取请求发件人的URL

时间:2011-09-01 12:37:04

标签: web-applications servlets request

我的应用程序部署为JavaScript,在其他地方的tomcat上处理某些页面和Web应用程序。

我现在尝试做的是找到一种方法来确定请求是从给定的网页发送还是从其他地方发送(例如从localhost发送 - 在这种情况下我无法发送数据)。

当我尝试在我的servlet中执行此操作时 - 在doPost()中 - 我正在获取该servlet,作为请求发件人url = http://localhost:8084/app/servlet的结果:

    String domain = new URL(request.getRequestURL().toString()).toString(); 
    System.out.println("url = " + domain);

我需要做什么才能获取我的脚本向我发送数据的网页的网址?

1 个答案:

答案 0 :(得分:3)

此信息可在HTTP referer header中找到(是的,拼写错误):

String referrer = request.getHeader("referer");
// ...

请注意,这完全由客户端控制 - 与HTTP请求中的其他所有内容相同。客户端可以更改/欺骗它。您肯定不会将其用于敏感的业务操作。使用它最高的统计数据或非正式横幅,如“嘿,欢迎来自Google的访客!您的搜索关键字在此处突出显示:”或类似。

如果我没有错,我认为您正在尝试重新发明Google Analytics。您可能会发现这很有用:what's the proper way to write a js that will be included in other websites?