ServletContextListener监听+Thread使用
2015-09-18 17:21
381 查看
package com.lanhuigu.util; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; /** * Servlet容器启动或终止Web应用时,会触发ServletContextEvent事件, * 该事件由ServletContextListener处理。在ServletContextListener接口中定义了处理ServletContextEvent事件的两个方法。 * 1.contextInitialized(ServletContextEvent sce) * 当servlet启动调用web应用时,调用该方法 * @author Administrator * */ public class TestServletContextListener implements ServletContextListener{ private static ScheduledExecutorService executorService = null; /** * 服务启动时,调用此方法 * 用途:服务启动时加载数据或执行某些特定的方法 */ @Override public void contextInitialized(ServletContextEvent sce) { //创建一个线程池,它可安排在给定延迟后运行命令或者定期地执行 executorService = Executors.newScheduledThreadPool(1); /* * scheduleAtFixedRate方法参数对应的含义: * (执行线程,服务启动后延时,间隔多长时间再次执行,间隔时间单位) *我测试设置的时间为服务启动后,每隔十秒执行一次线程 */ executorService.scheduleAtFixedRate(new TestThread(), 10, 10, TimeUnit.SECONDS); } /** * 当服务终止时,调用此方法 */ @Override public void contextDestroyed(ServletContextEvent sce) { System.out.println("服务停止"); } } //创建一个线程类 class TestThread extends Thread{ //线程方法 public void run(){ System.out.println("定时执行该线程!"); } }
####################################################################################################################################
创建一个web项目,以下为web.xml中监听的配置:
<listener> <listener-class> <!-- 自定义监听类 --> com.lanhuigu.util.TestServletContextListener </listener-class> </listener>
执行自己的监听类,控制台每隔10秒会输出一次:
定时执行该线程!
相关文章推荐
- 【烙铁使用规范】—— 延长无铅手工焊接工艺中烙铁头的寿命
- 省市二级联动
- 应用的代码没有用新的类库来进行编译(转)
- 在 Visual Studio 2013 中使用 Grunt, Bower 和 NPM
- iOS开发-文件管理
- mysql控制台操作
- jquery-chosen 选择框插件
- OpenDaylight Lithium 在ubunbtu下的安装
- IOS百度地图
- 密码 pasuwado题解
- stm32 中DMA的stream和channel关系
- CString string CStringA CStringW string wstring 等字符串转换汇总
- 数组中的each 和 jquery 中的 each
- 页面加载时执行js的几种方法
- percona-toolkit工具包的使用教程
- Android TextView 字体描边效果代码
- Maven项目部署到SAE & EL表达式不可用
- 前端性能优化(十一)
- mac下连接VirtualBox虚拟机(NAT模式)
- Codevs 1044 拦截导弹