'Implicit Object'에 해당하는 글 7건

Response object

Programming/JSP 2013. 4. 11. 00:28

Response 내장 객체의 기능

 

  • 응답 페이지 설정
  • 클라이언트로 전달될 헤더 설정. addHeader(), setHeader()
  • 페이지 redirect

 

 

<%@ page contentType="text/html; charset=utf-8" %>

 

jsp 에서는 응답 페이지의 MIME 타입과 문자 인코딩을 설정하는 방법으로 page 지시문을 이용합니다만,
직접 설정할 필요가 있을 때는 아래와 같이 기술하도록 합니다.

 

response.setContentType("text/html");
response.setCharacterEncoding("utf-8");

 

 

redirect 는 sendRedirect() 메소드를 이용합니다.

 

<% response.sendRedirect("xxx.jsp"); %>

 

redirect 되고나면 응답 헤더에 다음과 같이 정보가 추가될 것입니다.

 

HTTP/1.1 302 Found (originally temporary redirect)
Location: xxx.jsp


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

Requset object

Programming/JSP 2013. 4. 9. 23:17

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
손가락귀신
정신 못차리면, 벌 받는다.

,