개발자가 직접 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()을 사용하면 그런 문제가 없다.