Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- transaction
- JPQL
- 스프링 핵심 원리
- springdatajpa
- spring
- 인프런
- kotlin
- Spring Boot
- db
- AOP
- QueryDSL
- 알고리즘
- Proxy
- JDBC
- Servlet
- 그리디
- 스프링 핵심 기능
- Greedy
- Android
- SpringBoot
- pointcut
- 김영한
- java
- Exception
- jpa
- 자바
- 백준
- Thymeleaf
- 스프링
- http
Archives
- Today
- Total
개발자되기 프로젝트
HTTP 응답 데이터 - API JSON 본문
1. MessageBody에 JSON을 담아서 보내보자!
- objectMapper.writeValueAsString()을 통해 Object -> JSON 변환
- response.getWriter().write() 를 통해 body에 담음.
@WebServlet(name = "ResponseJsonServlet", urlPatterns = "/response-json")
public class ResponseJsonServlet extends HttpServlet {
ObjectMapper objectMapper = new ObjectMapper();
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//Content-Type: application/json
response.setContentType("application/json");
response.setCharacterEncoding("utf-8");
HelloData helloData = new HelloData();
helloData.setUsername("kim");
helloData.setAge(20);
//Object -> json
String result = objectMapper.writeValueAsString(helloData);
response.getWriter().write(result);
}
}
2. 참고
- application/json 은 스펙상 utf-8 형식이 지정되어있음.
- 그래서 charset=utf-8과 같은 추가 파라미터를 지원하지 않음..
- 따라서 application/json를 사용해야함. application/json;charset=utf-8 이라고 전달하는 것은 의미 없음.
- response.getWriter()를 사용하면 추가 파라미터를 자동으로 추가해버린다.
- 이때는response.getOutputStream()으로 출력하면 그런 문제가 없다.
3. GitHUb : 210908 HttpServletResponse, json
'인프런 > [인프런] 스프링 MVC 1' 카테고리의 다른 글
[Servlet] 회원 관리 웹 애플리케이션 (0) | 2021.09.09 |
---|---|
[Servlet] 회원 관리 웹 애플리케이션 요구사항 (0) | 2021.09.09 |
HTTP 응답 데이터 - 단순 텍스트, HTML (0) | 2021.09.08 |
HttpServletResponse - 기본 사용법 (0) | 2021.09.08 |
HTTP 요청 데이터 - API 메시지 바디 - JSON (0) | 2021.09.08 |
Comments