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对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值