Servlet 基础-如何进行自启动配制

有的时候会有这样的业务需求: 
tomcat一启动,就需要执行一些初始化的代码,比如校验数据库的完整性等。 
但是Servlet的生命周期是在用户访问浏览器对应的路径开始的。如果没有用户的第一次访问,就无法执行相关代码。 
这个时候,就需要Servlet实现自启动 即,伴随着tomcat的启动,自动启动初始化,在初始化方法init()中,就可以进行一些业务代码的工作了。
  • load-on-startup

    在web.xml中,配置Hello Servlet的地方,增加一句
    <load-on-startup>10</load-on-startup>
    取值范围是1-99
    即表明该Servlet会随着Tomcat的启动而初始化。

    同时,为HelloServlet提供一个init(ServletConfig) 方法,验证自启动
    如图所示,在tomcat完全启动之前,就打印了init of HelloServlet
    <load-on-startup>10</load-on-startup> 中的10表示启动顺序
    如果有多个Servlet都配置了自动启动,小的数字先启动

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app>
     
        <servlet>
            <servlet-name>HelloServlet</servlet-name>
            <servlet-class>HelloServlet</servlet-class>
            <load-on-startup>10</load-on-startup>
        </servlet>
     
        <servlet-mapping>
            <servlet-name>HelloServlet</servlet-name>
            <url-pattern>/hello</url-pattern>
        </servlet-mapping>
         
        <servlet>
            <servlet-name>LoginServlet</servlet-name>
            <servlet-class>LoginServlet</servlet-class>
        </servlet>
     
        <servlet-mapping>
            <servlet-name>LoginServlet</servlet-name>
            <url-pattern>/login</url-pattern>
        </servlet-mapping>   
     
    </web-app>
    import java.io.IOException;
    import java.util.Date;
     
    import javax.servlet.ServletConfig;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    public class HelloServlet extends HttpServlet{
         
        public void init(ServletConfig config){
            System.out.println("init of Hello Servlet");
        }
     
        public void doGet(HttpServletRequest request, HttpServletResponse response){
             
            try {
                response.getWriter().println("<h1>Hello Servlet!</h1>");
                response.getWriter().println(new Date().toLocaleString());
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
         
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值