본문 바로가기

Programming/Framework

DAY 163. Spring MVC 첨부파일 다운로드

 

스프링에서 제공하는 방식

ResponseEntity

httpEntity<T> 클래스는

http 메시지를 만들어서 사용자에게 만들어 줄 수 있다.

메시지는 크게 2가지로 나뉜다.

1)요청 메시지

2) 응답 메시지

그 중 응답과 관련된 메시지와 관련된 클래스가 ResponseEntity<T>이다.

 

cf. ResponseBody 사용시

- 리턴해주는 데이터나 객체들을 데이터로 알아서 변경해서 보내준다.

- 단점은 응답 Header 설정이 어렵다. (하려면 HttpServletResponse 를 또 포함시켜야 한다.)

 

- 스프링에서는 바디와 헤더 설정을 한꺼번에 할 수 있는 ResponseEntity를 제공해준다.

 

 

컨트롤러에서 ResponseEntity가 리턴하는 값은 http 응답에 대한 정보를 반환한다.

 

* HttpEntity
- 스프링 프레임워크에서 제공하는 클래스로 HTTP 요청 또는 응답에 해당하는 HTTP Header와 HTTP Body를 포함하는 클래스이다.

* ResponseEntity
- HttpEntity를 상속하는 클래스로 HTTP 응답 데이터를 포함하는 클래스이다.
- 개발자가 직접 HTTP Header, Body, Status를 세팅해서 반환할 수 있다.
     - Hedear : 값 세팅
     - Body : 문자열
     - Status : 응답 자체가 성공인지 실패인지
- 컨트롤러에서 ResponseEntity를 리턴하면 View에 대한 정보가 아니라 HTTP 정보를 반환한다.

* @ResponseBody와의 차이점
- @ResponseBody의 경우 Header값을 변경해야할 경우에는 직접 파라미터로 Response 객체를 받아와서 이 객체에서 Header를 변경해야 한다.

- BUT! ResponseEntity는 객체를 생성한 뒤 객체에서 Header 값을 변경시키면 된다.