- 浏览: 1233377 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (399)
- 心情故事 (12)
- java (115)
- linux (55)
- 关系型数据库 (35)
- struts,jsf,spring (11)
- jdbc,hibernate,ibatis (11)
- jsp,jstl,c:tag,标签库 (2)
- ejb,webservice (1)
- tomcat,jboss,jetty,weblogic,websphere (15)
- java网络编程 (6)
- java线程 (0)
- js,jquery,json,xml,dom,html.regex (25)
- 设计模式 (6)
- BUG记录 (2)
- ant (2)
- jsp,servlet (4)
- swing (6)
- lucene+nutch (6)
- log4j (2)
- windows doc (2)
- ruby (1)
- ruby on rails (3)
- 操作系统网络 (18)
- apache 错误 (1)
- tomcat (10)
- jboss (9)
- jetty (9)
- weblogic (9)
- websphere (10)
- apache (2)
- AIX的iostat命令查看系统磁盘的使用情况 (1)
- oracle 统计一个表格有多少列 (1)
- Exception in thread "main" java.security.KeyStoreException: Windows-MY not found (1)
- jsp (1)
- jstl (1)
- c:tag (1)
- 标签库 (1)
- struts (1)
- jsf (1)
- spring (2)
- oracle,sqlplus (2)
- sqlplus (2)
- show errors (1)
- proc (1)
- function (1)
- ORA-06544: PL/SQL: internal error (1)
- arguments: [55916] (1)
- [] (7)
- 终端身份实施文档 (1)
- 重装系统之后飞鸽传书只能看到自己 (1)
- vsftp "上传 553 Could not create file" (1)
- startWebLogic.sh启动失败,提示Error initializing Embedded LDAP Server (1)
- java agent 注册为 windows 服务 (1)
- centos (1)
- svn (1)
- apr (1)
- apr-util (1)
- activemq (2)
- oracle (5)
- mysql (3)
- nosql (3)
- NSIS (1)
- windows wmic (1)
- c 指针 (1)
- c c++ (0)
- jmeter (0)
- 性能测试 (0)
- linux,备份 (2)
- C++ ,Virtual (1)
- windows dos (1)
- android (2)
- 大数据,云计算 (1)
- JVM垃圾收集 (1)
- jdbc (2)
- invoke (1)
- hibernate (1)
- ibatis (1)
- 个人开源项目源码收藏 (1)
- 批处理 (1)
- Mongodb mapreduce (8)
- kettle (1)
- Mongodb capped (1)
- mongodb gridfs (1)
- Mongodb 入门基础知识 (1)
- mongodb (8)
- hadoop2.5.1 (1)
- hadoop (4)
- eclipse (1)
- hdfs fs (1)
- elipse hadoop plugin (1)
- PHP相关知识 (1)
- js (1)
- jquery (1)
- json (1)
- xml (1)
- dom (1)
- html.regex (1)
- 网络知识 (1)
- nginx (1)
- docker (1)
- 测试 (1)
- nodejs (1)
- iptables (1)
- linux gitlab (1)
最新评论
-
July01:
最近了解到一款StratoIO打印控件,功能如下:1、Html ...
web页面调用window.print()函数实现打印的功能 -
hxdtech:
非常感谢!
我在学习ibatis时的培训ppt -
zmwxiaoming:
what 能连数据库不错
SOLR的学习整理 -
springdata_springmvc:
java程序语言学习教程 地址http://www.zuida ...
java获取当前操作系统的信息 -
huanzei:
整理的不错,
oracle lpad函数
1public abstract interface javax.servlet.ServletContextListener extends java.util.EventListener 。此类继承java的事件处理类EventListener, ServletContextListener有两个抽象方法。分别是:
Apublic abstract void contextInitialized(javax.servlet.ServletContextEvent arg0);// 当web服务器启动的时候启动此方法
Bpublic abstract void contextDestroyed(javax.servlet.ServletContextEvent arg0);//当web服务器关闭的时候调用此方法,(但我在测试的时候却看不到它的调用)。
2假如我们像在web服务启动或则关闭的时候做一些事情,那么只需要写一个类实现ServletContextListener接口就可以了。
3一般会做定时的处理之类的操作,就要用到Timer :一种线程设施,用于安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。
Timer () 创建一个新计时器。 |
Timer (boolean isDaemon) 创建一个新计时器,可以指定其相关的线程作为守护程序运行。 |
Timer (String name) 创建一个新计时器,其相关的线程具有指定的名称。 |
Timer (String name, boolean isDaemon) 创建一个新计时器,其相关的线程具有指定的名称,并且可以指定作为守护程序运行 |
void |
cancel () 终止此计时器,丢弃所有当前已安排的任务。 |
int |
purge () 从此计时器的任务队列中移除所有已取消的任务。 |
void |
schedule (TimerTask task, Date time) 安排在指定的时间执行指定的任务。 |
void |
schedule (TimerTask task, Date firstTime, long period) 安排指定的任务在指定的时间开始进行重复的固定延迟执行 。 |
void |
schedule (TimerTask task, long delay) 安排在指定延迟后执行指定的任务。 |
void |
schedule (TimerTask task, long delay, long period) 安排指定的任务从指定的延迟后开始进行重复的固定延迟执行 。 |
void |
scheduleAtFixedRate (TimerTask task, Date firstTime, long period) 安排指定的任务在指定的时间开始进行重复的固定速率执行 。 |
void |
scheduleAtFixedRate (TimerTask task, long delay, long period) 安排指定的任务在指定的延迟后开始进行重复的固定速率执行 。 |
TimerTask类:由 Timer 安排为一次执行或重复执行的任务。
boolean |
cancel () 取消此计时器任务。 |
abstract void |
run () 此计时器任务要执行的操作。 |
long |
scheduledExecutionTime () 返回此任务最近实际 执行的安排 执行时间。 |
4我的测试代码:
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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>servlet</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<listener>
<listener-class>com.servlet.listener.teslistener.MytestListener</listener-class>
</listener>
</web-app>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>servlet</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<listener>
<listener-class>com.servlet.listener.teslistener.MytestListener</listener-class>
</listener>
</web-app>
MytestListener 写道
package com.servlet.listener.teslistener;
import java.util.Timer;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class MytestListener implements ServletContextListener {
private Timer timer = null;
@Override
public void contextInitialized(ServletContextEvent event) {
event.getServletContext().log("服务器正在启动。。。。。。。。");
timer = new Timer(true);
timer.schedule(new DoTask(), 0, 5 * 1000);
}
/* 当我手动在eclipse里关闭服务器,缺看不到这个方法的执行,
* 当程序在服务器上运行, 而我要改它代码的时候,
* 就能看到这个方法的运行,不知道是为什么 */
@Override
public void contextDestroyed(ServletContextEvent event) {
timer.cancel();
event.getServletContext().log("服务器已经关闭。。。。。。。");
}
}
import java.util.Timer;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class MytestListener implements ServletContextListener {
private Timer timer = null;
@Override
public void contextInitialized(ServletContextEvent event) {
event.getServletContext().log("服务器正在启动。。。。。。。。");
timer = new Timer(true);
timer.schedule(new DoTask(), 0, 5 * 1000);
}
/* 当我手动在eclipse里关闭服务器,缺看不到这个方法的执行,
* 当程序在服务器上运行, 而我要改它代码的时候,
* 就能看到这个方法的运行,不知道是为什么 */
@Override
public void contextDestroyed(ServletContextEvent event) {
timer.cancel();
event.getServletContext().log("服务器已经关闭。。。。。。。");
}
}
DoTask 写道
package com.servlet.listener.teslistener;
import java.util.Calendar;
import java.util.Date;
import java.util.TimerTask;
public class DoTask extends TimerTask {
private static final int defaul_hour=0;
private static final String default_date = "2009-04-25 17:44:00";
@Override
public void run() {
int result=compare();
System.out.println("result is =========="+result);
if(result<0){
Calendar cal=Calendar.getInstance();
// if(cal.get(Calendar.HOUR_OF_DAY)==defaul_hour){
// showConsoleMessage();
// }
showConsoleMessage();
}
else{
System.out.println("时间已经到了,定时器不能在执行。。。。。。");
}
}
public void showConsoleMessage(){
int a=1;
int b=2;
System.out.println("a and b is:"+(a+b));
System.out.println("now time is "+new Date().toString());
}
public int compare(){
String currentTime=GetCurrentTime.getCurrentTime();
int result=TimeCompare.timeCompare(currentTime,default_date);
return result;
}
}
import java.util.Calendar;
import java.util.Date;
import java.util.TimerTask;
public class DoTask extends TimerTask {
private static final int defaul_hour=0;
private static final String default_date = "2009-04-25 17:44:00";
@Override
public void run() {
int result=compare();
System.out.println("result is =========="+result);
if(result<0){
Calendar cal=Calendar.getInstance();
// if(cal.get(Calendar.HOUR_OF_DAY)==defaul_hour){
// showConsoleMessage();
// }
showConsoleMessage();
}
else{
System.out.println("时间已经到了,定时器不能在执行。。。。。。");
}
}
public void showConsoleMessage(){
int a=1;
int b=2;
System.out.println("a and b is:"+(a+b));
System.out.println("now time is "+new Date().toString());
}
public int compare(){
String currentTime=GetCurrentTime.getCurrentTime();
int result=TimeCompare.timeCompare(currentTime,default_date);
return result;
}
}
GetCurrentTime 写道
package com.servlet.listener.teslistener;
import java.text.SimpleDateFormat;
import java.util.Date;
public class GetCurrentTime {
/*获得当前时间*/
public static String getCurrentTime(){
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = formatter.format(currentTime);
return dateString;
}
}
import java.text.SimpleDateFormat;
import java.util.Date;
public class GetCurrentTime {
/*获得当前时间*/
public static String getCurrentTime(){
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = formatter.format(currentTime);
return dateString;
}
}
TimeCompare 写道
package com.servlet.listener.teslistener;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class TimeCompare {
/*时间比大小*/
public static int timeCompare(String t1,String t2){
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar c1=Calendar.getInstance();
Calendar c2=Calendar.getInstance();
try {
c1.setTime(formatter.parse(t1));
c2.setTime(formatter.parse(t2));
} catch (ParseException e) {
e.printStackTrace();
}
int result=c1.compareTo(c2);
return result;
}
}
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class TimeCompare {
/*时间比大小*/
public static int timeCompare(String t1,String t2){
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar c1=Calendar.getInstance();
Calendar c2=Calendar.getInstance();
try {
c1.setTime(formatter.parse(t1));
c2.setTime(formatter.parse(t2));
} catch (ParseException e) {
e.printStackTrace();
}
int result=c1.compareTo(c2);
return result;
}
}
- servlet.rar (8.9 KB)
- 下载次数: 32
发表评论
-
centos6.5 hadoop伪分布式搭建
2017-01-10 10:41 25打算整理下machine learn ,再次安装 ... -
springboot
2016-12-29 11:13 2319微服务,现在是一个越来越热的东西,软件架构发展到 ... -
elk安装记录
2016-12-27 18:04 947在centos6.5上安装elk,记录下安装过程和 ... -
dubbo服务框架
2016-12-23 15:40 443上一篇文章介绍了zookeeper,作为服务 ... -
zookeeper服务注册中心配置
2016-12-22 11:40 1624用zookeeper有一段时间了,把配置做下简 ... -
OS X 安装java开发环境
2016-12-03 23:29 548... -
关于Restful API 的设计
2015-06-12 13:32 2230Restful API的流行,很大程度上被当前的移动 ... -
Jvisualvm远程连接tomcat配置:
2015-05-12 16:16 746JvisualVm 监控远程Tomcat,需要在To ... -
jdbc mybatis hibernate springJDBC的一些理解
2015-01-15 17:10 7018... -
Java 的ExecutorService
2015-01-15 11:45 1163早期在Java5以前,我们做多线程程序,一般都 ... -
spring的IOC和AOP
2015-01-14 16:47 2316关于Spring,大家都是耳熟 ... -
java 的线程安全
2014-12-30 14:43 857现代CPU基本都是多核,支持 ... -
JVM ClassLoader
2014-12-25 16:33 880JVM在加载类的时候,都是通过ClassLoad ... -
minor Gc ,Full Gc
2014-12-24 17:22 2058在发生Minor gc之前,虚拟机会先检查老年带最 ... -
Java的主要垃圾回收器
2014-12-24 16:33 1262对象 ... -
JVM的内存结构的一点理解
2014-12-24 11:30 738... -
利用生产者消费者模式实现串行的任务并行化
2014-12-22 17:48 1198试想,一个省有100个处理节点需要 ... -
利用生产者消费者模式实现串行的任务并行化
2014-12-22 17:48 0试想,一个省有100个处理节点需要 ... -
关于Linux的Ulimit参数
2014-12-22 12:13 1226JVM 64位平台与32位平台 ... -
一种表格数据比对的方法
2014-12-19 16:59 1012假设有连个库,一个是生产库,一个是备份库,在一个特 ...
相关推荐
ServletContextListener使用详解
通过创建ServletContextListener监听器,socket来实现tcp/ip协议客户端数据的接收功能。这是一个maven项目,直接导入eclipse即可运行,此处监听的是9092端口,将项目运行起后,可以对其端口使用情况进行查看,在...
ServletContextListener的应用案例 项目启动:创建新的空表, 项目关闭:删除表 百度六祎,期...
ServletContextListener完成在线人数统计和显示人员列表
案例-使用监听器完成定时生日祝福、,一、监听器Listener 二、邮箱服务器。 1.什么是监听器? 2.监听器有哪些? 3.监听三大域对象的创建与销毁的监听器 ...c、任务调度----定时器----Timer/TimerTask
在SpringMVC中利用ServletContextListener初始化数据到内存
主要介绍了Java基于ServletContextListener实现UDP监听,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
最近公司项目要用到定时任务,因为是通过接口传送数据,所以我就新建了一个web项目,在web.xml配置文件里配置一个监听器,然后该监听器再继承HttpServlet,同时实现ServletContextListener接口,很简单的一个定时...
听众 ServletContextListener,sesson,请求侦听器
JavaWeb新版教程. jsp--ServletContextListener监听器演示.avi
public class Test extends HttpServlet implements ServletContextListener { // 服务器停止时执行该事件 public void contextDestroyed(ServletContextEvent sce) { DeleteFile();// 删除启动服务器时建立的...
java定时器的实现 本例依据Java自身提供的接口实现,通过监听器(Listener)和定时器(Timer)定时执行某个任务(Task)。
编写程序,提供用户登录界面。 登录成功后,提示用户上次登录时间,登录IP地址信息。 保存用户的登录信息可以使用XML,也可以使用纯文本文件。... 要求使用ServletContextListener,要求理解Listener.
介绍了Java定时执行任务,给出了如何使用ServletContextListener实现定时运行java某个方法的例子,简单易用。
public class MyListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { log.info("web项目的启动{} 一开始就启动",sce.getServletContext...
classloader-leak-prevention.zip,防止类加载器泄漏的servletcontextlistener/java.lang.outofmemory错误:permgen spaceclassloader泄漏预防/保护
在启动时,它使用 ServletContextListener 创建一个 websocket 连接。 它将类 WebSocketClient 作为 ClientEndpoint 传递。 ClientEndpoint 处理所有传入事件。 连接顺序 随着 WAR 的部署,一个 ...
public class BookListener implements ServletContextListener { public void contextDestroyed(ServletContextEvent arg0) { // TODO Auto-generated method stub } public void contextInitialized...