개발자가 직접 HTTP 응답 메세지를 만들려면 너무 힘들다.
우리는 HttpServletResponse
객체가 제공하는 메서드를 활용해서 객체에 필요한 값을 넣어두면 되고
알아서 응답 메세지를 만들 때 HttpServletResponse
객체가 사용된다.
HttpServletResponse
객체를 다음과 같이 활용 가능하다.
HTTP 응답 메세지 생성
- HTTP 응답코드 지정
- 헤더 생성
- 바디 생성
편의 기능 제공
- Content-Type, 쿠키, Redirect
response.getWriter().write()
단순 텍스트나 HTML을 응답 데이터로 반환할 때는 content-type
을 text/html
로 지정해야 한다.
HelloData data = new HelloData();
data.setUsername("kim");
data.setAge(20);
//{"username":"kim","age":20}
String result = objectMapper.writeValueAsString(data);
HTTP 응답으로 JSON을 반환할 때는 content-type
을 application/json
로 지정해야 한다.
Jackson 라이브러리가 제공하는 objectMapper.writeValueAsString()
를 사용하면 객체를 JSON 문자로 변경할 수 있다.
application/json
은 스펙상 utf-8 형식을 사용하도록 정의되어 있다.
response.getWriter()
를 쓰면 자동으로 charset-utf-8 추가 파라미터를 자동으로 추가한다.
`response.getOutPutStream()을 사용하면 그런 문제가 없다.