진짜 개발자
본문 바로가기

Web/JSP,Servlet

Servlet - Servlet 초기화 파라미터 사용방법(web.xml, 어노테이션)

728x90
Context Path

Servlet 초기화 파라미터

특정 Servlet이 생성될 때 초기에 필요한 데이터들이 있다. 이러한 데이터들을 초기화 파라미터라고 한다. 이러한 초기화 데이터를 사용하는 방법은 web.xml에 기술하는 방법과 Servlet @(어노테이션)을 이용해 파일에 직접 기술하는 방법이 있다. 여기서 중요한 점은 특정 Servlet에 제공하는 데이터라는 것이다. 모든 Servlet에 공통적으로 초기화 데이터를 제공하는 방법은 뒤에서 다룰 것이다.

 

1. web.xml에 기술

- WebContent의 하위 디렉토리인 WEB-INF를 확장하면 web.xml파일이 존재하는데 이곳에서 Servlet의 초기화 파라미터를 기술할 수 있다.

 

그림과 같이 <servlet>태그 안에 각각의 servlet을 구분할 수 있도록 <servlet-name>태그를 사용하고, 어느 servlet에 초기화 데이터를 제공할 것인지를 지정하기 위해 <servlet-class>태그에 패키지를 포함한 class 경로를 기술한다.

 

또한 <servlet> 태그안에 <init-param>태그를 이용하여 servlet에 제공할 초기화 데이터를 기술한다. <init-param> 태그안의 <param-name>태그는 servlet class에서 해당 초기화 데이터를 구분할 때 사용하며, <param-value>태그는 해당 초기화 데이터에서 제공할 데이터를 의미한다.

 

주의할 점으로 serlvet-mapping을 하지 않으면 초기화 데이터를 받아오지 못하므로 꼭 URL Mapping을 해주어야한다. <servlet>태그 밖에서 <servlet-mapping>태그를 이용하여 servlet을 url과 mapping시킨다. <servlet-name> 태그는 web.xml에 기술된 servlet중 어떤 servlet에 대해 url을 mapping할 것인지를 기술하는 태그이다. <url-pattern>태그는 이름에서 예측이 가능하듯 어떤 url요청이 왔을 때 servlet을 실행하도록 할지를 정하는 태그이다. (URL Mapping역시 web.xml에서 기술하는 방법과 @(어노테이션)을 이용하는 방법이 있다.)

 

 

servlet의 초기 파라미터를 모두 기술했으므로 이를 이제 사용해보자. getInitParameter()를 이용하여 호출하면 되는데 getInitParamter()의 매개변수에는 web.xml에서 <init-param> 태그 안의 <param-name>태그에 작성한 이름을 넘겨주면 된다.

 

getInitParameter() 메소드는 Servlet class안에 정의된것이 없음에도 그냥 사용가능한 이유는 우리의 Servlet 클래스가 상속하고 있는 HttpServlet클래스가 다시 상속하고 있는 GenericServlet클래스안에 getInitParameter() 메소드가 정의되어있기 때문이다.

 

 

실행결과는 그림과 같다.

 

 

2. @(어노테이션)을 이용 

@(어노테이션)을 이용하기 위해서 우선 Servlet 클래스의 상단에 @WebServlet어노테이션을 선언한다. Url을 매핑하기 위해서는 @Webserlvet어노테이션 안에 urlPatterns={"URL"}을 입력하면 된다. 초기화 파라미터를 작성하기 위해서는 ,로 구분하여 다시 initParams={}를 입력하고 그 안에 @WebInitParam어노테이션을 기술하고 다시 그안에 Parameter 정보를 기입하면 된다. name, value는 web.xml에 기술했던 방식과 마찬가지로 기입하면된다.