'Back-End/SpringFrame_1'에 해당되는 글 23건

donaricano-btn


REST API - ResponseEntity 오브젝트


- ResponseEntity 오브젝트는 HTTP 응답의 바디에 삽입할 오브젝트를 소유한다 (예제에서 Customer해당)

- ResponseEntity 오브젝트는 바디 오브젝트에 추가해 스테이터스 코드와 HTTP 응답 헤더를 설정할 수 있다


1. ResponseEntity의 프로퍼티

 프로퍼티 이름

타입 

설명 

statusCode 

org.springframework.http.HttpStatus 

스테이터스 코드 

headers 

org.springframework.http.HttpHeaders 

HTTP 응답  

body

T(ResponseEntity 오브젝트 생성 시에 형 변수지정) 

바디에 삽입할 정보를 유지하는 오브젝트


2. ResponseEntity

1) 반환 값이 ResponseEntity 클래스가 된 것을 확인

- ResponseEntity 반환이면 그 내용을 HTTP 응답에 삽입하는 것은 명확하므로 @ResponseBody 설정 필요없다

- 스테이터스 코드도 오브젝트에 설정하므로 @ResponseCode 설정할 필요없다

2) HTTP 응답 헤더 정보를 유지하는 HttpHeaders 오브젝트

-  여기에 콘텐츠 타입이나 My-Header라는 이름의 헤더설정

- ResponseEntity 오브젝트를 사용함으로 개별적 헤더를 설정 할 수 있다

3) 바디오브젝트, 헤더오브젝트, 스테이터스 코드 반환


블로그 이미지

리딩리드

,
donaricano-btn

REST API - XML, JSON(2)


1. HttpMessageConverter 설정

 - HttpMessageConverter는 Bean 정의 파일의 mvc:annotation-driven 태그에 설정한다


1) HttpMessageConverter 오브젝트를 Bean으로 정의

- 복수의 MessageConverter를 등록할 수 있다

2) JAXB를 사용해서 XML 문서와 Customer 오브젝트를 변환

3) 자동 등록되는 HttpMessageConverters

- 위에서는 명시적으로 등록했지만 몇몇 컨버터는 기본적으로 등록되어있다

- StringHttpMessageConverter : 문자열과 Http 변환

- ByteArrayHttpMessageConverter : byte 배열과 Http

- Jaxb2RootElementHttpMessageConverter : xml 문서


2. XML과 클래스의 매핑

- Controller 구현전 XML 형식을 정해두어야 한다

- XML 형식과 Customer 클래스의 매핑은 JAXB로 정의한 애노테이션으로 정의

1) xml

 

2) Customer.java

 

- 클래스에 @XmlRootElement 설정하면 나머진 JAXB가 클래스 이름과 프로퍼티 이름을 바탕으로 자동적으로 해준다


3. HTTP 메시지 수신

1). CustomerRestController.java

 

1,2) 메소드에 엑세스 하기 위한 설정이다

3) HTTP요청의 바디를 인수로 받기 위한 설정

- @RequestBody 애노테이션을 설정한 인수에는 HTTP 요청의 바디를 HttpMessageConverter로 변환한 결과가 설정된다

2). HTTP 응답 반환

- REST 에서는 원칙적으로 클라이언트는 HTTP 응답의 스테이터스 코드를 바탕으로 처리의 성공 여부를 판단

- 서버는 올바르게 스테이터스 코드반환해야만 한다

5) @ResponseStatus

- Controller 메소드가 정상종료 했을 때 어느 스테이터스 코드를 반환할지 정의 

- HttpStatus enum의 값을 지정한다

- @ResponseStatus 애노테이션을 지정하지 않아도 Controller 메소드가 정상적으로 종료되면 200을 반환

7) @ResponseBody

- 위 메소드는 OK 문자열을 반환하고 이문자는 HTTP 응답의 바디에 삽입된다

- HTTP 응답 바디에 삽입할 값이 반환한다는 것을 설정하고자 @ResponseBody를 설정




블로그 이미지

리딩리드

,
donaricano-btn

REST API - XML, JSON(1)


- REST API는 HTTP 통신을 이용해 XML과 JSON 형식의 정보를 주고 받는 웹 어플리케이션이다

- Http 요청과 HTTP 응답의 바디 부분에 XML과 JSON 형식의 정보를 설정해서 통신

1. HttpMessageConverter

- HTTP 요청/응답의 바디와 자바 오브젝트를 서로 변환

- 인터페이스이다

1) 구현 클래스

- MarshallingHttpMessageConverter(XML 형식의 http를 스프링의 O/X 매핑을 사용해 변환)

- Jaxb2RootElementHttpMessageConverter(XML형식의 HTTP를 JAXB로 변환)

- MappingJacksonHttpMessageConverter(Json형식의 HTTP 를 Jackson으로 변환)

블로그 이미지

리딩리드

,
donaricano-btn

파일업로드(fileupload)


1. beans-webmvc.xml


- 업로드 기능을 적용하기 위해 MultipartResolver 인터페이스를 구현한 클래스를 bean으로 정의해야함

- 스프링에서 Commons File Upload를 사용해서 MultipartResolver를 구현한 CommonsMultipartResolver클래스이다

- bean id는 꼭 multipartResolver로 명시해야한다

- 파일의 최대 크기등 다양한 프로퍼티가 존재한다


2. upload.jsp

 

1) form 태그 설정시 enctype에 "multipart/form-data" 지정

2) input type="file"


3. fileupload.java

 


블로그 이미지

리딩리드

,