loadOnStartup & load-on-startup
阿新 • • 發佈:2018-12-12
Servlet是單例物件
整個tomcat執行階段只有一個物件,預設情況第一次訪問的時候呼叫無引數的構造器建立物件,如果在web.xml檔案中配置類標籤<load-on-startup>
該物件的Servlet會隨著tomcat的啟動建立。(或在註解,tomcat啟動專案的時候會自動掃描所有Servlet檔案,有註冊會把註解和類關聯記錄loadOnStartup該servlet物件隨tomcat啟動而建立,值表示建立的優先順序值越小越先建立(負數是第一次訪問的時候建立(預設的)))
註解等價於web.xml的配置
package com.briup.web.Servelt; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /* * 註解等價於web.xml的配置 * <servlet> <servlet-name>four</servlet-name> <servlet-class>com.briup.web.Servelt.FourServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>four</servlet-name> <url-pattern>/FourSer</url-pattern> </servlet-mapping> * * 註解,tomcat啟動專案的時候 * 會自動掃描所有Servlet檔案, * 有註冊會把註解和類關聯記錄 * loadOnStartup該servlet物件隨tomcat啟動 * 而建立,值表示建立的優先順序 * 值越小越先建立(負數是第一次訪問 * 的時候建立(預設的)) */ //@WebServlet("/FourSer") @WebServlet(urlPatterns={"/FourSer", "/FS"},name="fourTT", loadOnStartup=0) public class FourServlet extends HttpServlet { private static final long serialVersionUID = 1L; /* * 1.Servlet是單例物件,整個tomcat執行 * 階段只有一個物件,預設情況 * 第一次訪問的時候呼叫無引數的 * 構造器建立物件,如果在web.xml檔案 * 中配置類標籤<load-on-startup> 該物件 * 的Servlet會隨著tomcat的啟動建立 * 2.構建物件之後呼叫init方法初始化 * 3.直接呼叫service方法,傳入封裝 * 好的ServletRequest物件和 * ServletResponse物件 * 4.tomcat正常關閉呼叫destory方法 */ public FourServlet() { System.out.println("FourServlet create"); } @Override public void destroy() { System.out.println("destroy......"); } @Override public void init() throws ServletException { System.out.println("init....."); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub System.out.println("service......"); response.getWriter().append("Served at: ").append(request.getContextPath()); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }