티스토리 뷰

백엔드/SERVLET & JSP

Servlet 요청 데이터 처리

거북이의 기술블로그 2024. 8. 27. 15:55
1. 쿼리 파라미터 (GET)
2. HTML Form (POST)
3. HTTP message body

 

쿼리 파라미터

http://localhost:8080/main?name=test&count=2
  • message body에 내용 없이, URL의 ?[query] 부분에 추가되어 데이터가 전달됨
  • GET 메서드에서 사용
  • 검색 / 필터 / 페이징에서 많이 사용하는 방식
@WebServlet(urlPatterns = "/main")
public class RequestGet extends HttpServlet{
    
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
        
        
        // 전체 조회
        Enumeration<String> parameterNames = request.getParameterNames();
        
        while (parameterNames.hasMoreElements()) {
            String paramName = paramterNames.nextElement();
        }
        
        
        //단일 조회
        String name = request.getParameter("name");
        
        
        //이름이 같은 복수 파라미터 조회
        String[] names = request.getParamterValues("name");
     }
   }

HTML Form

  • Content-Type : application/x-www-form-urlencoded
  • message body 부분에 쿼리파라미터 형태로 전달
  • 회원가입 / 상품 주문 / HTML Form 사용
  • 쿼리 파라미터 조회법이랑 동일

 

HTTP message Body

  • HTTP API 에서 주로 사용
  • json / xml / Text
@WebServlet(urlPatterns = "/main")
public class APIServlet extends HttpServlet{
    
    @Override
    protected void service(HttpServletRequest request, HttpsServletResponse response) throws ServletException, IOException
    {
        ServletInputStream inputStream = request.getInputStream();
        
        String messageBody = StreamUtils.copyToString(inputStream, StandardCharset.UTF-8)
    }
}
  • Json 형태일경우, json 변환 라이브러리를 사용해야한다
  • spring MVC의 경우, Jackson 라이브러리를 함께 제공한다 ( ObjectMapper )
@WebServlet(urlPatterns = "/main")
public class APIServlet extends HttpServlet{
    
    private ObjectMapper objectMapper = new ObjectMapper();
    
    @Override
    protected void service(HttpServletRequest request, HttpsServletResponse response) throws ServletException, IOException
    {
        ServletInputStream inputStream = request.getInputStream();
        
        String messageBody = StreamUtils.copyToString(inputStream, StandardCharset.UTF-8);
        
        Object object = objectMapper.readValue(messageBody, Object.class);
    }
}

'백엔드 > SERVLET & JSP' 카테고리의 다른 글

JSP 이론 및 기초 문법  (1) 2024.08.28
Servlet 예제 ( 회원 저장 / 조회 )  (0) 2024.08.27
Servlet 응답 처리  (1) 2024.08.27
Servlet 기초  (0) 2024.08.27
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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
글 보관함