인프런 영한님의 스프링mvc2편을 보고 정리한 글입니다.
무엇을 배웠나요?
- 서블릿은 세션을 위해 HttpSession이라는 기능을 제공한다.
- 서블릿을 통해 HttpSession을 생성하면 JESESSIONID이라는 추정 불가능 한 랜덤값을 지니는 쿠키를 생성한다.
- 세션을 생성하려면 request.getSession을 사용하면 된다.
- ex) public HttpSession getSession(boolean create)
- getSession의 인자에 대해서
- 만약 true일때는 세션이 있으면 기존 세션을 반환하고 세션이 없다면 새로운 세션을 생성해서 반환한다. 기본값은 true이다.
- 만약 false인 경우에는 세션이 있으면 기존 세션을 반환하고 없다면 새로운세션을 생성하지 않는 대신에 null을 반환한다.
- 세션에 데이터를 보관하는 방법은 session.setAttribute(SessionConst.LOGIN_MEMBER, loginMember) 을 하면 된다.
- 하나의 세션에 여러 값을 저장할 수 있다.
- 세션을 제거하려면 다음 기능을 사용하면 된다 → session.invalidate()
- 세션의 존재여부에 대해서 확인 하려고 하는 경우에는 request.getSession(false)를 사용하면 의미없는 세션이 생성되는 것을 막을 수 있다.
- session.getAttribute() 을 이용해서 로그인 시점에 세션에 보관한 회원 객체를 찾는다.
- 추가로 하나의 세션에 여러 값을 저장할 수 있다.
코드
//세션이 없으면 home
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";
'Spring' 카테고리의 다른 글
로그인 처리1 - 쿠키, 세션 : 로그인 처리하기 -세션 정보와 타임아웃 설정 (0) | 2022.09.12 |
---|---|
로그인 처리1 - 쿠키, 세션 : 로그인 처리하기 - 서블릿 HTTP 세션2 (0) | 2022.09.12 |
로그인 처리1 - 쿠키, 세션 : 로그인 처리하기 - 세션 직접 만들기 (0) | 2022.09.12 |
로그인 처리1 - 쿠키, 세션 : 로그인 처리하기 세션 - 동작 방식 (0) | 2022.09.12 |
로그인 처리1 - 쿠키, 세션 : 쿠키와 보안문제 (0) | 2022.09.12 |