Session 심화
@SessionAttribute라는 어노테이션을 사용하여 데이터를 받아온다.
public String homeV2(
// Session이 필수값은 아니다. 로그인 했거나 안했거나 판별해야하니 required false
@SessionAttribute(name = Const.LOGIN_USER, required = false) UserResponseDto loginUser,
Model model
) {
// session에 loginUser가 없으면 Login 페이지로 이동
if (loginUser == null) {
return "session-login";
}
// Session이 정상적으로 조회되면 로그인된것으로 간주
model.addAttribute("loginUser", loginUser);
// home 화면으로 이동
return "session-home";
}
파라미터에 있는 값을 보면 전 포스트에 인터페이스 형태로 상수로 남겨 놓았던 유저의 값과 비교하여 같은 값을 받아오게 된다.
url에 보면 JSESSION이 쿼리 형태로 url의 뒤에 붙어서 나온다.
이 부분을 없애기 위해서는 properties 확인이 필요하다
server.servlet.session.tracking-modes=cookie
프로퍼티 내에 쿠키에서 세션을 받아온다고 설정을 해주면 해당 내용이 URL에서 보이지 않게 된다.