HttpServletRequest 역할
- HTTP 를 직접 파싱하는 경우
: 메시지를 개발자가 직접 파싱해서 사용해도 되지만, 매우 할 일이 많아집니다.
- 서블릿 필요 이유
서블릿은 개발자가 HTTP 요청 메시지를 편리하게 사용할 수 있도록 개발자를 대신해서 HTTP 요청 메시지를 파싱합니다.
- HttpServletRequest 의 존재 이유
그 요청 메시지에 대한 결과를 HttpServletRequest 객체에 담아서 제공합니다.
HttpServletRequest 예시
- HTTP 요청 메시지
POST /save HTTP/1.1
Host : localhost: 8080
Content-Type : application/x-www-form-urlencoded
username=park&age=20
이와 같은 요청 메시지를 직접 매번 파싱한다는 의미입니다.
각 문장에 대해 HttpServletRequest 가 하는 역할은
- 첫 번째 줄 : START LINE [ HTTP 메소드, URL, 스키마 ]
- 두, 세 번째 줄 : 헤더 [ 헤더 조회 ]
- 바디 : 한 줄 띄우고 나머지 부분 [ form 피라미터 형식 조회, 메세지 바디 데이터 직접 조회 ]
HttpServletRequest 객체의 여러가지 기능
- 임시 저장소 기능
HTTP 요청이 시작부터 끝날 때 까지 유지되는 임시 저장소 기능
request.setAttribute ( name, value )
request.getAttribute ( name )
- 세션 관리 기능
request.getSession ( create: true )
HTTP Request 해보기
PostMan 설치 후 HTTP 메서드를 테스트 해봤습니다.
위와 같이 Request 메서드에 대해 print 할 수 있는 메서드를 작성하였습니다.
그 후 POST 로 메세지를 보내면
위와 같이 요청 메시지가 정상적으로 들어옴을 확인할 수 있습니다.