Request 내장 객체 기능
- Client 정보 출력
- Server 정보 출력
- Header 출력
- Cookie 처리
- HTTP query 출력
Client 정보에서...
경로 반환 request.getRequestURI(), URL에서 쿼리 반환 request.getQueryString(), 클라이언트 IP 반환 request.getRemoteAddr(),
헤더 관련해서는 request.getHeaderNames() 로 모든 헤더 내용을 받아볼 수 있고,
Client 브라우저 정보 request.getHeader("user-agent"), 쿠키 정보 request.getHeader("cookie") 등...
request.getCookies() 로 모든 쿠키 내용을 확인할 수 있고...
하지만 가장 많이 사용하게 될 것은 HTTP 요청에 따른 파라미터 처리입니다.
// Query String : &name=lee&age=34&hobby=piano&hobby=guitar 일 때
String getParameter(String name)을 이용하면 name에 해당하는 단일값을 얻어낼 수 있습니다.
out.print( request.getParameter("name") );
out.print( request.getParameter("age") );
hobby 같이 다중값을 가진 파라미터에 대해서는 String[] getParameterValues(String name)을 사용하여 값을 얻을 수 있습니다.
String[] multiValues = request.getParameterValues("hobby");
for( int i=0; i<multiValues.length; i++ ) {
out.print(hobby[i]);
out.print("<br />");
}
쿼리 스트링의 모든 이름과 값을 얻고자 할 때는 Enumeration getParameterNames() 를 사용할 수 있습니다.
Enumeration allParam = request.getParameterNames();
while( allParam.hasMoreElements() ) {
String paramName = (String)allParam.nextElement();
String[] multiValues = request.getParameterValues(paramName);
for ( int i=0; i<multiValues.length; i++ ) {
out.print( paramName + " : " + multiValues[i] );
out.print("<br />");
}
}
모든 이름과 값을 얻는 방법으로 Map 인터페이스를 사용할 수도 있습니다. Map getParameterMap()
Map 인터페이스는 <Key, Value>로 구성된 집합이며, Key의 중복을 허용하지 않고, Key의 오름차순 자동 정렬이 되는 특징을 가집니다.
Map paramMap = request.getParameterMap();
Set paramKeySet = paramMap.keySet();
Iterator keyIterator = paramKeySet.iterator();
while( keyIterator.hasNext() ) {
String paramName = (String)keyIterator.next();
String[] multiValues = (String[])paramMap.get(paramName);
for ( int i=0; i<multiValues.length; i++ ) {
out.print( paramName + " : " + multiValues[i] );
out.print("<br />");
}
}
* Enumeration 과 Map 인터페이스는 java.util.* 을 import 해야 합니다.
WRITTEN BY
- 손가락귀신
정신 못차리면, 벌 받는다.