[Servlet组件]登录界面-下次自动登录

本文介绍了一种自动登录功能的实现方式,包括用户选择自动登录后的处理流程,服务器端的验证及存储过程。通过创建Cookie和Session对象,使用户在一定时间内无需重复登录。

        在登录界面上,除了验证码验证,还可以进行自动登录的选取,让用户在某一时间段内,无需登录便可浏览受保护的页面。

自动登录流程

1)用户在登录界面输入验证码,账号密码,点击自动登录

2)当服务器接收到表单数据之后,进行判断验证码是否正确,账号密码是否正确,当两者都正确时,才能使用自动登录的功能

3)服务器获取到用户对象,创建一个Cookie对象,将信息存入,并将用户对象绑定在session对象当中。

自动登录按钮 

<input type="checkbox" name="auto_login" value="0">下次自动登录

 用户点击提交表单,在验证账号和密码正确性之后,就进行自动登录的绑定操作

//验证码验证
//账号和密码
User user = dao.findByName(username);

//自动登录-->需要用户对象
    //创建一个session对象
    HttpSession session = request.getSession();
    //创建一个Cookie来存储sessionId
    CookUtil.addCookie("user","username",60,response);
    //session调用setAttribute,将生成的对象绑定在session对象上,在服务器端进行存储
    session.setAttribute("user",user);

后期再进行登录,在一段时间内,不需要登录就可以访问受保护页面了。

附:CookieUtil.java

public class CookieUtil{
    private static final String path = "cookiePath";

    //1)增加Cookie
    public static Cookie addCookie
                    (String name, String value, int age, HttpServletResponse response){
    
        Cookie c = new Cookie(name,value);
        c.setMaxAge(age);
        c.setPath(path);
        response.addCookie(c);
    }

    //2)获取Cookie
    public static String getCookie(String name, HttpServletRequest request){
        String value = null;
        Cookie[] cs = request.getCookies();
        for(Cookie c:cs){
            if(c.getName().equals(name)){
                value = c.getValue();
            }
        }
        return value;
    }


    //3)删除Cookie
    public static void delCookie(String name, HttpServletResponse response){
        Cookie c = new Cookie(name,"");
        c.setMaxAge(0);
        response.addCookie();
    }
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值