자바(Java)/JAVA 2EE

java.servlet 패키지의 ServletConfig와 ServletContext 인터페이스

본클라쓰 2010. 12. 8. 17:04

 

 ServletConfig 인터페이스는 서블릿 컨테이너가 서블릿이 초기화될 때 필요한 정보를 전달하기 위해 사용하는 인터페이스로 서블릿의 구성을 정의하고 있다. 서블릿 컨테이너는 ServletConfig 인터페이스를 구현한 객체를 통해 서블릿에게 추기화 파라미터나 서버와 관련된 정보를 서블릿에게 제공해주고 있다. 이 때 ServletConfig 객체는 ServletContext 객체를 포함하고 있다.

 

 

ServletConfig 인터페이스 메소드

메 소 드

설 명

String getInitParameter(String name)

name/value 쌍으로 이루어진 초기화 파리미터에서 전달된 name에 해당하는 값을 반환한다. (초기값은 web.xml에 작성한다.)

Enumeratioin getInitParameterNames()

초기화 파라미터들의 이름에 대한 Enumeration객체를 반환

ServletContext getServletContext()

서버가 서블릿에게 전달해 준 ServletContext객체를 반환

 

 

 

ServletContext 인터페이스

 

 서블릿 클래스와 서블릿 켄테이너간 통신을 위한 메소드들을 정의하고 있다. ServletContext 객체는 ServletConfig 객체에 포함되어 있다. 따라서 ServletConfig.getServletContext() 메소드를 사용하면 ServletContext 객체를 얻을 수 있다.  

 

ServletContext 인터페이스 메소드)

메 소 드

설 명

Object getAttribute(String name)

주어진 이름의 서블릿 컨테이너의 속성을 반환

Enumeration getAttributeNames()

서블릿 컨테이너의 속성에 대해 이름들을 Enumeration 객체를 반환

void removeAttribute(String name)

서블릿 컨텍스트로부터 주어진 이름의 속성을 제거

void setAttribute(String name, Object obj)

서블릿 컨텍스트에 주어진 이름의 속성을 추가

ServletContext getContext(String url)

주어진 서버 상의 url에 해당하는 ServletContext객체를 반환

int getMajorVersion()

웹 서버가 지원하는 자바 서블릿 API의 major 버전을 반환

int getMinorVersion()

웹 서버가 지원하는 자바 서블릿 API의 minor 버전을 반환

String getMimeType(String file)

문자열로 주어진 파일에 대한 MIME 타입을 반환

String getRealPath(String path)

주어진 가상 디렉토리의 실제 경로를 반환

RequestDispatcher getRequestDispatcher(String url)

주어진 경로에 위치에 있는 자원을 위한 wrapper로 작동하는 RequestDispatcher 객체를 반환

URL getResource(String path)

주어진 경로에 매핑되는 자원을 반환

InputStream getResourceAsStream(String path)

주어진 경로에 매핑되는 자원으로부터 입력받을 수 있는 입력 스트림을 반환

Enumeration getServlets()

자바 서블릿 API 2.0부터 제거

void log(Exception exc, String msg)

자바 서블릿 API 2.0부터 제거

void log(String msg)

서블릿 로그 파일에 주어진 메시지를 기록한다.

void log(String msg, Throwable t)

스택의 내용과 주어진 예외가 가지는 확장 메시지를 서블릿 로그 파일에 기록

String getServletInfo()

서블릿이 실행되고 있는 서블릿 엔진의 이름과 버전을 반환

 

 

 

ServletConfig 객체와 ServletContext 객체를 얻는 방법

 

GenericServlet 클래스를 상속받아 서블릿을 작성할 때는 쉽게 얻을 수 있습니다. SevletConfig 객체를 얻는 코드는 아래와 같습니다.

 

public class ServletExample extends GenericServlet {

    public void service(ServletRequest req, ServletResponse res) {

        ServletConfig config = getServletConfig();  // ServletConfig 객체 얻기

        ServletContext context = config.getServletContext();   // ServletContext 객체 얻기

    }

}

 

하지만 GenericServlet 클래스를 상속받아 서블릿을 작성하지 않는 경우는 위와 같이 서블릿 정보를 얻을 수 없습니다.