살짝. 업그레이드 한다.
@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 |