在jsp中怎么实现登录后,自动跳转到登录前正浏览的页面

在jsp中怎么实现登录后,自动跳转到登录前正浏览的页面

在jsp中怎么实现登录后,自动跳转到登录前正浏览的页面?就像csdn的一样,
不管你从哪能个页面登录,成功登录后会自动跳转回那个页面。
解决方法一:
登录处理后,返回如下内容:   
 2   PrintWriter out  =  response.getWriter();
 3  
 4   out .println( " <!DOCTYPE HTML PUBLIC  "" -//W3C//DTD HTML 4.01 Transitional//EN "" > " );
 7  
 8   out.println( " <HTML> " );
 9
11  
12   out.println( "   <BODY> " );
13  
16   out.println( " <script>history.go(-1);history.go(0);</script> " );
19  
20   out.println( "   </BODY> " );
21  
22   out.println( " </HTML> " );
23  
24   out.flush();
25  
26   out.close();
27  
28   return   null
29  
解决方法二:    

1
 String referer 
=
 req.getHeader(
"
Referer
"
);
2 resp.sendRedirect(referer);
3 return ;
4  
5  
上面两种方法不可取是因为,如果用户登录失败,再次登录的话就会出现登录后返回到登录的错误。

第三种:把你要在跳转时需要保存的信息存放在session变量中,登录后清除这个session。可行。
需要登录操作的页面上面添加:
1   <%
2        if (session.getAttribute( " party " ) ==   null ){
3            if ( null   !=  request.getQueryString())
4               session.setAttribute( " redirectUrl " , request.getRequestURL().append( " ? " ).append(request.getQueryString()).toString());
5            else
6               session.setAttribute( " redirectUrl " , request.getRequestURL().toString());
7           response.sendRedirect(request.getContextPath()  +    " /loginto " );
8       }
9   %>
在登录处理页面:

1   String redirectUrl  =  (String)req.getSession().getAttribute( " redirectUrl " );
2            if (StringUtils.isValid(redirectUrl)){
3               req.getSession().removeAttribute( " redirectUrl " );
4               resp.sendRedirect(redirectUrl);
5           }
第四种方法:写一个servlet会话判断类,如果在线就继续执行,不在线则提示登录。所有的需要在线操作的
servlet都集成此类,这样就不需要上面那么在每个页面写上这些代码了,可以集中控制。这种方式比较完整。

HttpSession session  =  request.getSession();

if  (session.getAttribute( " person " ==   null
{
    
if  ( null   !=  request.getQueryString())
                session.setAttribute(
" redirectUrl " , request.getRequestURL().append( " ? " ).append(request.getQueryString()).toString());
    
else
                session.setAttribute(
" redirectUrl " , request.getRequestURL()
                        .toString());
     response.sendRedirect(request.getContextPath() 
+   " /login.jsp " );
    
return   null ;
 }

return  process(config, request, response);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值