1. HttpServletRequest 역할
- 서블릿은 HTTP 요청 메시지를 개발자가 직접 파싱하지 않아도 되도록 HttpServletRequest 객체를 제공한다.
- HTTP 요청 메시지를 파싱한 결과를 담아 개발자가 편리하게 조회할 수 있도록 지원한다.
2. HTTP 요청 메시지 예시
// [Start-line]
POST /save HTTP/1.1
// [Header]
Host: localhost:8080
Content-Type: application/x-www-form-urlencoded
// [Body]
username=kim&age=20
<aside>
START LINE: 요청의 시작 부분
- HTTP 메소드: GET, POST 등
- URL: 요청 대상
- 쿼리 스트링: URL에 포함된 파라미터
- 스키마, 프로토콜: 예) HTTP/1.1
헤더 : 요청에 포함된 메타정보
바디 : 요청의 실제 데이터(POST 요청 등에 사용)
- Form 파라미터 형식 조회
- message body 데이터 직접 조회
</aside>
3. HttpServletRequest로 조회 가능한 정보
- 헤더 조회: 요청 헤더 데이터를 조회한다.
- Form 파라미터 조회: username=kim&age=20 같은 데이터를 편리하게 조회한다.
- 메시지 바디 직접 조회: 필요 시 메시지 BODY 데이터를 직접 읽어올 수 있다.
4. HttpServletRequest의 추가 기능
임시 저장소 기능: HTTP 요청 시작부터 끝날 때까지 데이터를 저장하고 조회할 수 있다.
- 저장: request.setAttribute(”name”, value)
- 조회: request.getAttribute(”name”)