반응형
스프링MVC의 핵심개념인 세션 속성에 대해서 알아보자.
- 먼저, 세션 속성이 필요한 이유는?
- 특정 웹 사용자에 대해서 환경설정과 같은 요청 간 변경되지 않는 값들이 존재할 수 있는데, 보통 이런 값은 HTTP 세션에 저장됨.
- 그럼, 스프링MVC에서 세션을 위해 지원하는 어노테이션은 무엇일까?
- 정답
- @SessionAttributes
- 부연설명하자면, 세션에 저장되는 속성을 지정하는 클래스 레벨의 어노테이션임.
- 컨트롤러 메소드가 생성하는 모델 정보 중에서 @SessionAttributes에 지정한 이름과 동일한 이름이 있다면, 이를 세션에 저장해 줌.
- SessionAttributes을 담은 객체는 SessionStatus의 setComplete()를 호출해 주기 전까지는 계속 담겨있음.
- 예시
- @SessionAttributes
- 정답
- 설명
- SessionAttributes 어노테이션을 위와 같이 정의하면,
- 동일한 속성이 Model에 추가되는 경우 세션에 자동으로 추가됨.
- 그럼, 아래에서 세션에 속성을 추가/읽기/삭제에 대해서 자세하게 알아보자.
- SessionAttributes 어노테이션을 위와 같이 정의하면,
우선, 세션에 속성을 추가하는 방법을 알아보자
- 예시
- 설명
- thubUserSessionAttribute의 이름의 속성을 Model에 추가하면, 세션 대화 상태로 자동 저장됨.
그럼, 세션에 속성을 읽는 방법을 알아보자
- 예시
설명
- 위와 같이, @SessionAttributes 어노테이션을 타입 레벨에서 지정하면, 다른 컨트롤러에서 액세스가 가능함.
- 아래와 같이 엑세스 가능함.
- 예시
마지막으로, 세션에 속성을 삭제하는 방법을 알아보자
- 세션에서 값을 제거하는 방법은 아래 2가지가 있다.
- 첫째, removeAttribute 메소드 사용.
- 둘째, cleanUpAttribute 메소드 사용.
첫번째, removeAttribute 메소드 사용 예시
두번째, cleanUpAttribute 메소드 사용 예시
결론
- 스프링MVC에서 세션을 위해 지원하는 @SessionAttributes 어노테이션이 존재함.
- 부연설명하자면, 세션에 저장되는 속성을 지정하는 클래스 레벨의 어노테이션임.
- 세션의 속성을 추가, 읽기, 제거 하는 메소드를 지원함.
- 오늘도 스프링MVC관련 세션속성에 대한 지식 마술(?) 한가지 획득완료! 감사합니다. ^^
300x250
'좋아하는 것_매직IT > 1.spring' 카테고리의 다른 글
17.Spring, 스프링관련 자바 웹어플리케이션 레이어(Layer) 및 전반적인 구성 요소에 대해서 알아보자. (0) | 2021.01.04 |
---|---|
16.Spring, 스프링MVC의 핵심개념 중 컨트롤러 레벨에서 공통적으로 특정로직을 적용하는 방법에 대해서 알아볼께요. (0) | 2021.01.02 |
14.Spring, 스프링MVC의 핵심개념 중 모델속성(ModelAttribute)에 대해서 알아볼께요. (0) | 2021.01.02 |
13.Spring, 스프링MVC의 핵심개념 중 인터셉터(Interceptor)와 핸들러매핑(HandlerMapping)에 대해서 알아볼께요. (0) | 2021.01.02 |
12.Spring, 스프링MVC의 핵심개념 중 뷰(View) 리솔루션 에 대해서 알아볼께요. (0) | 2021.01.02 |