minlog
article thumbnail

GET -  쿼리파라미터

URL?이름=값&이름=값

EX ) 검색, 필터, 페이징 등에서 많이 사용

 

📑전체 파라미터 조회

request.getParameterNames().asIterator()
        .forEachRemaining(paramterName -> System.out.println(paramterName + " = " + request.getParameter(paramterName)));

 

📑단일 파라미터 조회

request.getParameter("이름");

String username = request.getParameter("username");
String age = request.getParameter("age");
System.out.println("username = " + username);
System.out.println("age = " + age);

 

📑복수 파라미터 조회

request.getParameterValues("이름");

String[] usernames = request.getParameterValues("username");
for (String name : usernames) {
    System.out.println("username = " + name);
}

 

 

POST - HTML Form

  • content-type: application/x-www-form-urlencoded메시지 바디의 데이터 형식을 지정한다.
  •  메시지 바디에 쿼리파라미터 형식으로 전달 받는다.message body :  이름=값&이름=값

EX ) 회원가입, 상품주문 등에서 많이 사용

 

📑 Get 방식에서 쿼리파라미터로 받은 메서드를 그대로 사용할 수 있다.

🍫 테스트 방법 : postman / Talend API Tester

 

 

 

HTTP message body

HTTP message body에 데이터를 직접 담아서 요청

  • HTTP API에서 주로 사용하며 데이터 형식은 JSON, XML ,TEXT 이다.
  • 메서드는 POST,PUT,PATCH 로 사용된다.

 

📑간단한 텍스트

ServletInputStream inputStream = request.getInputStream();
String messageBody = StreamUtils.copyToString(inputStream,StandardCharsets.UTF_8);
System.out.println("messageBody = " + messageBody);
 response.getWriter().write("ok");

 

📑JSON객체 

@WebServlet(name = "requestBodyJsonServlet", urlPatterns = "/request-bodyjson")
    public class RequestBodyJsonServlet extends HttpServlet {
     private ObjectMapper objectMapper = new ObjectMapper();
     @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("messageBody = " + messageBody);
         HelloData helloData = objectMapper.readValue(messageBody,HelloData.class);
         System.out.println("helloData.username = " + helloData.getUsername());
         System.out.println("helloData.age = " + helloData.getAge());
         response.getWriter().write("ok");
     }
}
profile

minlog

@jimin-log

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!