• 利用Cookie实现自动登录


    Cookie管理

    Cookie对象是由服务器产生并保存在客户端的信息,常用他记录用户个人信息以及个性化设置。用户每次访问网点时,应用程序就可以检索以前保存的信息
    Cookie对象属于的类是javax.servlet.http.Cookie 他不是JSP的内置对象

    1.Cookie的基本用法
    一般需要两步操作,首先有服务器创建Cookie对象保存在客户端,然后再JSP或Servlet中读取Cookie并进行操作。
    ****
    自动登录过程
    //login.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head> 
        <title>用户登陆界面</title>
      </head>
      
      <body>
        <form action="logincheck.jsp" method="post">
            用户名:<input type="text" name="username"><br>
            
            密&nbsp;&nbsp;码:<input type="password" name="userpwd"/><br>
            <input type="submit" value="登陆">
        </form>
      </body>
    </html>

    //logincheck.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
       <title>登陆处理</title>
    
      </head>
      
      <body>
        <%
            String un=request.getParameter("username"); //获取用户名
            if(un!=null){
                Cookie c=new Cookie("username",un);
                c.setMaxAge(30*24*3600);//设置Cookie有效期为30天
                response.addCookie(c);//将Cookie对象保存在客户端
                session.setAttribute("username",un);//将用户名存到session范围内用于权限检查
                response.sendRedirect("main.jsp");//重定向到主页面
            }
         %>
      </body>
    </html>
    

    //main.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>  
        <title>主页面</title>
      </head>
      
      <body>
        <%
            String username=(String)session.getAttribute("username");
            if(username==null){  //session中用户名为空说明用户没登陆
                Cookie[] cs=request.getCookies();
                String v=null;
                if(cs!=null){
                    for(int i=0;i<cs.length;i++){
                        if(cs[i].getName().equals("username")){  //获取名称为username的Cookie对象值
                            v=cs[i].getValue();
                        }
                    }
                }
                if(cs!=null){       //Cookie值不空,自动登陆成功
                    session.setAttribute("username",v);
                    out.print(v+",您好!");
                }else{  //自动登陆失败,转到登陆界面
                    out.print("您还没有注册,2秒后转到注册界面!");
                    response.setHeader("Refrush","2;url=login.jsp");
                }
            }
            else{  //session中用户名不空说明用户已经登陆
                out.print(username+"您好!");
            }
         %>
      </body>
    </html>
    转载来自:http://www.cnblogs.com/qichunlin/p/7887220.html
  • 相关阅读:
    Md5
    hdu 2569 彼岸
    调用系统相机相冊
    白盒測试
    HDU 1501
    IOS常见错误分析解决(一直更新) 你值得收藏-综合贴
    读“程序猿生存定律”笔记
    Halcon导出的cpp, VC++环境配置
    POJ 1260 Pearls (动规)
    hdoj-1856-More is better【并查集】
  • 原文地址:https://www.cnblogs.com/lls1350767625/p/7967907.html
Copyright © 2020-2023  润新知