Linux + Tomcat 6 + JSP网站有一个后台服务,打包成了.jar文件,jsp要调用jar中的方法。如果把jar放在WEB-INF文件夹里,每次调用jar中的方法都要初始化(需要一些时间)如何让tomcat6启动以后,jar中的程序初始化,而jsp和这个初始化了的进程对话(类似于服务器断的服务)?
解决方案 »
- 如何将type=text和textarea中的内容发送?
- 看看我的代码,为什么会在数据库里的重复插入信息。
- 能不能做到这个功能:点击按钮弹出模式页面
- 关于window.close和closedialog两个方法的区别
- 前辈们 是不是Struts+Spring+Hibernate是大多数企业用的一种框架?
- 济南的软件发展水平
- 如何提高数据库的查询速度?
- 求助:关于JavaScript Parser
- 问下关于REST的JSON格式问题~~在线等~~
- 如何在jsp中向applet传递实例?(在线等待)
- 关于MYSQL中JAVA中文检索的问题。
- Bad version number in .class file错误
这句话不太对,如果是从jsp中做方法调用到jar中的类,则只有第一次调用的时候需要初始化。
如何让tomcat6启动以后,jar中的程序初始化,而jsp和这个初始化了的进程对话(类似于服务器断的服务)?
这个可以在ContextLister中,启动一个线程,来初始化你的jar中的服务。
你的意思是说,每次调用都new一个新的实例,
如果你不想这样,用单例模式吧:public class ClassName{
private ClassName(){};
private ClassName instance=null;
public static ClassName getInstance(){
if (instance==null){
instance=new ClassName();
//这里做必要的初始化,只有第一次调用的时候才被执行。
}
return instance;
}
}
以后你别
ClassName a = new ClassName();
而是
ClassName a = ClassName.getInstance();
---------------
至于ContenxtListenr
应该很容易在网上搜到。
这个在一个页面中可行,但是两个用户访问这个jsp页的时候要分别实例化对不对?
当然不对,单例就能保证你tomcat不重启,则只会初始化一次。不信简单测试一下就可以了:在class的构造方法打一句话,你可以在jsp中任意调用,看是不是只打印一次。