본문 바로가기

spring

GET 쿼리 파라미터 요청

전달 데이터

- username = hello

- age = 20

 

메세지 바디없이 URL의 쿼리파라미터를 사용해서 전달

예) 검색, 필터, 페이징등에서 많이 사용하는 방식

 

쿼리파라미터는 URL에 다음과 같이 ?를 시작으로 보낼수 있다. 추가는 &를 사용한다.

@Override
        protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            System.out.println("[전체 파라미터 조회] - start");
            request.getParameterNames().asIterator()
                    .forEachRemaining(paramName -> System.out.println(paramName+" = "+request.getParameter(paramName)));
            System.out.println("[전체 파라미터 조회] - end");
            System.out.println();
            System.out.println("[단일 파라미터 조회]");
            String username = request.getParameter("username");
            String age = request.getParameter("age");
            System.out.println("username = "+username+", age = "+age);
            System.out.println();
            System.out.println("[증복 파라미터 조회]");
            String[] usernames = request.getParameterValues("username");
            for (String user : usernames) {
                System.out.println("username = "+user);
            }
        }

입력 값 : username=hello&age=20&username=kim

[결과]

더보기

[전체 파라미터 조회] - start
username = hello
age = 20
[전체 파라미터 조회] - end

[단일 파라미터 조회]
username = hello, age = 20

[증복 파라미터 조회]
username = hello
username = kim

같은 이름의 파라미터의 값이 들어오면 배열로 만들어 getParameterValues를 통해 가져왔는데 전체 파리미터 조회에서는 가장 먼저 조회된 값만 출력되는걸 볼 수 있다. (물론 이렇게 두개가 겹치는건 좋은 방법은 아닌듯 하다.)

'spring' 카테고리의 다른 글

API Message Body 데이터 요청  (0) 2023.03.05
POST HTML Form 데이터 요청  (1) 2023.03.05
HTTP 요청 데이터  (0) 2023.03.05
HttpServletRequest  (0) 2023.03.05
Servlet  (0) 2023.03.05