web.xml 에 서블릿 등록시 <init-param> 태그를 사용해 초기화 매개변수를 등록할 수 있다.

1
2
3
4
5
6
7
8
9
10
....
<servlet>
    <servlet-name>서블릿 이름</servlet-name>
    <servlet-class>서블릿 클래스</servlet-class>
    <init-param>
        <param-name>초기화 매개변수 명</param-name>
        <param-value>초기화 매개변수 값</param-value>
    </init-param>
</servlet>
....

서블릿 클래스(GenericServelt or HttpServlet)의 getInitParameter("매개변수명") 을 통해 값을 가져올 수 있다.

또는 ServletConfig를 상속 받은 다른 클래스나 ServletConfig 객체 생성 후 매개변수를 가져올 수 도 있다.


예제)

web.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
....
  <servlet>
    <servlet-name>InitParam</servlet-name>
    <servlet-class>com.study.InitParamTest</servlet-class>
 
    <init-param>
        <param-name>nick</param-name>
        <param-value>hoya</param-value>
    </init-param>
 
    <init-param>
        <param-name>age</param-name>
        <param-value>18</param-value>
    </init-param>
  </servlet>
   
  <servlet-mapping>
    <servlet-name>InitParam</servlet-name>
    <url-pattern>/InitParam.do</url-pattern>
  </servlet-mapping>
....


InitParamTest.java

1
2
3
4
5
6
7
8
9
10
11
12
package com.study;
 
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
public class InitParamTest extends HttpServlet {
    public void service(HttpServletRequest _request, HttpServletResponse _response) {
        System.out.println("nick: " + this.getInitParameter("nick"));              
        System.out.println("age: " + this.getInitParameter("age"));            
    }
}


Posted by 후니아부지