Spring/MVC

HTTP 요청 파라미터 - 쿼리 파라미터, HTML form

JWonK 2022. 7. 7. 14:54
728x90
반응형

HTTP 요청 메시지를 통해 클라이언트에서 서버로 데이터를 전달하는 방법을 알아보자.

 

클라이언트에서 서버로 요청 데이터를 전달할 때는 주로 다음 3가지 방법을 사용.

 

  • GET - 쿼리 파라미터
    • /url?username=hello&age=20
    • 메시지 바디 없이, URL의 쿼리 파라미터에 데이터를 포함해서 전달
    • ex) 검색, 필터, 페이징 등에서 많이 사용하는 방식
  • POST - HTML Form
    • content-type:application/x-www-form-urlencoded
    • 메시지 바디에 쿼리 파라미터 형식으로 전달 username=hello&age=20
    • ex) 회원 가입, 상품 주문, HTML form 사용
  • HTTP message body에 데이터를 직접 담아서 요청
    • HTTP API에서 주로 사용, JSON, XML, TEXT
    • 데이터 형식은 주로 JSON 사용
    • POST, PUT, PATCH

요청 파라미터 - 쿼리 파라미터, HTML Form

HttpServletRequest의 request.getParameter()를 사용하면 다음 두 가지 요청 파라미터를 조회할 수 있다.

 

 

GET, 쿼리 파라미터 전송

http://localhost:8080/request-param?username=hello&age=20

 

POST, HTML 전송

POST / reqeust-param ...
content-type: application/x-www-form-urlencoded

username=hello&age=20

 

GET 쿼리 파라미터 전송이든, POST HTML Form 전송 방식이든 둘다 형식이 같으므로 구분 없이 조회할 수 있다.

이것을 간단히 요청 파라미터(request parameter) 조회라 한다.

 

스프링으로 요청 파라미터를 조회하는 방법을 단계적으로 알아본다.


@Slf4j
@Controller
public class RequestParamController {

    @RequestMapping("/request-param-v1")
    public void requestParamV1(HttpServletRequest request, HttpServletResponse response) throws IOException {
        String username = request.getParameter("username");
        int age = Integer.parseInt(request.getParameter("age"));

        log.info("username = {}, age = {}", username, age);

        response.getWriter().write("ok");
    }
}

 

reqeust.getParameter()

여기서는 단순히 HttpServletRequest가 제공하는 방식으로 요청 파라미터를 조회했다.

log에 찍힌 결과

 

 

Post Form 페이지로 전송

먼저 테스트용 HTML Form을 만들어준다.

 

리소스는 /resources/static 아래에 두면 스프링 부트가 자동으로 인식한다.

<!DOCTYPE html>
<html>
<head>

	<meta charset="UTF-8">
	<title>Title</title>
</head>

<body>
	<form action="/request-param-v1" method="post">
		username: <input type="text" name="username" />
		age: <input type="text" name="age" />
		<button type="submit">전송</button>
	</form>
</body>
</html>

 

서버를 실행시키고 

http://localhost:8080/basic/hello-form.html 을 실행시키면

HTML Form으로 전송

다음과 같은 화면이 나오고 위와 같이 정보를 입력하고 전송을 누르면

위와 같이 받을 수 있다.

 

 

더보기

참고 : <인프런> 김영한 : 스프링 MVC - 기본 기능

 
728x90
반응형