<%=request.getHeader("REFERER") %>取值问题

hxt1227 2009-03-08 03:27:09
<%=request.getHeader("REFERER") %>取值有几点不明白?
我在三种情况下取值:1。通过链接跳过来 2。在地址栏中输入URL,打回车, 3。刷新
当链接过来的时候显示的是链接过来的页面的URL。正常,我刷新的时候URL没有变,但当我在地址栏中打回车(URL没有改变,只是打回车),值却变成NULL了。。。

我想知道:
(1):链接过来和在地址栏中直接输入URL,有没有什么区别?如果有,有什么区别?
(2):刷新的时候URL为什么不变,为什么还是前一个URL地址,为什么不变成当前的URL?
(3):直接输入为什么得不到<%=request.getHeader("REFERER")的值?


谢谢。。。。。
...全文
1055 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
shaloujing 2009-04-20
  • 打赏
  • 举报
回复
up
hxt1227 2009-03-08
  • 打赏
  • 举报
回复
恩!明白了。。
呵呵。。结帐!
老紫竹 2009-03-08
  • 打赏
  • 举报
回复
referer是从哪里来的,也就是前一个页面。

回车,则没有以前的,等同于你新打开一个浏览器,再次输入一样

刷新,就是重复上一次的操作。



老紫竹CSDN论坛插件发布-竹签,快速签名功能


hxt1227 2009-03-08
  • 打赏
  • 举报
回复
非常感谢!明白了。。!!
ZiSheng 2009-03-08
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 hxt1227 的回复:]
引用 8 楼 ZiSheng 的回复:
如果是直接在浏览器里输入有referer的页面,返回是null,也就是说referer只有从别的页面点击连接来到这页的才会有内容。

还有一个问题:我刷新的时候为什么URL不变?刷新应该也也不是链接过来的吧?
[/Quote]
刷新的时候,会检查服务端是否会有更新,没有的话,则使用本机的缓存,也就是说,你刷新时得到的响应依然是
前一次得到的服务端的内容,因为你的jsp文件没有变化
hxt1227 2009-03-08
  • 打赏
  • 举报
回复 1
[Quote=引用 8 楼 ZiSheng 的回复:]
如果是直接在浏览器里输入有referer的页面,返回是null,也就是说referer只有从别的页面点击连接来到这页的才会有内容。
[/Quote]
还有一个问题:我刷新的时候为什么URL不变?刷新应该也也不是链接过来的吧?
ZiSheng 2009-03-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hxt1227 的回复:]
request.getHeader("Referer")是如何判读用户是链接过来的还是用户手工输入的URL???
[/Quote]
为NULL就是手工,非null就是连接过来的。
ZiSheng 2009-03-08
  • 打赏
  • 举报
回复
如果是直接在浏览器里输入有referer的页面,返回是null,也就是说referer只有从别的页面点击连接来到这页的才会有内容。
ZiSheng 2009-03-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hxt1227 的回复:]
request.getHeader("Referer")是如何判读用户是链接过来的还是用户手工输入的URL???
[/Quote]
request.getHeader("Referer")返回的是前一个页面的地址,你直接在地址栏输入
URL当然没有前一个地址,结果就为null。

hxt1227 2009-03-08
  • 打赏
  • 举报
回复
request.getHeader("Referer")是如何判读用户是链接过来的还是用户手工输入的URL???
十一文 2009-03-08
  • 打赏
  • 举报
回复
关于request.getHeader("Referer")的说明
request.getHeader("Referer")获取来访者地址。只有通过链接访问当前页的时候,才能获取上一页的地址;否则request.getHeader("Referer")的值为Null,通过window.open打开当前页或者直接输入地址,也为Null。
hxt1227 2009-03-08
  • 打赏
  • 举报
回复
貌似都理解错了。。我只是想知道为什么会出现这种情况~~~~
hxt1227 2009-03-08
  • 打赏
  • 举报
回复
(1)如果没有区别,为什么得到的值不同哪?一个正常,一个为NULL。。。。
(3)我说的是在浏览器中直接输入 <%=request.getHeader("REFERER")的值为null
十一文 2009-03-08
  • 打赏
  • 举报
回复
网上的可能你的意思应该是这样的


用request.getHeader("REFERER")得到上一页面url,
例如:上一页为:
http://localhost/jsp/aa.jsp?aa=mm&bb=中文;

request.getHeader("REFERER")得到的结果为:
http://localhost/jsp/aa.jsp?aa=mm&bb=???

得到的中文都成?了,不知道这种该怎么解决,

中文再编码没有用,解决不了.

------------------------------------------

西湖听雨 建议

url传中文经常这样
你可以传别的
那边获取后对应替换成你要的中文
权益之计啊
还是好好找找根本的解决办法吧

--------------------------------------

暂时的解决方法是:

在得到上一页面地址前,先将bb=中文,中的中文用java.net.URLEncode.encode("中文")处理一下.
十一文 2009-03-08
  • 打赏
  • 举报
回复
才学JSP
就我理解说哈啊
(1):链接过来和在地址栏中直接输入URL,有没有什么区别?如果有,有什么区别?
应该没的区别

(2):刷新的时候URL为什么不变,为什么还是前一个URL地址,为什么不变成当前的URL?
估计是因为页面有转发!!

(3):直接输入为什么得不到 <%=request.getHeader("REFERER")的值?
好像不应该是用request.getHeader来去这个值把
request。getQueryString似乎是这个

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧