HttpServletRequest

오정환·2022년 12월 5일
0

Request

request는 JSP에서 가장 사용되는 객체입니다.

HttpServletRequest

Http프로토콜의 request 정보를 서블릿에게 전달하기 위한 목적으로 사용됩니다.
서버가 브라우저로부터 Servlet요청을 받으면 전달 받은 정보를 HttpServletRequest객체를 생성하여 저장합니다.

메소드 종류

주요 정보를 반환하는 메소드

request.getRequestURL()

반환 예시 : ttp://test.co.kr:8080/app/test.jsp

request.getRequestURI()

반환 예시 : /app/test.jsp
URL에서 스키마, 서버이름, 포트번호를 제외한 나머지 주소와 파라미터를 반환합니다.

request.getScheme()

반환 예시 : http
http, https, ftp와 같은 프로토콜을 반환합니다.

request.getServerName

반환 예시 : test.co.kr
서버의 이름을 반환합니다.

request.getServerPort()

반환 예시 : 8080
서버포트를 반환합니다.

request.getContextPath

반환 예시 : /app
Context 경로를 반환합니다.

request.getMethod()

반환 예시 : GET
GET / POST 등의 HTTP 메소드를 반환합니다.

request.isSecure()

반환 예시 : false
SSL 보안 여부, http와 같은 보안 채널의 사용여부를 true / false 로 반환합니다.

request.getLocale()

반환 예시 : ko_KR
지역정보를 반환합니다.

request.getProtocol()

반환 예시 : HTTP/1.1
자주사용하는 프로토콜, 프로토콜/메이저버전, 마이너버전을 반환합니다.

Local 기본 정보(서버 정보)를 반환하는 메소드

request.getLocalAddr()

반환 예시 : 127.0.0.1
Local IP를 반환합니다.

request.getLocalName()

반환 예시 : localhost
Local Name을 반환합니다.

request.getLocalPort()

반환 예시 : 8080
Local Port를 반환합니다.

Remote 정보(클라이언트 정보)를 반환하는 메소드

request.getRemoteAddr()

반환 예시 : 127.0.0.1
Remote IP를 반환합니다.

request.getRemoteHost()

반환 예시 : 127.0.0.1
Remote Host를 반환합니다.

request.getRemotePort()

반환 예시 : 60361
Remote Port를 반환합니다.

Session ID에 대한 정보를 반환하는 메소드

request.getSession()

세션을 바인딩하여 반환하는 메소드입니다.

  • 세션ID가 없거나 탐색에 실패한 경우 세션을 새로 생성해 바인딩하고 반환합니다.
  • 클라이언트의 세션아이디에 해당하는 세션이 탐색된 경우 바인딩하고 반환합니다.
  • 세션이 바인딩 되어야만 서블릿에서 세션 사용이 가능합니다
  • 세션이 생성되어 바인딩 된 경우, 세션ID를 클라이언트에 쿠키로 전달하여 저장합니다.
반환값설명
session.isNew()true / false세션을 새로 생성해서 바인딩 한 경우 true
트랙킹해 반환하면 false
session.getId()39AE7AC19BC174D803C2A7BD8638E382세션아이디를 반환하는 메소드
클라이언트에 저장된 JSESSIONID 쿠키값과 동일

request.getRequestedSessionId()

반환 예시 : 39AE7AC19BC174D803C2A7BD8638E382

요청한 클라이언트에 지정된 세션의 ID를 문자열로 나타냅니다.

Parameter 정보를 반환하는 메소드

request.getParameterNames()

반환 예시 : java.util.Enumeration
모든 파라미터명을 반환합니다.

request.getParameter(name)

반환 예시 : /app/test.jsp?name=testName 과 같이 요청했을 경우 testName 을 반환

파라미터명으로 파라미터 값을 반환합니다.

모든 Parameter 값 표시

Enumeration params = request.getParameterNames();
while (params.hasMoreElements()) {
    String name = (String) params.nextElement();
    String value = request.getParameter(name);
    logger.debug(name + "=" + value);
}

rquest.getCookies()

반환 예시 : Array
모든 쿠키값을 반환합니다.

모든 쿠키값 표시

Cookie cookies[] = request.getCookies();
for(int i = 0; i < cookies.length; i++) {
    String name = cookies[i].getName();
    String value = cookies[i].getValue();
    logger.debug(name + "=" + value);
}

반환값

JSESSIONID=39AE7AC19BC174D803C2A7BD8638E382

Attribute 값을 반환하는 메소드

request.getAttributeNames()

모든 Attribute 속성 명을 Enumeration<String> 객체로 반환합니다.

request.getAttribute(name)

Attribute명으로 Attribute 값을 반환합니다.

모든 Attribute 값 표시

Enumeration<String> attrs = request.getAttributeNames();
while (attrs.hasMoreElements()) {
    String name = (String)attrs.nextElement();
    String value = (String)request.getAttribute(name);
    logger.debug(name + " : " + value);
}

Header 정보를 반환하는 메소드

request.getHeaderNames()

반환 예시 : java.util.Enumberation
모든 헤더 명을 반환합니다.

request.getHeader("user-agent")

반환 예시 : Mozilla/5.0...
헤더명으로 헤더값을 반환합니다.

모든 heaer 값 표시

Enumeration<String> headers = request.getHeaderNames();
while (headers.hasMoreElements()) {
    String name = (String) headers.nextElement();
    String value = request.getHeader(name);
    logger.debug(name + "=" + value);
}

반환 값

host=test.co.kr:8080
connection=keep-alive
cache-control=max-age=0
upgrade-insecure-requests=1
user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36
accept=text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/ *;q=0.8
accept-encoding=gzip, deflate
accept-language=ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7,ja;q=0.6,es;q=0.5
cookie=JSESSIONID=26356CFACA2FFA1B4AA25C75D291E028

0개의 댓글