서블릿은 개발자 대신에 HTTP 요청 메시지를 파싱한다. 그리고 그 결과를 HttpServletRequest 객체에 담아서 제공한다.
HttpServletRequest를 사용하면 다음과 같은 HTTP 요청 메시지를 편리하게 조회할 수 있다!
HttpServletRequest 객체는 추가로 여러가지 부가기능을 함께 제공한다.
HttpServletRequest, HttpServletResponse를 사용할 때 가장 중요한 점은 이 객체들이 HTTP 요청 메시지, HTTP 응답 메시지를 편리하게 사용하도록 도와주는 객체라는 점이다. 따라서 이 기능에 대해서 깊이있는 이해를 하려면 HTTP 스펙이 제공하는 요청, 응답 메시지 자체를 이해해야 한다.
HTTP 요청 메시지를 통해 클라이언트에서 서버로 데이터를 전달하는 방법은 주로 다음 3가지
쿼리 파라미터는 URL에 ?를 시작으로 보낼 수 있다. 추가 파라미터는 &로 구분함.
아래의 URL을 이용해서 HTTP 요청을 보내서 RequestParamServlet으로 처리해보자
- http://localhost:8080/request-param?username=maeng&age=26&username=maeng2
RequestParamServlet
실행 결과
request.getParameter()는 하나의 파라미터 이름에 대해서 단 하나의 값만 있을 때 사용해야 한다. 위의 경우와 같이 중복일 때는 request.getParameterValues()를 사용해야 한다. 중복일 때 request.getParameter()를 사용하면 request.getParameterValues()의 첫 번째 값을 반환한다.
hello-form.html 생성
웹 브라우저 요청 화면 (Postman을 사용해도 됨)
application/x-www-form-urlencoded 형식은 앞서 GET에서의 쿼리 파라미터 형식과 동일
- 쿼리 파라미터 조회 메서드를 그대로 사용하면 됨
request.getParameter()는 GET URL 쿼리 파라미터 형식도 지원하고, POST HTML Form 형식도 둘 다 지원
JSON 형식으로 파싱할 수 있게 객체를 하나 생성하자
import lombok.Getter;
import lombok.Setter;
@Getter @Setter
public class HelloData {
private String username;
private int age;
}
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard