我创建了一个webapp(用Eclipse编写,在Tomcat中运行),它是一个Servlet,在初始化时创建了一个Runnable对象。 Runnable对象执行一些东西并将一些数据存储在内存中,servlet只存在于向用户呈现对象中的最新数据(没有DB,我们只关心当前数据)。
问题是,我现在希望让另一个Servlet访问相同的数据并以不同的方式呈现给用户,这意味着Servlet创建Runnable对象的模型不再可行。
所以,我的问题是:如何创建一个应用程序,其中有一个主类完成所有工作,还有一堆Servlet与它交谈以获取数据?
作为一种我并不特别喜欢的解决方法,我刚刚让doGet()方法解析请求字符串并根据其内容发送不同的响应,但我宁愿使用单独的Servlet。
答案 0 :(得分:0)
在ServletContextListener.contextInitialized()
方法中创建Runnable对象,并使用ServletContext
将其设置为ServletContext.setAttribute()
作为属性。
并且,两个servlet都可以从ServletContext.getAttribute()
获取Runabble对象并显示数据。