最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
jsp request.getHeader("referer")
时间:2011-07-19 编辑:简简单单 来源:一聚教程网
jsp教程 request.getHeader("referer")
它是http协议,所以任何能开发web程序的语言都可以实现,比如jsp中是:
request.getHeader("referer");
php教程是$_SERVER['HTTP_REFERER']。其他的我就不举例了(其实是不会其他的语言)。
那它能干什么用呢?我举两个例子:
1,防止盗连,比如我是个下载软件的网站,在下载页面我先用referer来判断上一页面是不是自己网站,如果不是,说明有人盗连了你的下载地址。
2,电子商务网站的安全,我在提交信用卡等重要信息的页面用referer来判断上一页是不是自己的网站,如果不是,可能是黑客用自己写的一个表单,来提交,为了能跳过你上一页里的网页特效的验证等目的。
使用referer的注意事项:
如果我是直接在浏览器里输入有referer的页面,返回是null(jsp),也就是说referer只有从别的页面点击连接来到这页的才会有内容。
我做了个实验,比如我的referer代码在a.jsp中,它的上一页面是b.htm,c.htm是一个带有iframe的页面,它把a.jsp嵌在iframe里了。我在浏览器里输入b.htm的地址,然后点击连接去c.htm,那显示的结果是b.htm,如果我在浏览器里直接输入的是c.htm那显示的是c.htmreferer是浏览器在用户提交请求当前页面中的一个链接时,将当前页面的URL放在头域中提交给服务端的,如当前页面为a.html,它里面有一个b.html的链接,当用户要访问b.html时浏览器就会把a.html作为referer发给服务端.
如何获取 上一级页面的地址
OK,如果发送页面以POST方式提交
这个request.getHeader("referer") 完全没有问题
但是如果如果发送页面以get方式提交 ,或许还带有参数
request.getHeader("referer") 会返回空值 如何解决呢?
说下我的具体情况吧
比如在每个JSP页面 都包含
<%@page errorPage="../error.jsp" %>
如果出现任何问题 都会跳到error.jsp页面
error.jsp 有一个back的按钮 要求实现返回上一级页面
其实利用history.back() 就可以实现 ,但是由于代理服务器原因 去掉了缓存的原因 所以需要另一种方式来实现此功能
大家有什么好的方法和建议吗??谢谢
把地址保存到request或session里面去。
你根本没有理解<%@page errorPage="../error.jsp" %>
的真正意义,否则不可能会问出这种问题
不好意思 get 用request.getHeader 是没问题的
document.location="xx.jsp" 这样才有问题
那楼上请教一下该如何理解呢 ~ 说实话 我只知道errorpage 就是相当于一个大的catch
但需求要求在这个页面 有一个返回上一级页面的功能
OK,如果发送页面以POST方式提交
这个request.getHeader("referer") 完全没有问题
-
下一个: JTextArea 图片水印实现代码
相关文章
- nodejs中http的get和request使用方法详解 04-29
- jsp request.getHeader的使用方法 06-04
- SpringBoot测试配置属性与web启动环境解析 10-24
- vue中将el-switch值true、false改为number类型的1和0解析 10-24
- Vue中的路由配置项meta使用解读 10-24
- SpringBoot自定义bean绑定解析 10-24