본문 바로가기

Develop/JAVA & Spring

JSP/Servlet에서 사용하는 Request 객체의 메소드

출처 : 미니의 XML DeveloperGroup (http://www.word.pe.kr)

클라이언트 IP 등의 정보를 가져오거나, 쿠키, 헤더, GET/POST로 전송한 값을 가져오는데 주로 사용하는 것이 바로 Request입니다.


JSP/Servlet에서 사용하는 Request 객체의 메소드를 대략적으로 정리해 봤습니다. 


이 Request 객체는 javax.servlet.http 패키지에 속한 HTTPServletRequest 인터페이스로서 javax.servlet.ServletRequest 인터페이스에서 상속을 받았습니다. 


그래서 제가 정리하려는 내용은 javadoc의 다음 부분에 아주 자세히 나와 있습니다. 

나중에 영어로 된 거 또 읽어보기 싫어서 정리해보는 거네요~~ 


http://java.sun.com/j2ee/1.4/docs/api/javax/servlet/http/HttpServletRequest.html 


http://java.sun.com/j2ee/1.4/docs/api/javax/servlet/ServletRequest.html


주로 사용하는 정보만을 보여주는 간단한 jsp 파일을 구성해 봤습니다. 

jsp 파일 두개로 되어 있구요.. 소스는 걍 여기서 받으면 됩니다. 소스받기 : request.zip


index.jsp 파일을 열고 난 후.. 링크를 클릭하면 request에서 처리할 수 있는 정보들이 나타납니다. 

request.jsp 파일의 내용이 주로 설명할 것인데요.. 뭐 이미 잘 알려진 거라 특별히 새로울 것은 없습니다. 


먼저 local의 기본 정보(IP, Name, Port)를 보여줍니다. local이라 하면 일반적으로 서버를 의미하는 것이겠죠.. 

Local IP : <%=request.getLocalAddr()%>

Local Name : <%=request.getLocalName()%>

Local Port : <%=request.getLocalPort()%>


다음으로 클라이언트의 정보입니다. IP, Host, Port를 가져올 수 있습니다.

Remote IP : <%=request.getRemoteAddr()%>

Remote Host : <%=request.getRemoteHost()%>

Remote Port : <%=request.getRemotePort()%>


이어서 서버 이름과 포트가 있는데요.. 일반적으로 local 기본정보와 동일하겠죠.. 

Server Name : <%=request.getServerName()%>

Server Port : <%=request.getServerPort()%>


지역 정보입니다. 대부분 한국을 의미하는 ko가 나올 것 같네요..

Locale : <%=request.getLocale()%>


사용하는 프로토콜입니다. "프로토콜/메이저버전.마이너버전" 의 형태입니다.

Protocol : <%=request.getProtocol()%>


http, https, ftp와 같은 것을 의미합니다. 

Scheme : <%=request.getScheme()%>


https와 같은 보안 채널의 사용 여부입니다. true/false 값으로 되어 있네요..

Secure Channel : <%=request.isSecure()%>


요청에 대한 URI, URL, 컨텍스트 경로, 서블릿 경로, GET/POST등의 메소드를 나타냅니다.

Request's URI : <%=request.getRequestURI()%>

Request's URL : <%=request.getRequestURL()%>

Context Path : <%=request.getContextPath()%>

Servlet Path : <%=request.getServletPath()%>

Method : <%=request.getMethod()%>


세션 ID에 대한 정보들입니다. 

Session ID : <%=request.getRequestedSessionId()%>

Session ID from Cookie : <%=request.isRequestedSessionIdFromCookie()%>

Session ID from URL : <%=request.isRequestedSessionIdFromURL()%>

Session ID is still valid : <%=request.isRequestedSessionIdValid()%>



그리고 다음은 Header 정보를 보는 방법입니다. 

<%

 Enumeration eHeader = request.getHeaderNames();

 while (eHeader.hasMoreElements()) {

  String hName = (String)eHeader.nextElement();

  String hValue = request.getHeader(hName);


  out.println(hName + " : " + hValue);

 }

%>


Request 객체를 통해서 쿠키 정보를 보는 방식이구요~

<%

 Cookie cookies[] = request.getCookies();

 for (int i=0; i < cookies.length; i++) {

  String name = cookies[i].getName();

  String value = cookies[i].getValue();


  out.println(name + " : " + value);

 }

%>


HTML 폼을 통해 넘어온 데이터를 받는 부분입니다. 

<%

 Enumeration eParam = request.getParameterNames();

 while (eParam.hasMoreElements()) {

  String pName = (String)eParam.nextElement();

  String pValue = request.getParameter(pName);


  out.println(pName + " : " + pValue);

 }

%>


미리 설정한 attribute를 가져오는 부분이구요..

<%

 Enumeration eAttr = request.getAttributeNames();

 while (eAttr.hasMoreElements()) {

  String aName = (String)eAttr.nextElement();

  String aValue = request.getHeader(aName);


  out.println(aName + " : " + aValue);

 }

%>


갑자기 Request에 대한 정보를 파악할 필요가 있어 정리하면서 올려봅니다.

'Develop > JAVA & Spring' 카테고리의 다른 글

request 내용 확인  (0) 2016.11.08
string(문자열) 비교 ==, equals 의 차이  (0) 2016.10.26
올바른 equals() 사용법  (0) 2016.10.26
Java - Null Check 및 String 비교  (0) 2016.10.24
[JAVA] 자바 문자열 함수  (0) 2016.10.06