출처 : 미니의 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와 같은 것을 의미합니다.
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에 대한 정보를 파악할 필요가 있어 정리하면서 올려봅니다.
- 출처 : 호러블캣의 연구소 -
- 원문출처 : 미니의 XML DeveloperGroup (http://www.word.pe.kr) -
'Dev > endeca' 카테고리의 다른 글
healthcheck URL (0) | 2009.03.03 |
---|---|
webstudio backup, restore (0) | 2009.02.18 |
jspref에서 merchandising rule 보이게 하기 (310) | 2009.02.10 |
query result xml로 보기 (0) | 2008.12.18 |
obtain lock (0) | 2008.12.17 |