返回上级页面方法

referer是浏览器在用户提交请求当前页面中的一个链接时,将当前页面的URL放在头域中提交给服务端的,
如当前页面为a.html,它里面有一个b.html的链接,当用户要访问b.html时浏览器就会把a.html作为referer发给服务端.

errorpage 根本不是用户去访问的,绝对大多数errorPage是forward,由服务端直接调用http连接访问errorpage将结果发给用户.
用户根本没有访问errorPage.

对于location="aaa.jsp"这样用js访问没有referer,是因为当执行location="aaa.jsp"时,当前页面的URL已经是aaa.jsp,
真的要取上一级当然可以从history中取到发给服务端,但那已经不是Referer的本意了..可以以如下代码来代替:
function jump(url){
    var e = document.createElement("a");
    e.href = url;
    document.body.appendChild(e);
    e.click();
}

 

//JAVA 中
String currentURL = request.getRequestURL().toString();
String preURL = request.getHeader("referer");

if (currentURL.equals(preURL) ) {
 return new RedirectingActionForward(preURL);
} else {
 return new RedirectingActionForward(currentURL)
}

 

在login.jsp中添加代码

Java代码 复制代码
  1. String referer = request.getHeader("Referer");  
  2. session.setAttribute("returnURL", referer);  
String referer = request.getHeader("Referer");
session.setAttribute("returnURL", referer);


记录登陆前页面url

login.do 从session中取得returnURL ,然后跳转

Java代码 复制代码
  1. if( loginSuccess ){  
  2.     String returnURL = (String)request.getSession().getAttribute("returnURL");  
  3.     response.sendRedirect(returnURL );  
  4. }  
if( loginSuccess ){
    String returnURL = (String)request.getSession().getAttribute("returnURL");
    response.sendRedirect(returnURL );
}



呵呵 就这么简单轻松搞定

对了最后别忘了session.removeAttribute(returnURL);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值