minlog
article thumbnail

 

HttpServletRequest 역할

서블릿은 개발자가 HTTP 요청 메시지를 편리하게 사용할 수 있도록 개발자 대신에 HTTP 요청 메시지를 파싱한다.

그리고 그 결과를 HttpServletRequest 객체에 담아서 제공한다.

HttpServletRequest를 사용하면 다음과 같은 HTTP 요청 메시지를 편리하게 조회할 수 있다.

 

HttpServletRequest가 제공하는 기본 기능

 

📑 요청된 정보 조회

System.out.println("--- REQUEST-LINE - start ---");
System.out.println("request.getMethod() = " + request.getMethod()); //GET
System.out.println("request.getProtocol() = " + request.getProtocol()); //HTTP/1.1
System.out.println("request.getScheme() = " + request.getScheme()); //http
// http://localhost:8080/request-header
System.out.println("request.getRequestURL() = " + request.getRequestURL());
// /request-header
System.out.println("request.getRequestURI() = " + request.getRequestURI());
//username=hi
System.out.println("request.getQueryString() = " +
        request.getQueryString());
System.out.println("request.isSecure() = " + request.isSecure()); //https 사용 유무
System.out.println("--- REQUEST-LINE - end ---");

 

 

📑 Header 모든 정보

System.out.println("--- Headers - start ---");
//이전 사용방법
/* 
Enumeration<String> headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()){
    String headerName = headerNames.nextElement();
    System.out.println("headerName = " + headerName);
}
*/

//최근 사용방법
request.getHeaderNames().asIterator()
        .forEachRemaining(headerName -> System.out.println("headerName = " + headerName));

request.getHeader("host"); //원하는 값만 뽑을 수 있다.

System.out.println("--- Headers - end ---");

 

 

📑 Header 편리한 조회

System.out.println("--- Header 편리한 조회 start ---");
System.out.println("[Host 편리한 조회]");
System.out.println("request.getServerName() = " +
        request.getServerName()); //Host 헤더
System.out.println("request.getServerPort() = " +
        request.getServerPort()); //Host 헤더
System.out.println();
System.out.println("[Accept-Language 편리한 조회]");
request.getLocales().asIterator()
        .forEachRemaining(locale -> System.out.println("locale = " +
                locale));
System.out.println("request.getLocale() = " + request.getLocale());
System.out.println();
System.out.println("[cookie 편리한 조회]");
if (request.getCookies() != null) {
    for (Cookie cookie : request.getCookies()) {
        System.out.println(cookie.getName() + ": " + cookie.getValue());
    }
}
System.out.println();
System.out.println("[Content 편리한 조회]");
System.out.println("request.getContentType() = " +
        request.getContentType());
System.out.println("request.getContentLength() = " +
        request.getContentLength());
System.out.println("request.getCharacterEncoding() = " +
        request.getCharacterEncoding());
System.out.println("--- Header 편리한 조회 end ---");

 

 

📑 기타 정보 조회

네트워크 커넥션 정보

System.out.println("--- 기타 조회 start ---");
System.out.println("[Remote 정보]");
System.out.println("request.getRemoteHost() = " +
        request.getRemoteHost()); //
System.out.println("request.getRemoteAddr() = " +
        request.getRemoteAddr()); //
System.out.println("request.getRemotePort() = " +
        request.getRemotePort()); //
System.out.println();
System.out.println("[Local 정보]");
System.out.println("request.getLocalName() = " +
        request.getLocalName()); //
System.out.println("request.getLocalAddr() = " +
        request.getLocalAddr()); //
System.out.println("request.getLocalPort() = " +
        request.getLocalPort()); //
System.out.println("--- 기타 조회 end ---");
profile

minlog

@jimin-log

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!