在登录界面上,除了验证码验证,还可以进行自动登录的选取,让用户在某一时间段内,无需登录便可浏览受保护的页面。
自动登录流程
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();
}
}
本文介绍了一种自动登录功能的实现方式,包括用户选择自动登录后的处理流程,服务器端的验证及存储过程。通过创建Cookie和Session对象,使用户在一定时间内无需重复登录。
3825

被折叠的 条评论
为什么被折叠?



