model.addAttribute & request.setAttribute

yoonddo·2024년 1월 6일

SPRING

목록 보기
1/3
post-thumbnail

java, spring, spring boot를 공부하는 개발자라면 HttpServletRequest, HttpServletResponse를 먼저 접하고 그 다음 Spring에 입문하면서 Model 객체를 알게되는데
둘이 같은 역할을 하는건 알지만 공통점과 차이점을 자세히 알아보려고 한다 !

공통점

model.addAttribute와 request.setAttribute는 데이터를 뷰로 전달한다는 공통점이 있다.
둘다 사용해도 무관하지만 Spring MVC에서는 Model을 사용해 뷰에 데이터를 전달하기 때문에 request를 굳이 사용하지 않아도 된다.

차이점

같은 역할을 하지만 사용 범위에서 차이가 있다. request.setAttribute는 Servlet에서 사용되는 메서드로 HttpServiceRequest 객체의 데이터를 설정하는 방법이다. 설정한 데이터는 해당 요청이 끝날 때까지 유지되어 사용할 수 있다. 따라서 login 페이지에 데이터를 전달해도 다른 페이지에서도 사용할 수 있다는 의미이다.

model.addAttribute는 Spring MVC에서 사용되는 메서드로 Spring MVC의 Model 객체에 데이터를 추가하는 방법이다.
request와는 다르게 데이터가 뷰로 전달되어 특정 뷰에서만 사용할 수 있다.

또 주로 사용되는 프레임워크가 다르다는 차이점이 있다. Servlet은 JSP나 Servlet을 이용한 웹 어플리케이션 개발에 사용되며 Spring MVC는 Spring 기반의 웹 어플리케이션 개발에 사용된다. 서로 다른 개발 환경에서 사용되는 메서드이기 때문에 사용 범위가 다르다.

Spring MVC를 사용하는 상황에서는 굳이 Model을 사용하지 않고 다른 걸 쓸 이유가 없다. 코드도 짧아지고 좋다 🎵![]

profile
곰발이지만 개발 잘 하고싶다 🐻🐾

0개의 댓글