request.getSession().setAttribute("check", 1);
时间: 2024-03-19 21:42:08 浏览: 12
这是一个 Java Web 中设置 Session 属性的代码。其中 `request` 是一个 HttpServletRequest 对象,`getSession()` 方法返回当前请求的 Session 对象,`setAttribute()` 方法用于设置 Session 属性,将名为 "check" 的属性的值设置为 1。这样,在后续的请求中,可以通过 `request.getSession().getAttribute("check")` 方法来获取该属性的值。
相关问题
request.setAttribute("username", username); request.setAttribute("check", 1); request.getSession().setAttribute("username", username); request.getSession().setAttribute("check", 1); response.setContentType("text/html;charset=UTF-8"); PrintWriter out=response.getWriter(); out.println("<script>alert('LoginSucceed');window.location.href='welcome.jsp'</script>");
这段代码是用 Java Servlet 实现用户登录功能的代码。在用户成功登录后,代码将用户的用户名和登录状态存储在 request 和 session 中,并且通过 response 对象的 writer 输出一段 JavaScript 代码,弹出一个提示框提示用户登录成功,并且重定向到 welcome.jsp 页面。
具体来说,第一行代码将用户名存储在 request 中,第二行代码将登录状态存储在 request 中,第三行代码将用户名存储在 session 中,第四行代码将登录状态存储在 session 中,第五行代码设置响应的内容类型为 text/html;charset=UTF-8,第六行代码获取 response 对象的 writer,第七行代码输出一段 JavaScript 代码,提示用户登录成功并且重定向到 welcome.jsp 页面。
@RestController public class LoginController { @Resource(name = "userServiceImpl") private IUserService userService; @RequestMapping(value = "/login/login", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) public Result<User> login(HttpRequest request, HttpServletResponse response) { return userService.login(request, response); } @RequestMapping(value = "/login/check", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) public Result<User> check(HttpServletRequest request, HttpServletResponse response) { Result<User> result = new Result<>(); String userId = SessionContext.get("user_id"); if (StringUtils.isEmpty(userId)) { Cookie loginTypeCookie = new Cookie("login_type", "0"); loginTypeCookie.setPath("/"); loginTypeCookie.setSecure(true); response.addCookie(loginTypeCookie); result.set("login_type", 0); } else { Cookie loginTypeCookie = new Cookie("login_type", "1"); loginTypeCookie.setPath("/"); loginTypeCookie.setSecure(true); response.addCookie(loginTypeCookie); result.set("login_type", 1); result.set("user_id", SessionContext.get("user_id")); result.set("user_name", SessionContext.get("user_name")); result.set("login_name", SessionContext.get("login_name")); result.set("user_image_id", SessionContext.get("user_image_id")); result.set("role_type", SessionContext.get("role_type")); // 检查token 是否需要更新 HttpSession session = request.getSession(false); if(session != null){ // 更新 session String issueAtStr = SessionContext.get("issueAt"); if(StringUtils.isNotEmpty(issueAtStr)){ Date issueAt = DateUtils.stringToDate(issueAtStr, DateConst.DATE_TIME_FORMAT_YYYY_MM_DD_HH_MI_SS_SSS); if(issueAt != null && TokenUtils.shouldTokenRefresh(issueAt)){ Map<String, Object> claims = new HashMap<>(10); claims.put("user_id", String.valueOf(SessionContext.getInt("user_id"))); claims.put("user_name", SessionContext.get("user_name")); claims.put("login_name", SessionContext.get("login_name")); claims.put("user_image_id", SessionContext.get("user_image_id")); claims.put("role_type", String.valueOf(SessionContext.getInt("role_type"))); String token = TokenUtils.createToken(claims); session.setAttribute("token", token); result.set("token", token); Cookie tokenCookie = new Cookie("token", token); tokenCookie.setPath("/"); response.addCookie(tokenCookie); } } } } return result; } @RequestMapping(value = "/login/exit", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) public Result<User> exit(HttpRequest request) { HttpSession session = request.getSession(false); if (session != null) { session.invalidate(); } return new Result<>(); } }
){ // 计算过期时间,过期时间不足半小时 更新 token long expireTime = issueAt.getTime() + (30 * 60 * 1000); // 过期时间为发放时间+30分钟 if(System.currentTimeMillis() >= expireTime){ // 需要更新 token String token = JWTUtils.createToken(SessionContext.get("user_id")); session.setAttribute("token", token); result.set("token", token); } } } } } return result; } }
请问这段代码实现了什么功能?