Tomcat中JAVA定时器实现
原文链接:http://badwing.javaeye.com/blog/674263
文章分类:Java编程
好多朋友用过Windows的任务计划,也有不少程序迷自己曾写过时钟报警、系统自动关机等趣味程序,可却很少有朋友在Web工程中实现过类似功能。
当Web工程启动时,定时器能自动开始计时,在整个Web工程的生命期里,定时器能在每晚深夜触发一次任务。因此定时器的存放位置也值得考查,不能简单的存在于单个Servlet或JavaBean中,必须能让定时器宿主的存活期为整个Web工程生命期,在工程启动时能自动加载运行。结合这两点,跟 Servlet上下文有关的侦听器就最合适不过了,通过在工程的配置文件中加以合理配置,会在工程启动时自动运行,并在整个工程生命期中处于监听状态。
下面就Servlet侦听器结合Java定时器来讲述整个实现过程。要运用Servlet侦听器需要实现 javax.servlet.ServletContextListener接口,同时实现它的contextInitialized (ServletContextEvent event)和contextDestroyed(ServletContextEvent event)两个接口函数。考虑定时器有个建立和销毁的过程,看了前面两个接口函数,就不容置疑的把建立的过程置入 contextInitialized,把销毁的过程置入contextDestroyed了。
我把ServletContextListener的实现类取名为ContextListener,在其内添加一个定时器,示例代码如下所示:
import java.util.Timer;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
public class ContextListener
extends HttpServlet
implements ServletContextListener {
public ContextListener() {
}
private java.util.Timer timer = null;
public void contextInitialized(ServletContextEvent event) {
timer = new java.util.Timer(true);
event.getServletContext().log("定时器已启动");
timer.schedule(new MyTask(event.getServletContext()), 0, 60*60*1000);
event.getServletContext().log("已经添加任务调度表");
}
public void contextDestroyed(ServletContextEvent event) {
timer.cancel();&n
相关文档:
最近公司碰到需要用图表的形式显示一些数据,我就开始到网上查询,查到了jfreechart和amcharts,这两者我都实现过了,jfreechart最后生成图片,但是图片效果不是我想要的,然后又研究amcharts 它的效果确实很好,而且官方网站上还有好些例子可供下载,网址是:www.amcharts.com
(想要完成一个amcharts图形需要swfobjects. ......
保护你的JAVA / .net 程序,终极避免被反编译方法研究
反编译真的让JAVA / .net 制作者讨厌的东西。你花大量的精力做了一个很好的软件,却有人盗用,
盗用都算了
人家还用来商业...
就像某文说的.你的软件买 XXXXXXXX大元.人家公司买200元.....
怎么做到呢?就是通过反编译。
我们可以看到
就算保护很强的reflector4/ ......
Google
、
VMware
让
Java
扛起云计算大旗
通过与
Google
、
Salesforce.com
等
企业
的合作,虚拟化厂商
VMware
正在努力使
云计算
变得更为轻量、可移植,以符合客户的要求。
如果有人问
Java
产品供应商都有哪些?
EMC
的子公司
VMware
的排名绝对不会靠前。对大多数人来说,
V ......
public class Demo
{
static int i=1;
static
{
i++;
}
public Demo()
{
......
这两天做一个web项目,数据库中有个字段为上次登录的时间,所以需要在用户登录的时候记录下时间 没用calendar 用了Date类,突然发现system.out.println(date)的时候时间比北京时间晚了8个小时(还是早了,反正是差8个小时) 仔细一看系统时间 完全正确,当时以为是jdk sb了下 调试了半天发现怎么都不对
而新建一个java project ......