码迷,mamicode.com
首页 > 编程语言 > 详细

Java Web项目里开发获取上个页面连接地址的问题

时间:2014-09-14 11:17:26      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:style   io   java   ar   for   问题   sp   cti   log   

近期做的项目有个问题,就是需要获取上个页面连接地址,我用的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);

  }

  )

 

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

 if(address!=""){

 response.sendRedirect(address);

 return;

 }

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

        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

Java Web项目里开发获取上个页面连接地址的问题

标签:style   io   java   ar   for   问题   sp   cti   log   

原文地址:http://www.cnblogs.com/345214483-qq/p/3970749.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!