TOMCAT中如何自动加载程序
作者:qixiaorui 日期:2006-11-15 08:54:18
有时候,你想让一个ROBOT运行在TOMCAT中,并随TOMCAT启动而启动,怎么办?以下是解决办法:
一、理论
在类中,可以定义static代码,当类被首次加载时,自动执行其中的代码。例如:
在java中,当使用到一个类的时候,该类才会被加载到内存中。因此,如果上面的类Test没有被调用,那么其static部分的代码也不会被执行。
为了让程序代码在tomcat启动时自动运行,需要写一个servlet,在tomcat的web.xml中配置后,可以随tomcat启动而自动运行。在WEB-INFO/web.xml中,配置如下:
关键是<servlet>与</servlet>之间的参数:<load-on-startup>。加了这个参数后,tomcat启动时,会自动加载类com.ee2ee.servlet.TestAutoRun。在servlet类的init方法中放置需要自动执行的代码即可。
以下是一个样本servlet:
使用命令提示符下的STARTUP启动TOMCAT,就会显示控制台,在控制台上正确地输出了结果,每隔10秒钟系统自动输出:“init begin”。
二、实践
以下是项目中的ROBOT
一、理论
在类中,可以定义static代码,当类被首次加载时,自动执行其中的代码。例如:
1 | public class Test{
static{
//类被加载时执行的代码
}
public Test(){
}
...
//其他方法
}
|
在java中,当使用到一个类的时候,该类才会被加载到内存中。因此,如果上面的类Test没有被调用,那么其static部分的代码也不会被执行。
为了让程序代码在tomcat启动时自动运行,需要写一个servlet,在tomcat的web.xml中配置后,可以随tomcat启动而自动运行。在WEB-INFO/web.xml中,配置如下:
1 | <?xml version="1.0" encoding="GB2312"?> <web-app> <servlet> <servlet-name>InitServlet</servlet-name> <servlet-class>InitServlet</servlet-class> <load-on-startup>25</load-on-startup> </servlet> <welcome-file-list> <welcome-file>login.jsp</welcome-file> </welcome-file-list> </web-app> |
关键是<servlet>与</servlet>之间的参数:<load-on-startup>。加了这个参数后,tomcat启动时,会自动加载类com.ee2ee.servlet.TestAutoRun。在servlet类的init方法中放置需要自动执行的代码即可。
以下是一个样本servlet:
1 | import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class InitServlet extends HttpServlet{
/* (non-Javadoc)
* @see javax.servlet.GenericServlet#init()
*/
public void init() throws ServletException {
// TODO Auto-generated method stub
Thread t=new Thread(){
public void run(){
try{
while(true){
System.out.println("init begin");
System.out.flush();
sleep(10000);
}
}catch(Exception ex){}
}
};
t.start();
}
/* (non-Javadoc)
* @see javax.servlet.http.HttpServlet#service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
protected void service(HttpServletRequest arg0, HttpServletResponse arg1)
throws ServletException, IOException {
// TODO Auto-generated method stub
//System.out.println(" init server begin");
}
}
|
使用命令提示符下的STARTUP启动TOMCAT,就会显示控制台,在控制台上正确地输出了结果,每隔10秒钟系统自动输出:“init begin”。
二、实践
以下是项目中的ROBOT
1 | package ql.sbs.tools;
import quanwen.*;
import ql.sbs.bus.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.*;
import sun.io.*;
import java.sql.*;
/**
* 自动入库工具
* 2005.6.25
* qixiaorui
*/
public class AutoDBServlet extends HttpServlet{
public LocalLang ll;
/* (non-Javadoc)
* @see javax.servlet.GenericServlet#init()
*/
public void init() throws ServletException {
// TODO Auto-generated method stub
try{
//在服务器端建立目录结构
File d=new File("c:/aa");
if(!d.exists()){
d.mkdir();
}
File d1=new File("c:/aa/ini");
if(!d1.exists()){
d1.mkdir();
}
//将JAR中的三个文件拷贝到目录中c aa ini
String name="/Lang_chi.txt";
copyToDisk(name,"c:/aa/ini");
name="/Lang_eng.txt";
copyToDisk(name,"c:/aa/ini");
name="/SBS.ini";
copyToDisk(name,"c:/aa/ini");
//获取语言文件
INIOperate ini=new INIOperate(new File("c:/aa/ini/SBS.ini"),20," ;");
String language="c:/aa/ini/"+"Lang_"+ini.getItem("语言/language")+".txt";
ll=new LocalLang(language);
}catch(Exception ex){
System.out.println(ex.toString());
}
Thread t=new Thread(){
BusObject bo=new BusObject();
FDBPublic pub=new FDBPublic();
String path="c:\\aa\\tmp\\";
String strTXTFile="";
String strINIFile="";
long currentID=0; //记录当前编号
String sql="";
long currentID1=0; //处理的记录在临时表中的编号
public void run(){
try{
while(true){
//这个休眠时间需要通过实践根据实际的处理情况进行修改,但最少要保证在
//这个时间内能处理完一条记录。
sleep(10000);
sql="select ID,userID,number,inDay "+
"from SBSReceiveFile "+
"where endFlag='T'";
String usID="";
int number=0;
String inDay="";
MDBClass mdb=new MDBClass();
mdb.connect();
ResultSet rs=mdb.executeQuery(sql);
if(rs.next()){
currentID1=rs.getLong("ID");
usID=rs.getString("userID");
number=rs.getInt("number");
inDay=rs.getString("inDay");
rs.close();
mdb.closeAll();
toDB(usID,number,inDay);
}else{
rs.close();
mdb.closeAll();
}
}
}catch(Exception ex){}
}
//插入一条记录,记录可以用用户编号+顺号+日期来唯一的区别。
public void toDB(String usID,int number,String daytime){
//注意,不要随便移动语句的处理顺序,因为许多公用变量在第一个函数里被
//赋值,其他紧随的函数使用了这些变量!!
//将记录插入SBSArticle OK!
toArticle(usID,number,daytime);
//如果有主记录,插入到SBSPicNews表
toPicNews(usID,number,daytime);
//处理全文内容
toContent(usID,number,daytime);
//处理图片内容
toPicture(usID,number,daytime);
//处理附件内容
toPaste(usID,number,daytime);
//把相应的文本文件和配置文件删除
deleteTXTINIFile(usID,number,daytime);
//删除掉SBSReceiveFile中相关项目 OK!
deleteCurrent();
}
………..
/* (non-Javadoc)
* @see javax.servlet.http.HttpServlet#service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
protected void service(HttpServletRequest arg0, HttpServletResponse arg1)
throws ServletException, IOException {
// TODO Auto-generated method stub
//System.out.println(" init server begin");
}
}
|
平均得分
(0 次评分)
评论: 69 | 查看次数: 6058
发表评论
订阅
上一篇
|

文章来自:
标签: 
韩国留学网
韩国留学论坛
韩国留学费用
韩国留学申请
韩国留学签证
韩国留学中介
韩国大学排名
洗染设备
水洗房
水洗房
洗鞋店
洗鞋店
洗鞋加盟 洗鞋连锁店 修鞋店
洗鞋连锁
cad软件下载
cad软件下载
cad软件
cad软件
cad
cad
Java Games
mobile Games
cell phone games
phone games
洗鞋店连锁
修鞋设备
擦鞋机
擦鞋连锁店
PLM
PLM
PDM
PDM
洗鞋加盟
洗鞋连锁店
修鞋店
韩国留学网
韩国留学论坛
韩国留学费用
韩国留学申请
韩国留学签证
韩国留学中介
韩国大学排名
洗染设备
水洗房
水洗房
洗鞋店
洗鞋店
洗鞋加盟 洗鞋连锁店 修鞋店
洗鞋连锁
cad软件下载
cad软件下载
cad软件
cad软件
cad
cad
Java Games
mobile Games
cell phone games
phone games
洗鞋店连锁
修鞋设备
擦鞋机
擦鞋连锁店
PLM
PLM
PDM
PDM
洗鞋加盟
洗鞋连锁店
修鞋店
11lamam
wow gold
wow power leveling
buy warhammer gold
buy warhammer gold
brogame
brogame
人力资源管理师
人力资源管理师
人力资源管理师
人力资源管理师
隔膜泵
隔膜泵
隔膜泵
空调
空调
空调
人力资源培训
人力资源培训
人力资源培训
大金空调
大金空调
大金空调
海尔空调
海尔空调
格力中央空调
格力中央空调
格力中央空调
美的中央空调
美的中央空调
美的中央空调
海尔中央空调
海尔中央空调
海尔中央空调
大金中央空调
大金中央空调
大金中央空调
大金空调
隔膜泵
海尔空调
人力资源培训
人力资源培训
空调
空调
人力资源管理师
人力资源管理师
wow gold
wow power leveling
warhammer online power leveling
warhammer online power leveling
brogame
brogame
空调
空调
空调
新加坡留学
新加坡留学
新加坡留学
中央空调
中央空调
中央空调
商用中央空调
商用中央空调
商用中央空调
油泵
油泵
油泵
真空泵
真空泵
真空泵
胶体磨
胶体磨
胶体磨
东方医院
东方医院
东方医院
qswd00
EP1-OXMAN
wow gold
wow power leveling
brogame
brogame
oofay.com
buy warhammer online gold
buy warhammer online gold
空调
空调
空调
格力空调
格力空调
格力空调
上海展览公司
上海展览公司
上海展览公司
螺杆泵
螺杆泵
螺杆泵
新加坡留学
新加坡留学
新加坡留学
留学新加坡
留学新加坡
留学新加坡
家用中央空调
家用中央空调
家用中央空调
上海新加坡留学
上海新加坡留学
上海新加坡留学
上海水泵
上海水泵
[url=http://www.jiushu.cn/blog/blog.php?do-showone-uid-14561-type-blog-itemid-1150.html]上海展览公司
家用中央空调
新加坡留学
留学新加坡
上海新加坡留学
上海水泵
国旅
出境游
海岛游
澳洲旅游
自由行
Google排名
涂层测厚仪
北京四合院
北京四合院
北京印刷
画册印刷
不干胶印刷
手提袋印刷
超声波测厚仪
超声波测厚仪
粗糙度仪
红外测温仪
红外测温仪
超声波探伤仪
纸袋
塑料袋
包装盒
墙锯切割
钢筋混凝土切割
墙体切割
混凝土静力直线切
水钻排孔
切割折除
英达生态园
小汤山温泉度假村
昌平温泉度假村
玻璃钢
效果图设计
效果图制作
效果图公司
hdpe波纹管
pvc板
英格索兰气动工具
石墨
碳素
Graphite
Carbon
无线上网卡
卷板机
弯管机
剪板机
铣边机
折边机
亚克力展示架
变压吸附制氮机
变压吸附制氮机
婚纱摄影
婚纱摄影
PDU
机柜插座
北京印刷
股骨头坏死
北京效果图
北京塑料制品
sitemap_wap
液晶监视器
DID拼接墙
分水器
线号机
打号机
展厅设计
科技馆设计
博物馆设计
规划展厅设计
北京展厅设计
企业展厅设计
北京展览公司
变压吸附制氧机
Google排名
纸袋
塑料袋
包装盒
炭化木
深度炭化木
巴劳木地板
航空箱
航空箱
wow gold
wow gold
buy worhammer gold
buy worhammer gold
澳洲留学申请
澳洲留学签证
澳洲留学费用
澳洲留学论坛
澳洲大学排名
澳洲留学中介
澳洲留学网
德国签证
澳洲大学排名
伦敦大学
英国商学院
伦敦摄政学院
wow account
wow account
wow accounts
buy wow account
buy wow accounts
world of warcraft account
韩国签证
新西兰签证
爱尔兰签证
马来西亚签证
出国留学
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
buy worhammer gold
buy worhammer gold
澳洲留学申请
澳洲留学签证
澳洲留学费用
澳洲留学论坛
澳洲大学排名
澳洲留学中介
澳洲留学网
德国签证
澳洲大学排名
伦敦大学
英国商学院
伦敦摄政学院
wow account
wow account
wow accounts
buy wow account
buy wow accounts
world of warcraft account
韩国签证
新西兰签证
爱尔兰签证
马来西亚签证
出国留学
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
CAD软件下载
CAD软件下载
CAD软件
CAD软件
CAD
CAD
item4sale
item4sale
item4sale
item4sale
item4sale
item4sale
item4sale
age of conan power leveling
age of conan power leveling
buy warhammer online gold
warhammer online power leveling
warhammer gold
warhammer online gold
buy worhammer gold
warhammer power leveling
洗衣设备
连锁干洗加盟
干洗加盟连锁
连锁干洗加盟
干洗店设备
干洗店设备
水洗机
水洗机
洗衣
干洗加盟连锁
洗衣
干洗机
洗衣设备
爱尔兰留学费用
爱尔兰留学签证
爱尔兰留学中介
爱尔兰留学网
爱尔兰留学论坛
爱尔兰大学排名
爱尔兰留学申请
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
水洗机
水洗机
洗衣
洗衣
连锁干洗加盟
连锁干洗加盟
洗衣设备
洗衣设备
干洗加盟连锁
干洗加盟连锁
水洗机
水洗机
水洗机
水洗机
gq1028he
wow gold
wow gold
buy worhammer gold
buy worhammer gold
澳洲留学费用
伦敦大学
澳洲留学中介
澳洲留学申请
澳洲留学论坛
澳洲留学网
澳洲留学签证
德国签证
wow account
wow account
wow accounts
buy wow account
buy wow accounts
world of warcraft account
澳洲大学排名
英国商学院
伦敦摄政学院
澳洲大学排名
马来西亚签证
韩国签证
新西兰签证
爱尔兰签证
马来西亚签证
出国留学
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
fdzj8ksd
brogame
wow gold
wow gold
wow gold
wow power leveling
wow power leveling
wow power leveling
wow power leveling
wowmine
wowmine.com
warhammer gold
隔膜泵
隔膜泵
隔膜泵
美的空调
美的空调
美的空调
人力资源培训
人力资源培训
大金中央空调
大金中央空调
空调
空调
人力资源管理师
人力资源管理师
大金空调
大金空调
美的中央空调
美的中央空调
格力中央空调
格力中央空调
空调
空调
人力资源管理师
人力资源管理师
人力资源培训
人力资源培训
10wo8wo10
brogame
wow gold
wow gold
wow gold
wow power leveling
wow power leveling
wow power leveling
wow power leveling
oofay.com
buy warhammer online gold
oofay.us
warhammer power leveling
warhammer online power leveling
上海展览公司
上海展览公司
格力空调
格力空调
螺杆泵
螺杆泵
阀门
阀门
空调
空调
留学新加坡
留学新加坡
新加坡留学
新加坡留学
上海新加坡留学
上海新加坡留学
上海水泵
上海水泵
东方医院
东方医院
家用中央空调
家用中央空调
阀门
空调
上海展览公司
美的空调
美的中央空调
新加坡留学
留学新加坡
隔膜泵
磁力泵
东方医院
wow gold
wow gold
10wo8wo10
brogame
wow gold
wow gold
wow gold
wow power leveling
wow power leveling
wow power leveling
wow power leveling
oofay.com
buy warhammer online gold
oofay.us
warhammer power leveling
warhammer online power leveling
上海展览公司
上海展览公司
格力空调
格力空调
螺杆泵
螺杆泵
阀门
阀门
空调
空调
留学新加坡
留学新加坡
新加坡留学
新加坡留学
上海新加坡留学
上海新加坡留学
上海水泵
上海水泵
东方医院
东方医院
家用中央空调
家用中央空调
阀门
空调
上海展览公司
美的空调
美的中央空调
新加坡留学
留学新加坡
隔膜泵
磁力泵
东方医院
wow gold
wow gold
10wo8wo10
brogame
wow gold
wow gold
wow gold
wow power leveling
wow power leveling
wow power leveling
wow power leveling
oofay.com
buy warhammer online gold
oofay.us
warhammer power leveling
warhammer online power leveling
上海展览公司
上海展览公司
格力空调
格力空调
螺杆泵
螺杆泵
阀门
阀门
空调
空调
留学新加坡
留学新加坡
新加坡留学
新加坡留学
上海新加坡留学
上海新加坡留学
上海水泵
上海水泵
东方医院
东方医院
家用中央空调
家用中央空调
阀门
空调
上海展览公司
美的空调
美的中央空调
新加坡留学
留学新加坡
隔膜泵
磁力泵
东方医院
wow gold
wow gold