Spring/공부
서블릿 데이터 요청, 응답 방법
synclair
2023. 4. 13. 01:52
서블릿 위해 HttpServlet를 클래스에서 상속 받아야함
@WebServlet(name = "requestBodyJsonServlet", urlPatterns = "/request-body-json")
public class RequestBodyJsonServlet extends HttpServlet {
}
HTTP 요청 데이터
GET 쿼리 파라미터
(1) 전체 파라미터 조회
request.getParameterNames().asIterator()
.forEachRemaining(paramName -> System.out.println(paramName + "=" + request.getParameter(paramName)));
(2) 단일 파라미터 조회
request.getParameter("받은 파라미터");
(3) 이름이 같은 복수 파라미터 조회
String[] usernames = request.getParameterValues("username");
for( String name : usernames){
System.out.println("받은 파라미터 = " + 받은 파라미터);
}
- API 메시지 바디 - 단순 텍스트 요청
ServletInputStream inputStream = request.getInputStream();
String messageBody = StreamUtils.copyToString(inputStream, 상태메시지);
- API 메시지 바디 - JSON 형식 요청
ServletInputStream inputstream = request.getInputStream();
String mesageBody = StreamUtils.copyToString(inputStream, 상태메시지);
// Json 데이터 -> 객체 파싱
HelloData helloData = objectMapper.readValue(messageBody, HelloData.class);
// 테스트
System.out.println("helloData.getUsername() = " + helloData.getUsername());
System.out.println("helloData.getAge() = " + helloData.getAge());
response.getWriter().write("ok");
HTTP 응답데이터
-쿠키 보내기
Cookie cookie = new Cookie("쿠키 키 이름", "쿠키 값");
cookie.setMaxAge(쿠키지속시간\[초\]);
response.addCookie(cookie);
단순 텍스트,HTML
//Content-Type 설정
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
PrintWriter writer = response.getwriter();
writer.println("<html>");
writer.println("</html>");
API JSON 전송
//Content-Type json 설정
response.setContentType("application/json");
객체 매핑
ObjectMapper objectMapper = new ObjectMapper();
객체 -> Json(String)
String result = objectMapper.writeValeAsString(객체);
Json 전송
respons.getWriter().write(객체);