1 분 소요


HttpServletRequest 역할

서블릿은 개발자가 HTTP 요청 메시지를 편리하게 사용할 수 있도록 개발자 대신에 HTTP 요청 메시지를 파싱한다. 그 후 결과를 HttpServletRequest객체에 담아서 제공한다.

HTTP 요청 메시지

POST /save HTTP/1.1
Host: localhost:8080
Content-Type: applicaion/x-www-form-urlencoded

username=kim&age=20
  • START LINE
    • HTTP 메소드
    • URL
    • 쿼리 스트링
    • 스키마, 프로토콜
  • 헤더
    • 헤더 조회
  • 바디
    • form 파라미터 형식 조회
    • message body 데이터 직접 조회

임시 저장소 기능

  • 해당 HTTP 요청이 시작부터 끝날 때 까지 유지되는 임시 저장소 기능
    • 저장: request.setAttribute(name, value)
    • 조회: request.getAttribute(name)

세션 관리 기능

  • request.getSession(create: true)


HTTPServletRequest - 기본 사용법

start-line 정보

System.out.println("request.getMethod() = " + request.getMethod()); //GET
System.out.println("request.getProtocal() = " + request.getProtocol()); //HTTP/1.1
System.out.println("request.getScheme() = " + request.getScheme()); //http

System.out.println("request.getRequestURL() = " + request.getRequestURL());
// http://localhost:8080/request-header 

System.out.println("request.getRequestURI() = " + request.getRequestURI());
// /request-header

System.out.println("request.getQueryString() = " + request.getQueryString());
//username=hello 

System.out.println("request.isSecure() = " + request.isSecure()); //https 사용 유무

Header 정보

// Header 모든 정보
private void printHeaders(HttpServletRequest request){

    request.getHeaderNames().asIterator()
            .forEachRemaining(
                headerName -> System.out.println(headerName + ": " + request.getHeader(headerName)));
}

Header 편리한 조회

// Header 편리한 조회

// [Host]
System.out.println("request.getServerName() = " + request.getServerName()); //localhost
System.out.println("request.getServerPort() = " + request.getServerPort()); //8080

// [Accept-Language]
request.getLocales().asIterator()
        .forEachRemaining(locale -> System.out.println("locale = " + locale))
// locale = ko
// locale = en_US ...
System.out.println("request.getLocale() = " + request.getLocale());
// ko

// [cookie]
if (request.getCookies() != null) {
    for (Cookie cookie : request.getCookies()) {
       System.out.println(cookie.getName() + ": " + cookie.getValue());
    }
}

// [Content]
System.out.println("request.getContentType() = " + request.getContentType());
System.out.println("request.getContentLength() = " + request.getContentLength());
System.out.println("request.getCharacterEncoding() = " + request.getCharacterEncoding());
// UTF-8


<출처 : 인프런 - 스프링 MVC 1편 : 백엔드 웹 개발 핵심 기술(김영한)>

댓글남기기