controller的代码
@Controller
public class UserController{
@Autowired
private IUserService userService;
/**
* 转入登陆页面
* author: YHR
* @return
*/
@RequestMapping("/tologin")
public String login(HttpServletRequest req,HttpServletResponse resp) {//登录的请求
//需要读取当前硬盘的Cookie信息,如果有则跳过登录。
Cookie[] cs=req.getCookies();//读取当前硬盘的所有cookie
System.out.println(cs.length+"-==-======================");
User user = new User();
for(Cookie c: cs) {
if ("username".equals(c.getName())) {
user.setUsername(c.getValue()); // 得到cookie的用户名
}
if ("password".equals(c.getName())) {
user.setPassword(c.getValue()); // 得到cookie的密码
}
}
if(this.userService.selectByLogin(user) != null){
return "redirect:list.action";
}else{
return "login";
}
}
@RequestMapping("/login")
public String login(User u,HttpSession session,Model model,HttpServletResponse resp,@RequestParam(defaultValue="0") Integer flag) {//登录的处理
User bean= this.userService.selectByLogin(u);
if(bean!=null) {//登录成功,保存到session中
session.setAttribute("logUser", bean);
if(flag == 1) {//判断是否选择了自动登录:记住我
System.out.println(flag);//1
//创建Cookie
Cookie c1=new Cookie("username",bean.getUsername());
Cookie c2=new Cookie("password", bean.getPassword());
Cookie c3=new Cookie("uid",String.valueOf(bean.getId()));
//设置有效期
c1.setMaxAge(60*60);
c2.setMaxAge(60*60);
c3.setMaxAge(60*60);
//保存cookie到客户端
resp.addCookie(c1);
resp.addCookie(c2);
resp.addCookie(c3);
}
return "redirect:list.action";//返回到主页面(tree:权限树)
}else {
model.addAttribute("error", "对不起,登录失败!");
return "login";
}
}
}
当访问登陆页面时,先判断cookie中有没有所要的属性,如果有,直接判断账户密码是否正确,进入主页