|
|
1
7
JavaServlet容器实际上是一个轻管理的代码容器。servlet是具有很好定义的生命周期的组件,并且容器和组件(也可以包括过滤器)之间也有一个很好定义的契约。 按照规定,Web应用程序是一个被动反应系统。 它是被动的,从某种意义上说,不允许(严格地)使用用户定义的线程。(某些容器可能不会强制执行此限制,但通过生成您自己的线程,您实际上脱离了保留,可能会发生不可预测的行为。) 它是响应性的,从某种意义上说,服务器上的活动(在代码库中)是响应请求而发生的,这些活动是针对典型的servlet应用程序HTTP请求的。 servletContext是容器中给定Web应用程序的所有组件的共享上下文。此上下文在激活Web应用时创建,在停用Web应用时销毁。您可以使用servletContextListener组件来钩住这个生命周期,并获取有关生命周期事件的通知回调。 如果你愿意继续狂野的一面,并在你的web应用中产生活跃的元素,那么你可能会考虑以下几点: 1-创建并注册 ServletContextListner 用于管理活动组件的组件。在Web应用启动/激活时,您将从容器中收到回调。在这里,您可以启动线程组件。由于这个组件将被传递一个对servletContext的引用,所以您可以将这个引用传递给线程组件。 2-线程组件类(无论是线程的扩展还是可运行的实现)需要是可管理的,从某种意义上说,当servletContextListener收到上下文关闭回调时,需要提供清理关闭线程的方法。如果您正准备正式化可运行的任务,那么 ExecutorService 提供您所需的功能,因此您无需重新设计车轮。 也就是说,您可能希望检查您的需求,从而检查您选择的设计和Web容器平台。可能您真的需要更复杂的后端堆栈。 |
|
|
S qasem · Android内存性能 8 年前 |
|
|
R83nLK82 · 在单例设计模式上引发IOException 8 年前 |
|
|
hal · 两个课程有什么区别?他们的工作方式不同吗? 8 年前 |
|
Jaquarh · 如何在不使用DI的情况下实例化父类 8 年前 |
|
|
Deepanshu · 基于PHP的Web应用程序中的单例对象状态 8 年前 |
|
|
dicle · 视图控制器中的依赖项注入 8 年前 |
|
|
Kozuki · 如何在生产代码中考虑单例? 8 年前 |