Servlets中一个始终运行的线程

时间:2012-05-10 07:20:11

标签: java jsp tomcat servlets inter-process-communicat

  • 我需要构建一个始终运行的线程/进程,并且可以通过其他servelts和JSP页面查询...
  • 这个线程/进程将处理大文件,因此它会缓存文件块以减少文件访问(加上一些其他处理)......
  • 因此,只要服务器正在运行,该线程/进程将被加载并等待任何查询到来,回答......

我想在所有servelt类之间创建一个静态类,但我发现它不起作用(tomcat将每个新的servelt作为一个全新的程序处理)

那么我可以尝试的其他选择是什么?

2 个答案:

答案 0 :(得分:3)

我认为你有两个选择:

  1. 使用ServletContext访问应用程序范围的对象。
  2. 使用更复杂的解决方案,例如ehcache,将您的数据存入内存。

答案 1 :(得分:0)

除Morritz提议的其他选项

  1. Tomcat内部:使用Global JNDI
  2. 注册所有servlet都可访问的全局对象
  3. 在同一个JVM中:使用类似The Java Service Wrapper的启动器以编程方式(嵌入式)启动共享资源(您的静态类,存储库等...)和Tomcat。您需要定义由共享资源实现并可由servlet使用的小API。
  4. 分布于JVM:memcached,hazelcast等......