1. 정의
web.xml 에서 서블릿 설정시 들어가는 숫자
해당 서블릿의 init() 메소드가 호출되는 시기와 순서를 정하는 것
보통의 서블릿은 반드시 '해당 서블릿'에 최초 요청이 들어올 때에만 해당 인스턴스화 초기 설정을 하게 되는데, 시간이 너무 오래 걸리기 때문에 Context의 웹 애플리케이션이 톰캣에 의해 인식되는 시점에 서블릿이 초기화 되도록 설정하는 것
(애노테이션이나 web.xml에 설정한 이름으로 서블릿을 호출하기 전에, 미리 톰캣 시작될 때 해당 서블릿을 호출하는 기술)
2. 방법
음수 : 톰캣 실행시 자동으로 서블릿이 호출되지 않고 load-on-startup을 설정하지 않은 서블릿과 동일해짐(일반 서블릿)
양수 : 0에 가까울수록 먼저 초기화됨. 같은 숫자가 mapping되었을 경우 먼저 작성된 서블릿부터 초기화됨
3. 예시
1) web.xml 에 mapping하는 경우
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <display-name>Customer Support Application</display-name> <servlet> <servlet-name>TicketServlet</servlet-name> <servlet-class>/tickets</servlet-class> <load-on-startup>1</load-on-startup> </servlet> </web-app> | cs |
2) 애노테이션으로 mapping하는 경우
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | package com.wrox; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.annotation.MultipartConfig; import javax.servlet.annotation.WebServlet; import javax.servlet.http.*; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.LinkedHashMap; import java.util.Map; //loadOnStartup : tomcat 실행시 무조건 실행(서블릿 실행시가 아니라) // 숫자가 0보다 크면 서버가 시작될 때 무조건 해당 서블릿을 초기화 // (숫자가 0에 가까울 수록 먼저 초기화, 숫자 중복시 먼저 작성된 서블릿부터 초기화) // 숫자가 음수일 경우 톰캣 호출시 서블릿이 호출되지 않고 그냥 보통의 서블릿으로 적용됨 // web.xml에서 설정 가능 @WebServlet(name = "TicketServlet", urlPatterns = { "/tickets" }, loadOnStartup = 1) public class TicketServlet extends HttpServlet { private static final long serialVersionUID = 1L; | cs |
'Server > Tomcat' 카테고리의 다른 글
Tomcat :: java.lang.OutOfMemoryError : PermGen space 에러 (0) | 2018.06.12 |
---|---|
Tomcat :: web.xml의 welcome-file-list (0) | 2016.12.15 |
Tomcat :: 서블릿 버전별 web.xml DTD 선언 (스키마 방식) (0) | 2016.11.23 |
Tomcat :: tomcat8 이상 사용시 Context Resource factory 주의 사항 (3) | 2016.11.21 |