스프링/4. 스프링 MVC-2

52. 스프링 세션 업그레이드

sdafdq 2023. 9. 7. 01:36

살짝. 업그레이드 한다.

 

@GetMapping("/")
public String homeLoginV3Spring(@SessionAttribute(name = SessionConst.LOGIN_MEMBER, required = false) Member loginMember, Model model) {
    if(loginMember == null){
        return "home";
    }
    model.addAttribute("member", loginMember);
    return "loginHome";
}

@SessionAttribute(name = SessionConst.LOGIN_MEMBER, required = false) Member loginMember

이렇게 세션 받을 수 있다.

 

참고로 이거 있으면 받기만 하는거지 생성은 안된다.

 

@SessionAttribute 인자로 name은 key, required는 필수여부이고, Member객체로 받아온다.

 

 

 

 

 

 

근데 좀 거슬리는 게 있다. 그게 뭐냐면 맨 처음 로그인 성공했을 때

이렇게 뜬다.

이게 뭐냐면, 서버입장에서는 처음 쿠키를 보낼 때 클라이언트의 브라우저가 쿠키서비스를 지원하는지 안하는지 모른다.

그래서 jsessionid라고 url을 통해서 세션을 유지시키는 방법도 함께 보내본다. 

만약 쿠키가 지원이 되는 브라우저면 더 이상 서버는 url을 저렇게 안 만든다.

 

근데 저거를 쓸려면 서버 개발자가 저 url을 계속해서 처리를 해줘야 한다.

 

그리고 솔직히 요즘 거의 다 쿠키 쓴다.

 

그래서 저거 뭐랄까 클라이언트 입장에서도 저런 이상한 값 보이면 왠지 부담스럽기도 하기 때문에,

그냥 아예 세션 추적을 cookie로만 할 수 있다.

 

application.properties에 

server.servlet.session.tracking-modes=cookie

이거 추가 시켜주면 서버는 서버의 세션 추적을 쿠키로만 한다.

 

 

 

 

'스프링 > 4. 스프링 MVC-2' 카테고리의 다른 글

54. 필터, 인터셉터  (0) 2023.09.08
53. 세션 정보 확인과 타임아웃 설정  (0) 2023.09.07
51. 스프링의 Http 세션  (0) 2023.09.07
50. 서버세션 적용  (0) 2023.09.06
49. 서버세션 구현  (0) 2023.09.06