1. 前台jsp
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
<script type="text/javascript">
$(function() {
//进入页面先判断有没有勾选按钮
if('${cookie.flag.value}'=='true'){
//获取cookie中的账号和密码
$("[name=name]").val('${cookie.username.value}');
$("[name=password]").val('${cookie.password.value}');
//给登录设置点击事件
$("#login").trigger("click");
}
})
</script>
</head>
<body>
<form action="login" method="post">
<input name="name"><br>
<input name="password"><br>
<input type="checkbox" name="flag">免登陆<br>
<input type="submit" value="登录" id="login">
</form>
</body>
2. controller层登录方法
@RequestMapping("login")
public String login(User user,boolean flag,HttpServletRequest request,HttpServletResponse response) {
User u = userservice.login(user);
//把登录信息放到session作用于,用于拦截器
request.getSession().setAttribute("u", u);
//判断有没有勾选按钮
if(flag) {
//获取传过来的账号和密码
Cookie username=new Cookie("username",user.getName());
//设置时间(秒*时*天)
username.setMaxAge(3600*24*7);
//把cookie放到浏览器
response.addCookie(username);
//同上
Cookie password=new Cookie("password",user.getPassword());
password.setMaxAge(3600*24*7);
response.addCookie(password);
Cookie flagg= new Cookie("flag", flag+"");
flagg.setMaxAge(3600*24*7);
response.addCookie(flagg);
}
return "redirect:list";
}
**注销**
注销就是清除session和cookie信息
@RequestMapping("exi") //注销的方法
public String exi(HttpServletRequest request,HttpServletResponse response) {
request.getSession().removeAttribute("u"); //先清楚session中的信息
Cookie[] cookies = request.getCookies(); //获取cookie的信息
for (Cookie cookie : cookies) {
cookie.setMaxAge(0); //设置cookie的过期时间为0 马上过期
cookie.setPath("/"); //设置cookie路径
response.addCookie(cookie); //重新放到浏览器
}
return "redirect:login"; //重定向登录方法然后被拦截
}