- 浏览: 1266268 次
- 性别:
- 来自: 杭州
-
文章分类
- 全部博客 (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 2425微服务,现在是一个越来越热的东西,软件架构发展到 ... -
elk安装记录
2016-12-27 18:04 1262在centos6.5上安装elk,记录下安装过程和 ... -
dubbo服务框架
2016-12-23 15:40 749上一篇文章介绍了zookeeper,作为服务 ... -
zookeeper服务注册中心配置
2016-12-22 11:40 1689用zookeeper有一段时间了,把配置做下简 ... -
OS X 安装java开发环境
2016-12-03 23:29 642... -
关于Restful API 的设计
2015-06-12 13:32 2310Restful API的流行,很大程度上被当前的移动 ... -
Jvisualvm远程连接tomcat配置:
2015-05-12 16:16 825JvisualVm 监控远程Tomcat,需要在To ... -
jdbc mybatis hibernate springJDBC的一些理解
2015-01-15 17:10 7097... -
Java 的ExecutorService
2015-01-15 11:45 1257早期在Java5以前,我们做多线程程序,一般都 ... -
spring的IOC和AOP
2015-01-14 16:47 2379关于Spring,大家都是耳熟 ... -
java 的线程安全
2014-12-30 14:43 1019现代CPU基本都是多核,支持 ... -
JVM ClassLoader
2014-12-25 16:33 969JVM在加载类的时候,都是通过ClassLoad ... -
minor Gc ,Full Gc
2014-12-24 17:22 2134在发生Minor gc之前,虚拟机会先检查老年带最 ... -
Java的主要垃圾回收器
2014-12-24 16:33 1325对象 ... -
JVM的内存结构的一点理解
2014-12-24 11:30 796... -
利用生产者消费者模式实现串行的任务并行化
2014-12-22 17:48 1254试想,一个省有100个处理节点需要 ... -
利用生产者消费者模式实现串行的任务并行化
2014-12-22 17:48 0试想,一个省有100个处理节点需要 ... -
关于Linux的Ulimit参数
2014-12-22 12:13 1309JVM 64位平台与32位平台 ... -
一种表格数据比对的方法
2014-12-19 16:59 1074假设有连个库,一个是生产库,一个是备份库,在一个特 ...
相关推荐
嵌入式八股文面试题库资料知识宝典-华为的面试试题.zip
训练导控系统设计.pdf
嵌入式八股文面试题库资料知识宝典-网络编程.zip
人脸转正GAN模型的高效压缩.pdf
少儿编程scratch项目源代码文件案例素材-几何冲刺 转瞬即逝.zip
少儿编程scratch项目源代码文件案例素材-鸡蛋.zip
嵌入式系统_USB设备枚举与HID通信_CH559单片机USB主机键盘鼠标复合设备控制_基于CH559单片机的USB主机模式设备枚举与键盘鼠标数据收发系统支持复合设备识别与HID
嵌入式八股文面试题库资料知识宝典-linux常见面试题.zip
面向智慧工地的压力机在线数据的预警应用开发.pdf
基于Unity3D的鱼类运动行为可视化研究.pdf
少儿编程scratch项目源代码文件案例素材-霍格沃茨魔法学校.zip
少儿编程scratch项目源代码文件案例素材-金币冲刺.zip
内容概要:本文深入探讨了HarmonyOS编译构建子系统的作用及其技术细节。作为鸿蒙操作系统背后的关键技术之一,编译构建子系统通过GN和Ninja工具实现了高效的源代码到机器代码的转换,确保了系统的稳定性和性能优化。该系统不仅支持多系统版本构建、芯片厂商定制,还具备强大的调试与维护能力。其高效编译速度、灵活性和可扩展性使其在华为设备和其他智能终端中发挥了重要作用。文章还比较了HarmonyOS编译构建子系统与安卓和iOS编译系统的异同,并展望了其未来的发展趋势和技术演进方向。; 适合人群:对操作系统底层技术感兴趣的开发者、工程师和技术爱好者。; 使用场景及目标:①了解HarmonyOS编译构建子系统的基本概念和工作原理;②掌握其在不同设备上的应用和优化策略;③对比HarmonyOS与安卓、iOS编译系统的差异;④探索其未来发展方向和技术演进路径。; 其他说明:本文详细介绍了HarmonyOS编译构建子系统的架构设计、核心功能和实际应用案例,强调了其在万物互联时代的重要性和潜力。阅读时建议重点关注编译构建子系统的独特优势及其对鸿蒙生态系统的深远影响。
嵌入式八股文面试题库资料知识宝典-奇虎360 2015校园招聘C++研发工程师笔试题.zip
嵌入式八股文面试题库资料知识宝典-腾讯2014校园招聘C语言笔试题(附答案).zip
双种群变异策略改进RWCE算法优化换热网络.pdf
内容概要:本文详细介绍了基于瞬时无功功率理论的三电平有源电力滤波器(APF)仿真研究。主要内容涵盖并联型APF的工作原理、三相三电平NPC结构、谐波检测方法(ipiq)、双闭环控制策略(电压外环+电流内环PI控制)以及SVPWM矢量调制技术。仿真结果显示,在APF投入前后,电网电流THD从21.9%降至3.77%,显著提高了电能质量。 适用人群:从事电力系统研究、电力电子技术开发的专业人士,尤其是对有源电力滤波器及其仿真感兴趣的工程师和技术人员。 使用场景及目标:适用于需要解决电力系统中谐波污染和无功补偿问题的研究项目。目标是通过仿真验证APF的有效性和可行性,优化电力系统的电能质量。 其他说明:文中提到的仿真模型涉及多个关键模块,如三相交流电压模块、非线性负载、信号采集模块、LC滤波器模块等,这些模块的设计和协同工作对于实现良好的谐波抑制和无功补偿至关重要。
内容概要:本文探讨了在工业自动化和物联网交汇背景下,构建OPC DA转MQTT网关软件的需求及其具体实现方法。文中详细介绍了如何利用Python编程语言及相关库(如OpenOPC用于读取OPC DA数据,paho-mqtt用于MQTT消息传递),完成从OPC DA数据解析、格式转换到最终通过MQTT协议发布数据的关键步骤。此外,还讨论了针对不良网络环境下数据传输优化措施以及后续测试验证过程。 适合人群:从事工业自动化系统集成、物联网项目开发的技术人员,特别是那些希望提升跨协议数据交换能力的专业人士。 使用场景及目标:适用于需要在不同通信协议间建立高效稳定的数据通道的应用场合,比如制造业生产线监控、远程设备管理等。主要目的是克服传统有线网络限制,实现在不稳定无线网络条件下仍能保持良好性能的数据传输。 其他说明:文中提供了具体的代码片段帮助理解整个流程,并强调了实际部署过程中可能遇到的问题及解决方案。
基于C#实现的检测小说章节的重复、缺失、广告等功能+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于C#实现的检测小说章节的重复、缺失、广告等功能+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档~ 基于C#实现的检测小说章节的重复、缺失、广告等功能+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于C#实现的检测小说章节的重复、缺失、广告等功能+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于C#实现的检测小说章节的重复、缺失、广告等功能+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于C#实现的检测小说章节的重复、缺失、广告等功能+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档