미니프로젝트-주간블로깅 3회

Moon·2024년 7월 5일

Mini, Final

목록 보기
3/8

request.setAttribute와 model.addAttribute는 둘 다 데이터를 뷰로 전달하는 데 사용되는 메서드입니다. 하지만 사용범위에서 차이가 있어요.

request.setAttribute는 Servlet에서 사용되는 메서드로, HttpServletRequest 객체에 데이터를 설정하는 방법입니다. 설정한 데이터는 해당 요청이 끝날 때까지 유지되어 사용할 수 있습니다.

model.addAttribute는 Spring MVC에서 사용되는 메서드로, Spring MVC의 Model 객체에 데이터를 추가하는 방법입니다. 설정한 데이터는 뷰로 전달되어 뷰에서 사용할 수 있게 됩니다.

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

따라서 Spring MVC를 사용하는 상황에서는 model.addAttribute를 사용해야 하며, Servlet을 사용하는 상황이면 request.setAttribute를 사용하면 됩니다. 다만 Spring MVC를 사용할 때는 Model을 통해 뷰에 데이터를 전달하므로 request를 사용할 필요가 없는 것이 일반적이에요.

--

model.addAttribute() vs request.setAttribute()
model.addAttribute(key, value)는 request 영역에 값을 저장한다.
model 객체는 request 영역만 가능하기 때문에 session 영역에 값을 저장하는 것은 불가능하다.

또한, model에 담으면 해당 view에서만 사용 가능하지만 request에 담으면 더 넓은 범위에서 사용할 수 있다.
예를 들어 호출한 해당 view 페이지에서 include 한 페이지에서도 request에 담아놓은 정보를 사용할 수 있다.

model은 영역객체(request)를 대신하는 객체이다.

사용자 관점에서는 큰 차이가 없지만 model이 더 가볍고 작업하기 편리하다고 한다.

0개의 댓글