티스토리 뷰

Java/Spring

<Spring> @SessionAttribute 이란?

면목동인간 2024. 7. 25. 20:29

@SessionAttribute이란?

 @SessionAttribute은 세션을 편리하게 사용할 수 있도록 스프링에서 지원하는 어노테이션이다.

 

@SessionAttribute 속성 값

  • name: 기본 값은 빈 문자열이며, 세션에 저장된 값을 불러온다. ex) name="login" 으로 지정하면 세션에 저장된 key 값인 login의 value 값을 불러온다.
  • required: 기본 값은 true이며, 만약 true일 경우 무조건 세션에 저장된 값을 불러온다. 만약 세션이 없을 경우 예외가 발생한다. 만약 false로 변경할 경우 세션 값이 없으면 null로 반환된다.

예제

@SessionAttribute 적용 X

@GetMapping("/")
public String sessionUnAnnotation(HttpServletRequest request) {

    HttpSession session = request.getSession(false);
    String sessionValue = String.valueOf(session.getAttribute("test"));

    if (session == null || sessionValue == null) {
        return "loginPage";
    }

    return "home";
}

 

@SessionAttribute 적용 O

@GetMapping("/")
public String sessionAnnotation(@SessionAttribute(name = "test", required = false) String sessionValue) {

    if (sessionValue == null) {
        return "loginPage";
    }

    return "home";
}

 

정리

 어노테이션을 적용하기 전 코드에서는 request를 받고, request에서 session 값을 찾고 그 session에서 저장 된 값을 찾았는데 @SessionAttribute 어노테이션을 사용하면 세션에 저장된 값을 쉽게 찾을 수 있다.

 


본 포스팅은 “스프링 MVC 2편 - 백엔드 웹 개발 활용 기술/인프런”를 학습한 내용을 정리한 것

댓글
최근에 올라온 글
«   2026/03   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함
Total
Today
Yesterday