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" >
        
   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" >
        
 
   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" >
        
 
   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 >
 
三 测试

JSP的Cookie在登录中的应用_第1张图片
 
  • JSP的Cookie在登录中的应用_第2张图片
  • 大小: 30.7 KB
  • 查看图片附件

你可能感兴趣的:(JSP,Cookie)