取得URL

1.request.getRrmoteAddr() ;获得本地客户端的IP地址,可能会IPv4可能会IPv6,取决于c盘中的host文件。
2.request.getRequestURL() ; 获得本网页的URL(所请求的地址的URL) ,stringbuffer型。

3.request.getHeader(“Referer”); 获得上一个来源网页的URL;

request.getHeader(“referer”)获取来访者地址。只有通过链接访问当前页的时候,才能获取上一页的地址;

否则request.getHeader(“referer”)的值为null,通过window.open打开当前页或者直接输入地址,也为null。

若从 http://xxx/a.jsp 上 点击 a标签 至 http://XXXX/b.jsp

b.jsp 获取 request.getHeader(“referer”) 返回 http://xxx/a.jsp
(转自http://blog.csdn.net/zhanghaipeng1989/article/details/19477753

request.getHeader(“Referer”)用于获取来源页地址,但有时却为空值,这是怎么回事。原因如下:

 getHeader(“Referer”)要走http协议时才有值,也就是说要通过< a href=”url”>a< /a >标记才能获得那个值,而通过改变location或是< a href=”javascript:location=’url’”>a< / a > 都是得不到那个值的。

使用request.getHeaders(“Referer”)返回的Enumeration 玫举本身就只有一个元素,也就是request.getHeader(“Referer”)的返回值。

以前有这样一个帖子目的是如何获取上一级页面的地址

如果发送页面以POST方式提交,这个request.getHeader(“referer”) 完全没有问题。但是如果发送页面以get方式提交 ,或许还带有参数,request.getHeader(“referer”) 会返回空值(可以防止用户在地址里粘贴链接,因为在地址栏里贴地址是数据get提交方式)。那么该如何解决呢?
说下我的具体情况吧

比如在每个JSP页面都包含 如果出现任<% page errorPages=”../error.jsp”%>

何问题 ,都会跳到error.jsp页面。error.jsp 有一个back的按钮 要求实现返回上一级页面

其实利用history.back() 就可以实现 ,但是由于代理服务器原因 去掉了缓存的原因所以需要另一种方式来实现此功能。
referer是浏览器在用户提交请求当前页面中的一个链接时,将当前页面的URL放在头域中提交给服务端的,如当前页面为a.html,它里面有一个b.html的链接,当用户要访问b.html时浏览器就会把a.html作为referer发给服务端.
errorpage 根本不是用户去访问的,绝对大多数errorPage是forwaord,由服务端直接调用http连接访问errorpage将结果发给用户.用户根本没有访问errorPage.
对于location=”aaa.jsp”这样用js访问没有referer,是因为当执行location=”aaa.jsp”时,当前页面的URL已经是aaa.jsp,真的要取上一级当然可以从history中取到发给服务端,但那已经不是Referer的本意了.可以以如下代码来代替:`function jump(url){
var e = document.createElement_x(“a”);
e.href = url;
document.body.appendChild(e);
e.click();
}

然后你调用:
jump(“http://host/aaa.jsp“);看看肯定能取到.

referer的意图是判断访问来源,比如你想知道用户是通过google还是baidu找到你的页面的,就可以判断referer。很多下载站点也用它防止盗链,所以flash get之类的软件会自动把当前页作为referer字段发给下载地址以伪装成站内点击

(转自http://blog.csdn.net/liyunyun6/article/details/8961808

1、获取上一个网页的URL:

String url=request.getHeader(“Referer”);

2、获取本网页的URL:

String url=request.getScheme()+”://”+ request.getServerName()+request.getRequestURI();

==即是 String url=request.getRequestURL() ;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值