Notice
Recent Posts
Recent Comments
Link
«   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
Archives
Today
Total
관리 메뉴

개발자되기 프로젝트

HTTP 요청 데이터 - GET 쿼리 파라미터 본문

인프런/[인프런] 스프링 MVC 1

HTTP 요청 데이터 - GET 쿼리 파라미터

Seung__ 2021. 9. 8. 20:09

 

1.GET , 쿼리파라미터


  • 전달 데이터
    • username=hello
    • age=20
  • URL : http://localhost:8080/request-param?username=hello&age=20
  • 서버에서는 HttpServletRequest 가 제공하는 메서드를 통해 쿼리 파라미터를 조회할 수 있음.0

 

 

 

2. 전체 파라미터 조회


  • request.getParam(name)을 해야 parameter를 꺼낼 수 있음
/**
 * 1. 파라미터 전송 기능
 * http://localhost:8080/request-param?username=hello&age=20
 */
@WebServlet(name = "RequestParamServlet", urlPatterns = "/request-prarm")
public class RequestParamServlet extends HttpServlet {
    @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("[전체 파라미터 조회] - start");

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

 

 

 

 

3. 단일 파라미터 조회


  • request.getParam(name)을 해야 parameter를 꺼낼 수 있음
/**
 * 1. 파라미터 전송 기능
 * http://localhost:8080/request-param?username=hello&age=20
 */
@WebServlet(name = "RequestParamServlet", urlPatterns = "/request-param")
public class RequestParamServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        System.out.println("[단일 파라미터 조회] - start");
        String username = request.getParameter("username");
        String age = request.getParameter("age");
        System.out.println("age = " + age);
        System.out.println("username = " + username);
    }
}
[단일 파라미터 조회] - start
age = 20
username = hello
[단일 파라미터 조회] - end

 

4. 이름이 같은 복수 파라미터 조회


  • http://localhost:8080/request-param?username=hello&age=20&username=hahaha&username=zzzzzzz
  • 위와 같이 같은 같은 이름으로 복수 파라미터를 넘기는 경우.
  • request.gerParameterValues("")
/**
 * 1. 파라미터 전송 기능
 * http://localhost:8080/request-param?username=hello&age=20
 */
@WebServlet(name = "RequestParamServlet", urlPatterns = "/request-param")
public class RequestParamServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {


        System.out.println("[이름이 같은 복수 파라미터 조회] - start");
        String[] usernames = request.getParameterValues("username");
        for (String name : usernames) {
            System.out.println("name = " + name);
        }

    }
}
[이름이 같은 복수 파라미터 조회] - start
name = hello
name = hahaha
name = zzzzzzz
[이름이 같은 복수 파라미터 조회] - end
  • 값이 중복이면 어떻게 될까?
  • request.getParameter() 는 하나의 파라미터 이름에 대해서 단 하나의 값만 있을 때 사용
  • 중복일 때는 request.getParameterValues() 를 사용
  • 중복일 때 request.getParameter() 를 사용하면 request.getParameterValues() 의
  • 첫 번째 값을 반환

 

5. GitHub : 210908 Get, QueryParam


 

GitHub - bsh6463/MVC1

Contribute to bsh6463/MVC1 development by creating an account on GitHub.

github.com

 

Comments