반응형
텍스트 메시지를 HTTP 메시지 바디에 담아서 전송하고, 읽기
package hello.servlet.basic.request;
import org.springframework.util.StreamUtils;
import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
@WebServlet(name = "requestBodyStringServlet", urlPatterns = "/request-body-string")
public class RequestBodyStringServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletInputStream inputStream = request.getInputStream();
String messageBody = StreamUtils.copyToString(inputStream, StandardCharsets.UTF_8);
System.out.println("message body = " + messageBody);
response.getWriter().write("OKOKOK");
}
};
inputStream을 사용하면 쉽게 메시지를 읽을 수 있다고 한다. inputStream은 byte 코드를 반환한다. byte 코드를 우리가 읽을 수 있는 문자(String)로 보려면 문자표 (Charset)를 지정해주어야 한다. 뭐 한마디로 텍스트 바이트를 보고 문자로 바꿔서 보여준다? 정도인 것 같다.
postman을 이용하여 request-body-string으로 123 이라는 text를 보내면 okokok 라는 응답이 오는 것을 볼 수 있다. inputStream을 사용하면 쉽게 볼 수 있는 것 같다.
그런데 요즘은 text 형식으로 데이터를 주고 받지 않는다고 한다.
JSON 형식을 주로 쓴다는데 공부해보자.
반응형
'Spring' 카테고리의 다른 글
[spring] 회원가입 spring security 사용 (0) | 2023.09.24 |
---|---|
[Spring] HttpServletResponse - html 응답 (0) | 2023.09.15 |
[Spring] 게시판 검색창 입력 후 페이징 처리시 유지 안되는 경우 해결방법(session 사용) (0) | 2023.08.28 |
[Spring] GET 쿼리 파라미터 조회하기 (0) | 2023.07.19 |
[Spring] HTTP 요청 데이터 (GET, POST-HTML Form, HTTP message body) (0) | 2023.07.16 |