1、创建一个登录的UserController类,在类中创建登录的方法,在方法中添加cookie
@Autowired
@Qualifier("UserServiceImpl")
private UserService userService;
@RequestMapping("/login")
public String loginUser(HttpServletRequest request, HttpServletResponse response, Model model) throws UnsupportedEncodingException {
System.out.println("login ============ " );
//获取用户名和密码
String username = request.getParameter("username");
String password = request.getParameter("password");
//添加 Cookie
userService.addCookie(username,password,response,request);
System.out.println("用户名:"+username);
System.out.println("密码:"+password);
//调用service方法,进行用户匹配
User user = userService.loinUser(username, password);
//登录成功
if(null != user){
//放入session
request.getSession().setAttribute(Constants.USER_SESSION, user);
//页面跳转
return "index";
}else{
//页面跳转(login.jsp)带出提示信息--转发
//request.setAttribute("error", "用户名或密码不正确");
//request.getRequestDispatcher("login.jsp").forward(request, response);
model.addAttribute("error","用户名或密码不正确");
return "error";
}
}
2、在UserService的实现类UserServiceImpl中创建添加cookie的方法
@Override
public void addCookie(String username, String password, HttpServletResponse response, HttpServletRequest request) {
if(!username.equals("") && !password.equals("")){
//创建 Cookie
Cookie loginAccountCookie = new Cookie("username",username);
Cookie loginPasswordCookie = new Cookie("password",password);
//设置Cookie的父路经
loginAccountCookie.setPath(request.getContextPath()+"/");
loginPasswordCookie.setPath(request.getContextPath()+"/");
//获取是否保存Cookie(例如:复选框的值)
String rememberMe = request.getParameter("rememberMe");
//if( rememberMe==null || rememberMe.equals(false) ){
if( rememberMe==null){
//不保存Cookie
loginAccountCookie.setMaxAge(0);
loginPasswordCookie.setMaxAge(0);
}else{
//保存Cookie的时间长度,单位为秒
loginAccountCookie.setMaxAge(7*24*60*60);
loginPasswordCookie.setMaxAge(7*24*60*60);
}
//加入Cookie到响应头
response.addCookie(loginAccountCookie);
response.addCookie(loginPasswordCookie);
}
}
3、获取cookie
@RequestMapping(value="/getCookie")
@ResponseBody
public String getCookie(HttpServletRequest request)throws IOException {
Cookie[] cookies = request.getCookies();
//自己定义的javabean Cookies
Cookies cookies1 = new Cookies();
for(Cookie cookie :cookies ){
//System.out.println(c.getName()+"--->"+c.getValue());
//此处类似与Map有
if("username".equals(cookie.getName())){
cookies1.setLoginAccount(cookie.getValue());
}
if("password".equals(cookie.getName())){
cookies1.setLoginPassword(cookie.getValue());
}
}
Gson gson = new Gson();
System.out.println("nnnn:"+cookies1.getLoginAccount());
ModelMap modelMap = new ModelMap();
modelMap.put("username",cookies1.getLoginAccount());
modelMap.put("password",cookies1.getLoginPassword());
System.out.println("ggggg:"+gson.toJson(modelMap));
return gson.toJson(modelMap);
}