加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 教程 > 正文

在JSP中实现网站自动登录

发布时间:2023-08-01 15:07:43 所属栏目:教程 来源:
导读:登陆的时候一旦选择了[自动登录]的选项,则需要在登陆成功后,附加下面的代码应为一般网站都提供保存用户名的功能,所以我把这个写到了外面。只有密码是单独处理的。 其中的host就是你的域名。 第一步,编写login.
登陆的时候一旦选择了[自动登录]的选项,则需要在登陆成功后,附加下面的代码应为一般网站都提供保存用户名的功能,所以我把这个写到了外面。只有密码是单独处理的。   其中的host就是你的域名。 第一步,编写login.jsp文件,内容如下:
 
 String host = request.getServerName();   
 
 Cookie cookie = new Cookie("SESSION_LOGIN_USERNAME", username); // 保存用户名到Cookie   
 
 cookie.setPath("/");   
 
 cookie.setDomain(host);   
 
 cookie.setMaxAge(99999999);   
 
 response.addCookie(cookie);   
 
 if (ParamUtils.getBooleanParameter(request, "savePassword")) {   
 
          // 保存密码到Cookie,注意需要加密一下   
 
          cookie = new Cookie("SESSION_LOGIN_PASSWORD", MD5.encode(u.getPassword()));    
 
          cookie.setPath("/");   
 
          cookie.setDomain(host);   
 
          cookie.setMaxAge(99999999);   
 
          response.addCookie(cookie);   
 
 }   

这样,Cookie就生成了第二步,在用户访问网站的时候,如果检测到没有登陆,则进行下面的判断,例如编写一个index.jsp,内容如下:
 
    String usernameCookie = null;   
 
    String passwordCookie = null;   
 
    Cookie[] cookies = request.getCookies();   
 
    if (cookies != null) {   
 
      for (Cookie cookie : cookies) {   
 
        if ("SESSION_LOGIN_USERNAME".equals(cookie.getName())) {   
 
          usernameCookie = cookie.getValue(); // 得到cookie的用户名   
 
        }   
 
        if ("SESSION_LOGIN_PASSWORD".equals(cookie.getName())) {   
 
          passwordCookie = cookie.getValue(); // 得到cookie的密码   
 
        }   
 
      }   
 
      if (usernameCookie != null && passwordCookie != null) { // 如果存在   
 
        if(Login.checkLogin(usernameCookie ,passwordCookie)){   
 
          // 登陆成功的处理   
 
        }else{   
 
           // 登陆不成功的处理   
 
        }   
 
      }   
 
    }   
 
  
 
这部份代码可以写到action或servlet中。最后一个注意事项,应该在退出登录里面清除cookie,以免他无法换账号登陆了!
 
logout.jsp内容如下:
 
cookie = new Cookie("SESSION_LOGIN_PASSWORD", "");   
 
cookie.setPath("/");   
 
cookie.setMaxAge(99999999);   
 
cookie.setDomain(host);   
 
response.addCookie(cookie);
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!