Tomcat服務器啓動時創建Servlet

------------------------Tomcat服務器啓動時創建Servlet-----------------------

Tomcat啓動時創建Servlet

有些Servlet需要在Tomcat啓動時就被創建,而不是第一次訪問時被創建,那麼可以在web.xml文件中配置<servlet>元素。

在<servlet>元素中添加子元素<load-on-startup>元素!

這個元素的值必須是一個大於等於0的整數!!!

    <servlet>

        <servlet-name>One</servlet-name>

        <servlet-class>com.rl.servlet.OneServlet</servlet-class>

        <load-on-startup>0</load-on-startup>

    </servlet>

    <servlet>

        <servlet-name>Two</servlet-name>

        <servlet-class> com.rl.servlet.TwoServlet</servlet-class>

        <load-on-startup>1</load-on-startup>

    </servlet>

 

所有添加了<load-on-startup>子元素的Servle,都會在Tomcat啓動時被創建!當然,只是被創建,但沒有處理請求!但我們知道在Servlet生命週期中init()方法會在創建後被調用,所以你可以在init()方法中做一些輸出,查看是否在Tomcat啓動時調用了它。

<load-on-startup>元素的值是一個序號,Tomcat會使用這個序號給多個Servlet排序!然後在Tomcat啓動時會按這個順序來創建Servlet實例對象!

 

代碼示例:

LoadOnServlet類:

package com.rl.servlet;

 

import java.io.IOException;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

public class LoadOnServlet extends HttpServlet {

 

       @Override

       protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

              System.out.println("doGet被調用");

              resp.getOutputStream().write("doGet被調用".getBytes());

       }

 

       @Override

       protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

              System.out.println("doPost被調用");

              doGet(req, resp);

       }

 

       @Override

       public void init() throws ServletException {

              System.out.println("LoadOnServlet實例被創建");

       }

      

}

 

Web.xml代碼:

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">

  <servlet>

      <servlet-name>httpServlet</servlet-name>

      <servlet-class>com.rl.servlet.HttpServletDemo</servlet-class>

      <load-on-startup>2</load-on-startup>

  </servlet>

 

  <servlet-mapping>

      <servlet-name>httpServlet</servlet-name>

      <url-pattern>/httpRequest</url-pattern>

  </servlet-mapping>

 

  <!-- 設置servlet的初始化的時機在服務器啓動時 -->

  <servlet>

      <servlet-name>loadOnServlet</servlet-name>

      <servlet-class>com.rl.servlet.LoadOnServlet</servlet-class>

      <!-- 元素的值是一個序號,Tomcat會使用這個序號給多個Servlet排序 -->

      <load-on-startup>1</load-on-startup>

  </servlet>

  <servlet-mapping>

      <servlet-name>loadOnServlet</servlet-name>

      <url-pattern>/loadOn</url-pattern>

  </servlet-mapping>

</web-app>

當服務器啓動的時候創建了Servlet對象

發佈了205 篇原創文章 · 獲贊 125 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章