본문 바로가기
Framework & Library/Spring Boot

[Spring Boot] : 서블릿 HTTP 세션을 활용해 로그인 처리하기(1)

by 오주현 2022. 2. 22.
반응형

세션은 대부분 웹 애플리케이션에 필요한 개념이다. 서블릿은 세션을 위해 HttpSession이라는 기능을 제공하고 우리가 직접 구현한 것 보다 더 잘 구현되어 있다.

 

| HttpSession 소개

서블릿이 제공하는 HttpSession도 강의에서 만들어 본 SessionManager와 같은 방식으로 동작한다. 서블릿을 통해 HttpSession을 생성하면 쿠키의 이름이 JSESSIONID이고 값은 UUID와 같은 값을 생성하게 된다.

 

public static final String LOGIN_MEMBER = "loginMember";

데이터를 보관하고 조회할 때 중복 사용되므로 상수 하나를 정의했다.

 

//세션이 있으면 있는 세션 반환, 없으면 신규 세션 생성
 HttpSession session = request.getSession();

 //세션에 로그인 회원 정보 보관
 session.setAttribute(SessionConst.LOGIN_MEMBER, loginMember);

 return "redirect:/";

세션을 생성하려면 request.getSession(true)를 사용하면 되는데 true가 디폴트 값이기 때문에 따로 적어주지 않아도 된다.

 

true값을 넣으면 세션이 있을 때 세션을 반환하고 세션이 없을 때 생성해서 반환한다.

 

false값을 넣으면 세션이 있으면 기존 세션을 반환하고 세션이 없으면 세로운 세션을 생성하지 않고 null을 반환한다.

 

request.getSession()은 신규 세션을 생성하는 request.getSession(true)와 동일하다.

 

HttpSession session = request.getSession(false);
 if (session != null) {
 session.invalidate();
 }

이번에는 세션을 삭제하는 방법이다.

 

session.invalidate()를 통해 세션을 제거할 수 있다.

 

이렇게 실행하면서 체크해 봐야 하는 부분이 있다. JESSIONID 쿠키가 정상적으로 생성하는 것을 확인할 수 있다.


스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 참고하여 공부하였습니다.

반응형

댓글