@WebServlet(name = "requestHeaderServlet", urlPatterns = "/request-header")
public class RequestHeaderServlet extends HttpServlet {
// public 말고 protected된 메서드를 사용해야 한다.
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
printHeaderUtils(request);
}
// Header 편리한 조회
private void printHeaderUtils(HttpServletRequest request) {
System.out.println("--- Header 편의 조회 start ---");
// Host 헤더
System.out.println("[Host 편의 조회]");
System.out.println("request.getServerName() = " +
request.getServerName());
// Host 헤더
System.out.println("request.getServerPort() = " + request.getServerPort());
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 ---\n");
}
}
--- Header 편의 조회 start ---
[Host 편의 조회]
request.getServerName() = localhost
request.getServerPort() = 8080
[Accept-Language 편의 조회]
locale = ko_KR
locale = ko
locale = en_US
locale = en
request.getLocale() = ko_KR
[Cookie 편의 조회]
optimizelyEndUserId: oeu1610084455381r0.7319812782071056
ch-veil-id: 9f3b199b-8db0-4d26-91b6-37ba33091c86
lang: ko
_ga: GA1.1.1954188695.1620027883
Idea-d9466cd9: 1bac0d08-b7da-49a6-98bb-ce36acec26a6
ajs_anonymous_id: %22b7ecbc45-f07a-47f9-b0d4-647e30513dde%22
wcs_bt: s_4288e28adaa4:1623751338
amplitude_id_e3025c63ec54f7c9aa28aa2f31de7f2c: eyJkZXZpY2VJZCI6IjM0ZjUwZmVlLWFiZGQtNDgxZC1iMDZiLWE1NDBlOTlkYzhlYVIiLCJ1c2VySWQiOiJTcGpBWVp6eEhIZGJObUVlUGpDdFhWaUprcmYyIiwib3B0T3V0IjpmYWxzZSwic2Vzc2lvbklkIjoxNjIzNzQ3Mjc2NzcxLCJsYXN0RXZlbnRUaW1lIjoxNjIzNzUxMzQyMDc4LCJldmVudElkIjoxMzM4LCJpZGVudGlmeUlkIjo5MTUsInNlcXVlbmNlTnVtYmVyIjoyMjUzfQ==
[Content 편의 조회]
// get 방식은 content가 없기 때문에 null로 나온다.
// post로 body에 데이터를 담아 보내면 text/plain 등이 출력된다.
request.getContentType() = null
request.getContentLength() = -1
request.getCharacterEncoding() = UTF-8
--- Header 편의 조회 end ---
@WebServlet(name = "requestHeaderServlet", urlPatterns = "/request-header")
public class RequestHeaderServlet extends HttpServlet {
// public 말고 protected된 메서드를 사용해야 한다.
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
printStartLine(request);
printHeaders(request);
printHeaderUtils(request);
printEtc(request);
}
// 기타 정보
private void printEtc(HttpServletRequest request) {
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 ---\n");
}
}