web程序启动时执行一段代码

有两种方法,一种是监听(Listener),第二种是配置随项目启动而启动的Servlet。
监听(Listener)
首先,我们创建一个监听的类,继承ServletContextListener,如下

package com.excellence.exportal.portal.common.listener;
    import javax.servlet.ServletContextEvent;
    import javax.servlet.ServletContextListener;
    import com.excellence.exportal.portal.common.util.ThemeUtil;

    public class DataInitListener implements ServletContextListener{

    public void contextInitialized(ServletContextEvent sce) {
        ThemeUtil.unZipAllTheme(sce.getServletContext());
        System.out.println("===================DataInitListener启动!!!");
    }

    public void contextDestroyed(ServletContextEvent sce) {
        System.out.println("===================DataInitListener销毁!!!");
    }
}

然后,在web.xml中配置如下:

<listener>
        <listener-class>
            com.excellence.exportal.portal.common.listener.DataInitListener
        </listener-class>
    </listener> 
2·使用Servlet,在项目启动的时候启动它。
首先,创建一个Servlet,继承HttpServlet
package com.excellence.exportal.portal.common.listener;
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import com.excellence.exportal.portal.common.util.ThemeUtil;


    public class MyListener extends HttpServlet{
    private static final long serialVersionUID = 1L;  
        public MyListener(){
        }     

     public void init(){  
        System.out.println("===================MyListener启动!!!");
       }  

       public void doGet(HttpServletRequest httpservletrequest, HttpServletResponse httpservletresponse)  
          throws ServletException, IOException{  
      }  

     public void destory(){  
      }  
    }

然后,在web.xml中配置

<servlet>  
        <servlet-name>MyListener</servlet-name>  
        <servlet-class>com.excellence.exportal.portal.common.listener.MyListener</servlet-class>  
        <load-on-startup>9</load-on-startup><!-- 数字越小,启动的优先级越高,必须大于0 -->  
    </servlet> 
    <servlet-mapping>    
        <servlet-name>MyListener</servlet-name>    
        <url-pattern>/test</url-pattern>     
    </servlet-mapping> 
其中,Listener的方式比任何一个Servlet都要先启动。而Servlet的方式可以设置与其它Servlet启动的顺序。如果有时候需要首先启动一个Servlet或者它们之间的启动顺序有特殊要求的时候就可以用Servlet了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值