Spring 으로 Response 를 테스트 하는 중에 request를 한글로 받았다면, 그대로 한글로 Response하는 방법을 정리해보려 합니다.
애플리케이션에서 받았을 때에도 한글이 나오는것은 확인되었으나,
응답을 postman에서 받았을 땐 한글이 깨져서 나옵니다.
이를 해결하기 위해선, 애플리케이션에서 response에 들어갈 헤더를 추가해줘야 했습니다.
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
ServletInputStream servletInputStream = req.getInputStream();
String message = StreamUtils.copyToString(servletInputStream, StandardCharsets.UTF_8);
System.out.println("message : "+ message);
HelloData helloData = objectMapper.readValue(message, HelloData.class); // json 형식 메시지를 객체형식으로 바로 매핑시키는게 가능.
resp.setCharacterEncoding(String.valueOf(StandardCharsets.UTF_8)); // 한글지원하도록 응답 설정
resp.getWriter().write(message);
}
resp.setCharacterEncoding(String.valueOf(StandardCharsets.UTF_8));
resp.setCharacterEncoding("utf-8"));
resp.setHeader("Content-Type", "text/plain;charset=utf-8"); // Content-Type으로 넣더라도 한글깨짐없이 응답시킬 수 있습니다.
이 소스를 추가하고 다시 실행시켜보면 한글이 잘 응답되는 것을 확인할 수 있습니다.
헤더에 charset 을 지정해줘야 되는부분이 핵심으로 확인됩니다.
'IT기술 > spring' 카테고리의 다른 글
[Spring] thymeleaf 디자인 간략 최소 정리 (0) | 2024.02.17 |
---|---|
[Spring] MVC에서 메시지 컨버터로 응답 만들기 (0) | 2024.02.16 |
[Spring] Lombok 기능 생성자 자동생성, NoargsConstructor, RequiredArgsConstructor, AllArgsConstructor 정리 (0) | 2024.02.11 |
[Spring] Bean 수동 등록, 자동 등록 구분하기 (0) | 2024.02.11 |
[spring] postgre db JDBC 연결 테스트 (0) | 2024.01.23 |