web.xml의 초기화 파라미터, 즉 서블릿의 init() 시에 서블릿을 바로 객체화 시키는 데 사용하는 것이
<load-on-startup> 태그이다. 태그의 몸통 부분에는 WAS 구동시 초기화 순서를 지정한다.
예를 들어 InternalResourceViewResolver나 DispatcherSerlvet 같은 경우, Default 서블릿 같은 경우에 사용하는 듯 싶다.
또한 서블릿 객체화 시에 parameter를 줄 수도 있는데 이는 <init-param>으로 정의한다.
<init-param>의 자식태그로 <param-name>을 줘서 파라미터 이름을 지정하고 <param-value>태그로 값을 정의한다.
DispatcherSerlvet의 경우는 dispatcher 가 <param-name>인 것으로,
<param-value> 값에 org.springframework.web.serlvet.DispatcherServlet 인 것으로 기억하고 있다.
<servlet>
<servlet-name>initMethod1</servlet-name>
<servlet-class>chap17.initMethodEx1</servlet-class>
<load-on-startup>1</load-on-startup> <!-- 톰캣이 가동하자마자 servlet이 시작하게 하게끔 하는 명령어임. 몸통에는 순서를 정한다. -->
</servlet>
<servlet>
<servlet-name>initMethod2</servlet-name>
<servlet-class>chap17.initMethodEx2</servlet-class>
<load-on-startup>2</load-on-startup> <!-- 톰캣이 가동하자마자 servlet이 시작하게 하게끔 하는 명령어임. 몸통에는 순서를 정한다. -->
</servlet>
<servlet>
<servlet-name>initparam servlet</servlet-name>
<servlet-class>chap17.InitParamServletEx1</servlet-class>
<init-param>
<param-name>name1</param-name> <!-- 미리 정의된 값을 서블릿에서 읽어낼 수 있도록 한다. -->
<param-value>value1</param-value>
</init-param>
<init-param>
<param-name>name4</param-name>
<param-value>value4</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>initparam servlet</servlet-name>
<url-pattern>/InitParamEX1</url-pattern> <!-- web.xml에 정의된 서블릿은 web.xml에서 맵핑해야 InitParam을 가져올 수 있다. -->
</servlet-mapping>
어노테이션으로 초기화 파라미터를 주는 방법은 initParams 속성에 @webInitParam 의 속성값으로 키와 벨류를 준다.
@WebServlet(urlPatterns = {"/InitParamEX1-1"} , initParams = {
@WebInitParam(name = "name1", value = "value1" )
, @WebInitParam(name = "name3" , value = "value3")})
public class InitParamServletEx1 extends HttpServlet {
두 방법은 같이 불러올 수가 없으므로 일관되게 정의하는게 중요하다.
xml 작성규칙 상 각 옵션은 & 로 정의하며 어노테이션 방식에서는 &를 엔티티로 쓴다. MyBatis 구동 과정을 참고하자.
<init-param>
<param-name>jdbcUrl1</param-name>
<param-value>
jdbc:mysql://localhost:3306/chap14?characterEncoding=utf8&name=p
</param-value>
</init-param>
<init-param>
<param-name>jdbcUrl2</param-name>
<param-value>
jdbc:mysql://localhost:3306/chap14?characterEncoding=utf8&name=p
</param-value>
</init-param>
'JSP & Servlet' 카테고리의 다른 글
Filter 에서 요청, 응답 값 조작하기. Wrapper 클래스 (0) | 2020.07.17 |
---|---|
Filter.1 (0) | 2020.07.17 |
**Servlet 경로매핑 , 우선순위.** (0) | 2020.07.16 |
<%@ include %> (0) | 2020.07.14 |
2020 jsp(java server page) & servlet(ServerApplicationLet) 14.입력할 내용이 많은 경우는 POST 요청 (0) | 2020.06.27 |