Spring Boot - HttpSession 사용하기
목차 Spring Boot - HttpSession 사용하기 Spring Boot - 직접 Session Storage 구현하기 Spring Boot - Cookie 사용하기 Spring boot Session 사용하기 2 request.getSession(true) HttpSession 이 존재하면 HttpSession 을 반환하고 존재하지 않으면 새로운 Session 을 반환한다. request.getSession(false) HttpSession 이 존재하면 현재 HttpSession 을 반한하고 존재하지 않으면 null 을 반환한다. @PostMapping("/login")public String loginV3(@Valid @ModelAttribute LoginForm form, BindingResult bindingResult, HttpServletRequest request){ log.info("Request Params : {}", form); if(bindingResult.hasErrors()){ return "login/loginForm"; } Member loginMember = loginService.login(form.getLoginId(), form.getPassword()); if(loginMember == null){ bindingResult.reject("loginFail", "아이디 또는 비밀번호가 맞지 않습니다."); return "login/loginForm"; } // 로그인 설공 처리 TODO // 세션이 있으면 있는 세션 반환, 없으면 신규 세션을 생성 HttpSession session = request.getSession(); // 세션에 로그인 회원 정보를 보관 session.setAttribute(SessionConst.LOGIN_MEMBER, loginMember); return "redirect:/";} @PostMapping("/logout")public String logoutV3(HttpServletRequest request){ HttpSession session = request.getSession(false); if(session != null){ session.invalidate(); } return "redirect:/";} @GetMapping("/")public String homeLoginV3(HttpServletRequest request, Model model){ HttpSession session = request.getSession(false); if(session == null){ return "home"; } Member LoginMember = (Member) session.getAttribute(SessionConst.LOGIN_MEMBER); // 세션에 회원 데이터가 없으면 home if(LoginMember == null){ return "home"; } // 세션이 유지되 로그인으로 이동 model.addAttribute("member", LoginMember); return "loginHome";} 스프링에서 지원하는 Session 기능 사용하기@GetMapping("/")public String homeLoginV3Spring( @SessionAttribute(name = SessionConst.LOGIN_MEMBER, required = false) Member loginMember, Model model){ // 세션에 회원 데이터가 없으면 home if(loginMember == null){ return "home"; } // 세션이 유지되 로그인으로 이동 model.addAttribute("member", loginMember); return "loginHome";}