使用COOKIE登录验证(转载)

附加功能:登录成功后保存Cookie一段时间,在这期间无需重新登录
一个基本的登录模块至少分为4个页面:
1.输入用户信息页面(login.jsp);
2.用户合法性验证页面(check.jsp);
3.登录成功欢迎页面(pass.jsp);
4.登录失败提示页面(failure.jsp)。

为了实现保存Cookie功能,还需增加一个页面:
5.检查Cookie页面(index.jsp)

结构图如下:
---------------------------------------------------------------------

                 index.jsp
                       |
                       |判断Cookie中有无用户名、密码
          ----------------------
          |   Y                 N  |
          |                          V
          |                      login.jsp<--------------------
          |                          |输入用户名、密码           |
          |                          V                                  |
          ---------------->check.jsp                           |
                                      |                                  |
                                      |验证用户名、密码          |
                          ---------------------                     |
                          |  Y                N  |                     |
                          V                       V                    |
                      pass.jsp           failure.jsp----------

---------------------------------------------------------------------

index.jsp:
<% @ page contentType = " text/html;charset=GB2312 "   %>
< html >
  
< head >
    
< title > index </ title >
  
</ head >
  
  
< body >
    
<%
        
int  i;
        
// 初始化,用于保存Cookie中的用户名、密码
        String C_username = "" ;
        String C_password
= "" ;
        
// 获取全部Cookie
        Cookie c[] = request.getCookies();
        
for (i = 0 ;i < c.length;i ++ )
        {
            
// 在Cookie中查找用户名、密码,如果找到,则分别将其赋值给用户名、密码变量
             if ( " username " .equals(c[i].getName()))
                C_username
= c[i].getValue();
            
if ( " password " .equals(c[i].getName()))
                C_password
= c[i].getValue();
        }
        
if ( ! "" .equals(C_username)  &&   ! "" .equals(C_password))
        {
            
// Cookie中有用户名、密码,将用户名、密码提交到验证页面
            response.sendRedirect( " check.jsp?username= " + C_username + " &password= " + C_password);
        }
        
else
        {
        
// Cookie中没有用户名、密码,跳转到登录页面
     %>
        
< jsp:forward page = " login.jsp "   />
    
<%
        }
    
%>
  
</ body >
</ html >

login.jsp:

<% @ page contentType = " text/html;charset=GB2312 "   %>
< html >
  
< head >
    
< title > 登录 </ title >
  
</ head >
  
  
< body >
      
< center >
      
< h1 > 登录页面 </ h1 >
      
< hr >
    
< form action = " check.jsp "  method = " post " >
        
< table >
            
< tr >
                
< td > 用户名: </ td >
                
< td >< input type = " text "  name = " username "   /></ td >
            
</ tr >
            
< tr >
                
< td > 密  码: </ td >
                
< td >< input type = " password "  name = " password "   /></ td >
            
</ tr >
            
< tr >
            
< td > Cookie选项: </ td >
            
< td >
                
< input type = " radio "  name = " cookie "  value = " nosave "  checked > 不保存
                
< input type = " radio "  name = " cookie "  value = " save " > 保存1分钟
            
</ td >
            
</ tr >
            
< tr >
                
< td colspan = " 2 "  align = " center " >
                    
< input type = " submit "  value = " 登录 "   />  
                    
< input type = " reset "  value = " 重置 "   />
                
</ td >
            
</ tr >
        
</ table >
    
</ form >
    
</ center >
  
</ body >
</ html >

 

check.jsp:

<% @ page contentType = " text/html;charset=GB2312 "   %>
< html >
  
< head >
    
< title > 验证页面 </ title >
  
</ head >
  
  
< body >
    
<%
        String Username
= request.getParameter( " username " );
        String Password
= request.getParameter( " password " );
        String IsCookie
= request.getParameter( " cookie " );
        
// 判断用户名、密码的合法性
         if ( " magci " .equals(Username)  &&   " 123456 " .equals(Password))
        
// 为了避免空指向异常,比较两个字符串时,如有字符串常量,则使用字符串常量的“equals”方法(即将常量写在前面)。
        {
            
// 合法用户
             if ( " save " .equals(IsCookie))
            {
                
// 如果选择了保存Cookie选项,则保存Cookie
                Cookie c1 = new  Cookie( " username " ,Username);
                Cookie c2
= new  Cookie( " password " ,Password);
                
// 设置Cookie保存时间为1分钟
                c1.setMaxAge( 60 );
                c2.setMaxAge(
60 );
                response.addCookie(c1);
                response.addCookie(c2);
            }
            
// 跳转到欢迎页面
             %>
            
< jsp:forward page = " pass.jsp " />
            
<%
        }
        
else
        {
            
// 非法用户,跳转到登录失败页面
             %>
            
< jsp:forward page = " failure.jsp "   />
            
<%
        }
    
%>
  
</ body >
</ html >


pass.jsp:

<% @page contentType = " text/html;charset=GB2312 "   %>
< center >
    
< h1 > 登录成功 !!</ h1 >
    
< hr >
    
< h3 > 欢迎 < font size = " 12 "  color = " red " >
    
<%-- forward跳转为服务器端跳转,跳转后仍在check.jsp页面,可以继续使用usename参数  --%>
    
<%= request.getParameter( " username " %>
    
</ font > 光临! </ h3 >
</ center >


failure.jsp:

<% @ page contentType = " text/html;charset=GB2312 "   %>
< div align = " center " >
< h1 > 登录失败 !!</ h1 >
< hr >
< a href = " login.jsp " > 重新登录 </ a >
</ div >

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值