클라이언트에서 서버로 데이터를 전송하는 방식 중 하나로 쿼리 파라미터를 사용한다.
주로 검색, 필터, 페이징 등의 기능에서 활용된다.
쿼리 파라미터의 형식
? 로 시작하며, 데이터는 key=value 형식으로 표현된다.& 로 구분한다.
예) http://localhost:8080/request-param?username=kim&age=27파라미터 전체 조회
request.getParameterNames().asIterator()
.forEachRemaining(paramName -> System.out.println(paramName + ": " + request.getParameter(paramName)));
출력 예시
username = kim
age = 27
단일 파라미터 조회
String username = request.getParameter("username");
String age = request.getParameter("age");
System.out.println("username = " + username);
System.out.println("age = " + age);
출력 예시
username = kim
age = 27
이름이 같은 복수 파라미터 조회
URL 예시:
<http://localhost:8080/request-param?username=kim&username=choe&age=27>
String[] usernames = request.getParameterValues("username");
for (String name : usernames) {
System.out.println("name = " + name);
출력 예시
name = kim
name = choe
@WebServlet("/request-param")
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("[전체 파라미터 조회] - end\\n");
// 단일 파라미터 조회
System.out.println("[단일 파라미터 조회] - start");
String username = request.getParameter("username");
String age = request.getParameter("age");
System.out.println("username = " + username);
System.out.println("age = " + age);
System.out.println("[단일 파라미터 조회] - end\\n");
// 이름이 같은 복수 파라미터 조회
System.out.println("[이름이 같은 복수 파라미터 조회] - start");
String[] usernames = request.getParameterValues("username");
for (String name : usernames) {
System.out.println("name = " + name);
}
System.out.println("[이름이 같은 복수 파라미터 조회] - end");
response.getWriter().write("OK");
}
}