近期做的项目有个问题,就是需要获取上个页面连接地址,我用的IE浏览器,在用location.href连接到新地址的时候,在新地址页面用document.referrer的方法获取不到原地址,我测试了下,用的火狐和谷歌都行。有些IE版本可以,有些不支持,在老师的帮助下,在网上找到了解决方式。

这个是我的product-view.jsp页面,我点击结算时需要判断有没有用户ID,如果没有的话我就让他先登录,gotuurl()里的url是你去的目标页面,这个方法创建了一个a标签,然后自动触发点击事件去到目标页面,

function goumai(userid,proid,proprice,number) {

alert("请先登录!");

gotourl("/EBuy/login.jsp");

}

function gotourl(url){

var referLink = document.createElement('a');

referLink.href = url;

document.body.appendChild(referLink);

referLink.click();

}

这时的目标页面login.jsp就可以拿到referrer了(上一个页面地址);

$(function(){

var address=document.referrer;

$("#yincang").attr("value",address);

}

)

然后登陆页面又要转到Servlet的LoginJudge页面,刚好我的Login用的是表单提交我可以用隐藏域把上一个页面的地址再传递到LoginJudge页面,并加上判断再返回原页面。

if(address!=""){

response.sendRedirect(address);

return;

}

如果没有表单验证的话,那么Servlet取referrer的方式是:

String url= request.getHeader("Referer");

System.out.println(url);

String refer=url.substring(url.indexOf(request.getContextPath()));

response.sendRedirect(refer);

因为此时还没学异步提交,只有用这个笨方式了,当然Login页面处理不好会有许多bug,比如你登陆失败,或注册失败之后再输入就算成功了,获取的也还是这个页面就不能跳转了,判断很麻烦。

测试的

Localtion.href和<jsp:forward page="login.jsp"></jsp:forward>在一些IE浏览器里都不能传递referrer。

最新文章

  1. ASP.NET MVC5+EF6+EasyUI 后台管理系统(66)-MVC WebApi 用户验证 (2)
  2. C# RSA 分段加解密
  3. 谈谈 ES6 的 Promise 对象
  4. Dozer应用——类之间值的映射
  5. 开启Ubuntu Linux下VirtualBox访问USB功能
  6. UVA 10652 Board Wrapping(凸包)
  7. Mybatis高级应用
  8. 第一篇:APUE-操作系统IO模型
  9. verilog之task用法实例
  10. 十天学会php第五天
  11. js调用wcf 的SOA
  12. label同时设置sizeToFit,NSTextAlignmentCenter不起作用
  13. Oracle问题之ORA-01031权限不足
  14. MS SQL作业Schedule的限制注意事项
  15. 复习-css列表和表格相关属性
  16. Java 文本I/O 处理
  17. stale element reference: element is not attached to the page document 异常
  18. 利用phpqrcode二维码生成类库和imagecopymerge函数制拼接图片的经验
  19. Python socket简单操作
  20. #pragma warning(disable 4786)

热门文章

  1. Python中整数和浮点数
  2. library not found for -lPods 的解决办法
  3. mvc EF 数据保存时,报错:”对一个或多个实体的验证失败……“之解决
  4. 正则表达式lastIndex属性浅析
  5. LightOj1028 - Trailing Zeroes (I)---求因子个数
  6. jQuery控制CSS样式
  7. Excel 的一些用法--行号赋给一列
  8. iOS获取的NSDate date时间与实际相差8个小时
  9. XMPP语音聊天解决方案 (待论证 正打算写)
  10. JQuery:JQuery添加元素