서론
HTTP 요청 메시지를 통하여 클라이언트에서 서버로 데이터를 전달하는 방법은 3가지가 있다.
1. GET - 쿼리 파라미터 2. POST- HTML Form 3.HTTP message body에 데이터를 직접 담아서 요청
본 게시글에서는 GET-쿼리파라미터로 전달하는 방법을 알아보자.
GET - 쿼리 파라미터
- /url?key값=value값&key값=value값
- 메시지 바디 없이, URL의 쿼리 파라미터에 데이터를 포함해서 전달
결과
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("[단일 파라미터 조회]");
String username = request.getParameter("username");
System.out.println("username = " + username);
String age = request.getParameter("age");
System.out.println("age = " + age);
System.out.println();
}
2.파라미터 이름들 모두 조회
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("RequestParamServlet.service");
System.out.println("[전체 파라미터 조회] -start");
request.getParameterNames().asIterator()
.forEachRemaining(paramName -> System.out.println(paramName+"="+ request.getParameter(paramName)));
System.out.println("[전체 파라미터 조회] -end");
System.out.println();
3.이름이 같은 복수 파라미터 조회
http://localhost:8080/request-param?username=hello&age=20&username=hello2
@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("[이름이 같은 복수 마라미터 조회]");
String[] userNames = request.getParameterValues("username");
for (String name : userNames){
System.out.println("username = " + name);
}
}
참고
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard
'Programming > Back-end Language' 카테고리의 다른 글
[JAVA] Servlet HTTP 응답 데이터(Response) TEXT/ HTML / JSON (0) | 2022.04.17 |
---|---|
[Spring] Http API Json 형식 데이터 받고 출력하기 (0) | 2022.04.15 |
[JAVA] 쓰레드 풀(Thread Pool)란? (0) | 2022.04.13 |
[Spring] Test 코드를 작성해야 하는 이유/방법 (0) | 2022.04.13 |
[Spring] DI 의존성 주입이란 ? (0) | 2022.04.13 |