Servlet 运行在Servlet容器中,比如Jetty、Tomcat等都是Servlet容器。Servlet容器已成为一种独立发展的标准化产品,种类已不少,不好说哪个好哪个坏,视不同的应用场景来选择合适的容器,在定制化和移动领域有不错的发展的有日渐流行的Jetty,但是大多数企业级应用用的还是Tomcat。
Tomcat 的容器等级中,Context 容器是直接管理 Servlet 在容器中的包装类 Wrapper,所以 Context 容器如何运行将直接影响 Servlet 的工作方式。真正管理 Servlet 的容器是 Context 容器,一个 Context 对应一个 Web 工程,在 Tomcat 的配置文件中可以很容易发现这一点。
整个 Tomcat 服务器中 Listener 使用的非常广泛,它是基于观察者模式设计的,Listener 的设计对开发 Servlet 应用程序提供了一种快捷的手段,能够方便的从另一个纵向维度控制程序和数据。目前 Servlet 中提供了 6 种两类事件的观察者接口,它们分别是:4 个 EventListeners 类型的,ServletContextAttributeListener、ServletRequestAttributeListener、ServletRequestListener、HttpSessionAttributeListener 和 2 个 LifecycleListeners 类型的,ServletContextListener、HttpSessionListener。
javax.servlet.ServletServletContextListener ServletContext的创建和销毁
javax.servlet.ServletContextAttributeListener
ServletContext中的Attribute的添加、删除或替换
javax.servlet.ServletRequestListener ServletRequest的创建和销毁
javax.servlet.ServletRequestAttributeListener ServletRequest中的Attribute的添加、删除或替换
javax.servlet.http.HttpSessionListener Session的创建和销毁
javax.servlet.http.HttpSessionAttributeListener Session中的Attribute的添加、删除或替换
javax.servlet.http.HttpSessionBindingListener 当一个Attribute类从Session中绑定或移除时得到通知
javax.servlet.http.HttpSessionActivationListener 当一个Attribute类被迁移到另一个JVM时得到通知
参考文章:http://www.ibm.com/developerworks/cn/java/j-lo-servlet/
原文地址:http://www.cnblogs.com/helloxc/p/3740276.html