java中关于request.getSession()的几种获取方式
request.getSession()
这是常用的方式,从当前request中获取session,如果获取不到session,则会自动创建一个session,并返回新创建的session;如果获取到,则返回获取到的session;
@Autowired //自动加载业务层接口private UsersService usersService;/*** 用户登录** @param request* @param users* @return*/@PostMapping("/login")public R<Users> login(HttpServletRequest request, @RequestBody Users users) {//1.将页面提交的密码password进行md5加密处理String password = users.getPassword();password = Sha256Util.sha256(password);//sha256加密// password = DigestUtils.md5DigestAsHex(password.getBytes());//md5加密//2.根据页面提交的用户名userName查询数据库LambdaQueryWrapper<Users> lqw = new LambdaQueryWrapper<>(); //条件对象lqw.eq(Users::getUserId, users.getUserId()); //判断数据库里是否有相同的用户名Users res = usersService.getOne(lqw); //查询一条记录//3.如果没有查询到则返回登录失败结果if (res == null) {return R.error("用户名不存在");}//4.密码比对,如果不一致则返回登录失败结构if (!res.getPassword().equals(password)) {return R.error("密码不正确");}//5.查看员工状态,如果为已禁用,则返回用户禁用信息if (res.getIsuse() == 1) {return R.error("账号已经被禁用");}//6.登录成功,将员工id存入Session并返回登录成功结果request.getSession().setAttribute("users", res.getId());return R.success(res);}
