JSP的Cookie在登录中的应用

一 功能需求
实现记忆用户名和密码功能。
 
二 代码
1、login.jsp
<%@  page  language = "java"  import = "java.util.*, java.net .*"  contentType = "text/html; charset=utf-8" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+ "://" +request.getServerName()+ ":" +request.getServerPort()+path+ "/" ;
%>
 
<! DOCTYPE  HTML  PUBLIC  "-//W3C//DTD HTML 4.01 Transitional//EN">
< html >
   < head >
     < base  href = " <%= basePath %> " >
   
     < title > My JSP 'index.jsp' starting page </ title >
         < meta  http-equiv = "pragma"  content = "no-cache" >
         < meta  http-equiv = "cache-control"  content = "no-cache" >
         < meta  http-equiv = "expires"  content = "0" >    
         < meta  http-equiv = "keywords"  content = "keyword1,keyword2,keyword3" >
         < meta  http-equiv = "description"  content = "This is my page" >
         <!--
        <link  rel =" stylesheet " type="text/ css "  href ="styles.css">
        -->
   </ head >
 
   < body >
     < h1 > 用户登录 </ h1 >
     < hr >
     <%
      request.setCharacterEncoding( "utf-8" );
      String username= "" ;
      String password =  "" ;
      Cookie[] cookies = request.getCookies();
       if (cookies!= null &&cookies.length>0)
      {
            for (Cookie c:cookies)
           {
               if (c.getName().equals( "username" ))
              {
                   username =  URLDecoder.decode(c.getValue(), "utf-8" );
              }
               if (c.getName().equals( "password" ))
              {
                   password =  URLDecoder.decode(c.getValue(), "utf-8" );
              }
           }
      }
     %>
     < form  name = "loginForm"  action = "dologin.jsp"  method = "post" >
        < table >
          < tr >
            < td > 用户名: </ td >
            < td >< input  type = "text"  name = "username"  value = " <%= username  %> " /></ td >
          </ tr >
          < tr >
            < td > 密码: </ td >
            < td >< input  type = "password"  name = "password"  value = " <%= password  %> "  /></ td >
          </ tr >
          < tr >
            < td  colspan = "2" >< input  type = "checkbox"  name = "isUseCookie"  checked = "checked" /> 十天内记住我的登录状态 </ td >
          </ tr >
          < tr >
            < td  colspan = "2"  align = "center" >< input  type = "submit"  value = "登录" />< input  type = "reset"  value = "取消" /></ td >
          </ tr >
        </ table >
     </ form >
   </ body >
</ html >
2、dologin.jsp
<%@   page   language = "java"   import = "java.util.*, java.net .*"   contentType = "text/html; charset=utf-8" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+ "://" +request.getServerName()+ ":" +request.getServerPort()+path+ "/" ;
%>
 
<! DOCTYPE  HTML  PUBLIC  "-//W3C//DTD HTML 4.01 Transitional//EN">
< html >
   < head >
     < base  href = " <%= basePath %> " >
   
     < title > My JSP 'dologin.jsp' starting page </ title >
   
         < meta  http-equiv = "pragma"  content = "no-cache" >
         < meta  http-equiv = "cache-control"  content = "no-cache" >
         < meta  http-equiv = "expires"  content = "0" >    
         < meta  http-equiv = "keywords"  content = "keyword1,keyword2,keyword3" >
         < meta  http-equiv = "description"  content = "This is my page" >
         <!--
        <link  rel =" stylesheet " type="text/ css "  href ="styles.css">
        -->
 
   </ head >
 
   < body >
     < h1 > 登录成功 </ h1 >
     < hr >
     < br >
     < br >
     < br >
     <%
       request.setCharacterEncoding( "utf-8" );
        //首先判断用户是否选择了记住登录状态
       String[] isUseCookies = request.getParameterValues( "isUseCookie" );
        if (isUseCookies!= null &&isUseCookies.length>0)
       {
           //把用户名和密码保存在Cookie对象里面
          String username = URLEncoder.encode(request.getParameter( "username" ), "utf-8" );
           //使用URLEncoder解决无法在Cookie当中保存中文字符串问题
          String password = URLEncoder.encode(request.getParameter( "password" ), "utf-8" );
         
          Cookie usernameCookie =  new  Cookie( "username" ,username);
          Cookie passwordCookie =  new  Cookie( "password" ,password);
          usernameCookie.setMaxAge(864000);
          passwordCookie.setMaxAge(864000); //设置最大生存期限为10天
          response.addCookie(usernameCookie);
          response.addCookie(passwordCookie);
       }
        else
       {
          Cookie[] cookies = request.getCookies();
           if (cookies!= null &&cookies.length>0)
          {
              for (Cookie c:cookies)
             {
                 if (c.getName().equals( "username" )||c.getName().equals( "password" ))
                {
                    c.setMaxAge(0);  //设置Cookie失效
                    response.addCookie(c);  //重新保存。
                }
             }
          }
       }
     %>
     < a  href = "users.jsp"  target = "_blank" > 查看用户信息 </ a >
   
   </ body >
 
</ html >
3、users.jsp
<%@  page  language = "java"  import = "java.util.*, java.net .*"  contentType = "text/html; charset=utf-8" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+ "://" +request.getServerName()+ ":" +request.getServerPort()+path+ "/" ;
%>
 
<! DOCTYPE  HTML  PUBLIC  "-//W3C//DTD HTML 4.01 Transitional//EN">
< html >
   < head >
     < base  href = " <%= basePath %> " >
   
     < title > My JSP 'users.jsp' starting page </ title >
   
         < meta  http-equiv = "pragma"  content = "no-cache" >
         < meta  http-equiv = "cache-control"  content = "no-cache" >
         < meta  http-equiv = "expires"  content = "0" >    
         < meta  http-equiv = "keywords"  content = "keyword1,keyword2,keyword3" >
         < meta  http-equiv = "description"  content = "This is my page" >
         <!--
        <link  rel =" stylesheet " type="text/ css "  href ="styles.css">
        -->
 
   </ head >
 
   < body >
     < h1 > 用户信息 </ h1 >
     < hr >
     <%
      request.setCharacterEncoding( "utf-8" );
      String username= "" ;
      String password =  "" ;
      Cookie[] cookies = request.getCookies();
       if (cookies!= null &&cookies.length>0)
      {
            for (Cookie c:cookies)
           {
               if (c.getName().equals( "username" ))
              {
                   username = URLDecoder.decode(c.getValue(), "utf-8" );
              }
               if (c.getName().equals( "password" ))
              {
                   password = URLDecoder.decode(c.getValue(), "utf-8" );
              }
           }
      }
     %>
     < BR >
     < BR >
     < BR >
         用户名: <%= username  %> < br >
         密码: <%= password  %> < br >
   </ body >
</ html >
 
三 测试


 
  • 大小: 30.7 KB
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值