您的位置:首页 > 编程语言

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

2016-08-06 16:44 453 查看
有两种方法,一种是监听(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了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java