일단 테스트 이긴 한데, 세션에 값을 저장 할 때, Java에서 아래 처럼 사용할 수 있었다.

 

HttpSession httpSession = request.getSession(true);
httpSession.setAttribute("MEMBER", memberDetail);

 

근데, @Scope 으로도 다른 방식으로 session 에 값을 저장할 수 있음.

 

1. Session Entity? 만들기

@Component
@Scope(value = WebApplicationContext.SCOPE_SESSION, proxyMode = ScopedProxyMode.TARGET_CLASS)
public class MemberSession extends MemberVO{

}

 

2. Controller에 1번꺼 주입하기

@Autowired
private MemberSession memberSession;

 

3. Controller 메소드에서 session값 셋팅해주기

memberSession.setEmail(memberDetail.getEmail());

 

4. session에 저장한 값 가져오는 법:

 

@GetMapping("/logout")
public ModelAndView logoutAction(HttpServletRequest request, HttpSession session) {

MemberSession memberSession = (MemberSession) session.getAttribute("scopedTarget.memberSession");

 

:: scopedTarget.클래스명 이런식으로 가져와서 쓰는거인듯하다.

 

5. jsp 에서 session 값 확인하기

${sessionScope['scopedTarget.session'.memberSession]} 요런식

 

+ Recent posts