ssm中利用cookie免密登录、获取上次登录时间
作者:互联网
获取登录cookie,cookie未加密。
public String login(Model model, User user, HttpServletRequest request, HttpServletResponse response){
//先需要的账号密码赋值为空
String loginName ="";
String password ="";
String lastLoginTime="";
User userLogin;
//获取所有cookie值
Cookie[] cookies = request.getCookies();
//如果有cookie那么就取出里面账号密码的值、赋值给变量
if(cookies != null && cookies.length != 0 ){
for (Cookie cookie : cookies){
if(cookie.getName().equals("loginName")){
loginName = cookie.getValue();
}
if(cookie.getName().equals("password")){
password = cookie.getValue();
}
if(cookie.getName().equals("lastLoginTime")){
lastLoginTime = cookie.getValue();
}
}
}
//获取上次登录时间的cookie、有的读取不到的加上setpath(“/”)
if(lastLoginTime.equals("")){
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
lastLoginTime= URLEncoder.encode(df.format(new Date()));
Cookie cookie = new Cookie("lastLoginTime", lastLoginTime);
cookie.setMaxAge(1000*60);
//cookie.setPath("/");
response.addCookie(cookie);
model.addAttribute("lastLoginTime","欢迎您首次登录");
}else{
lastLoginTime= URLDecoder.decode(lastLoginTime);
model.addAttribute("lastLoginTime","您上次登陆的时间是:"+ lastLoginTime);
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
lastLoginTime= URLEncoder.encode(df.format(new Date()));
Cookie cookie = new Cookie("lastLoginTime", lastLoginTime);
cookie.setMaxAge(1000*60);
cookie.setPath("/");
response.addCookie(cookie);
}
//判断cookie有没有值,如果有那么就用cookie的值进行赋值给user,如果没有就获取页面上的值判断能不能登录如果能
if(!"".equals(loginName) && !"".equals(password) ){
user.setLoginName(loginName);
user.setPassword(password);
}
//通过用户名寻找用户比对,用户名不允许重复
userLogin= userService.selectUserByLoginName(user.getLoginName());
if(userLogin==null){
model.addAttribute("msg","登录失败,没有该账号!");
return "system/register";
}else if(userLogin.getStatus().equals("0")){
model.addAttribute("msg","用户状态为失效状态,禁止登录!请联系管理员");
return "system/register";
}else if(userLogin.getPassword().equals(userLogin.getPassword())){
Cookie cookie1 = new Cookie("loginName",userLogin.getLoginName());
cookie1.setMaxAge(1000*60);
//cookie1.setPath("/");
response.addCookie(cookie1);
Cookie cookie2 = new Cookie("password",user.getPassword());
cookie1.setMaxAge(1000*60);
//cookie1.setPath("/");
response.addCookie(cookie2);
/*将用户信息放入session*/
request.getSession().setAttribute("userInfo",userLogin);
//获取sessionid
String sessionId=request.getSession().getId();
model.addAttribute("sessionId",sessionId);
return "forward:/user/main";
}
return "system/register";
}
页面端:
//页面获得cookie值如果包含登陆值直接后台判断
$(function () {
var cookies = document.cookie;
if(cookies.concat(“loginName”) && cookies.concat(“password”)){
location.href ="<%=path%>/user/login";
}
});
标签:免密,登录,userLogin,equals,new,ssm,cookie,Cookie,lastLoginTime 来源: https://blog.csdn.net/zone_0_1/article/details/90690477