본문 바로가기
Spring Tutorial

[스프링 MVC 12] 서블릿: HTTP 요청 데이터 - POST HTML Form

by 미소5 2023. 7. 20.
  • HTML의 Form을 사용해서(메시지 바디에 쿼리 파리미터 형식으로 전달) 데이터를 전송해보자. 

 

  • main/webapp/basic/hello-form.html
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="/request-param" method="post">
    username: <input type="text" name="username" />
    age: <input type="text" name="age" />
    <button type="submit">전송</button>
</form>
</body>
</html>
  • action="/request-param"
    • RequestParamServlet 으로 전달된다.  localhost:8080/basic/hello-form.html → localhost:8080/request-param

http://localhost:8080/basic/hello-form.html 실행
전송 결과


 

  • 바디에 이 Form 데이터를 보낸다.

Form Data : username=jo&age=20


username=jo&age=2

  • POST의 HTML Form을 전송하면 웹 브라우저는 다음 형식으로 HTTP 메시지를 만든다.
    • 요청 URL: http://localhost:8080/request-param
    • content-type: application/x-www-form-urlencoded
    • message body: username=jo&age=20

HTML Form 데이터 전송

 

  • application/x-www-form-urlencoded 형식은 앞서 GET에서 살펴본 쿼리 파라미터 형식과 같다. 따라서 쿼리 파라미터 조회 메서드를 그대로 사용하면 된다. 클라이언트(웹 브라우저) 입장에서는 두 방식에 차이가 있지만, 서버 입장에서는 둘의 형식이 동일하므로, request.getParameter() 로 편리하게 구분없이 조회할 수 있다.

→정리하면 request.getParameter() 는 GET URL 쿼리 파라미터 형식도 지원하고, POST HTML Form 형식도 둘 다 지원한다.

 


  • Postman 테스트
    • 이런 간단한 테스트에선, HTML form을 만들기보다 Postman을 사용

postman으로 실행!(send)

 



  • content-type HTTP 메시지 바디의 데이터 형식을 지정한다. GET URL 쿼리 파라미터 형식으로 클라이언트에서 서버로 데이터를 전달할 때는 HTTP 메시지 바디를 사용하지 않기 때문에 content-type이 없다. POST HTML Form 형식으로 데이터를 전달하면 HTTP 메시지 바디에 해당 데이터를 포함해서 보내기 때문에 바디에 포함된 데이터가 어떤 형식인지 content-type을 꼭 지정해야 한다. 이렇게 폼으로 데이터를 전송하는 형식을 application/x-www-form-urlencoded 라 한다.

[스프링 MVC 9] 서블릿: HttpServletRequest 기본 사용법 (tistory.com)

 

[스프링 MVC 9] 서블릿: HttpServletRequest 기본 사용법

HttpServletRequest가 제공하는 기본 기능들(HTTP 메시지의 start-line, header 정보 조회)을 알아보자. start-line 정보 @WebServlet(name = "requestHeaderServlet", urlPatterns = "/request-header") public class RequestHeaderServlet extends

joly156.tistory.com




[스프링 MVC 11] 서블릿: HTTP 요청 데이터 - GET 쿼리 파라미터 (tistory.com)

 

[스프링 MVC 11] 서블릿: HTTP 요청 데이터 - GET 쿼리 파라미터

다음 데이터를 클라이언트에서 서버로 전송해보자. username=hello age=20 GET방식(메시지 바디 없이, URL의 쿼리 파라미터를 사용)으로 전송해보자. 쿼리 파라미터는 URL에 다음과 같이 ? 를 시작으로 보

joly156.tistory.com

  • 쿼리 파라미터는 요청 파라미터라 하기도 한다.

[스프링 MVC 10] 서블릿: HTTP 요청 데이터 (tistory.com)

 

[스프링 MVC 10] 서블릿: HTTP 요청 데이터

HTTP 요청 데이터를 어떻게 조회하는지 알아보자! HTTP 요청 메시지를 통해 클라이언트에서 서버로 데이터를 전달하는 방법 (3가지) GET - 쿼리 파라미터 /url?username=hello&age=20 메시지 바디 없이, URL의

joly156.tistory.com


[스프링 MVC 2] 웹 애플리케이션 이해: 서블릿 (tistory.com)

 

[스프링 MVC 2] 웹 애플리케이션 이해: 서블릿

HTML Form 데이터 전송 예시 POST 전송 - 저장 이름이랑 나이의 값을 전송하면, HTML Form을 url은 /save, 방식은 post로 데이터(이름이랑 나이의 값)을 전달(저장) 웹브라우저가 그림과 같은 HTTP 요청 메시

joly156.tistory.com


 

728x90
반응형