首页 > 代码库 > Servelet
Servelet
Servlet 运行在Servlet容器中,比如Jetty、Tomcat等都是Servlet容器。Servlet容器已成为一种独立发展的标准化产品,种类已不少,不好说哪个好哪个坏,视不同的应用场景来选择合适的容器,在定制化和移动领域有不错的发展的有日渐流行的Jetty,但是大多数企业级应用用的还是Tomcat。
Tomcat 的容器等级中,Context 容器是直接管理 Servlet 在容器中的包装类 Wrapper,所以 Context 容器如何运行将直接影响 Servlet 的工作方式。真正管理 Servlet 的容器是 Context 容器,一个 Context 对应一个 Web 工程,在 Tomcat 的配置文件中可以很容易发现这一点。
Servlet 中的 Listener
整个 Tomcat 服务器中 Listener 使用的非常广泛,它是基于观察者模式设计的,Listener 的设计对开发 Servlet 应用程序提供了一种快捷的手段,能够方便的从另一个纵向维度控制程序和数据。目前 Servlet 中提供了 6 种两类事件的观察者接口,它们分别是:4 个 EventListeners 类型的,ServletContextAttributeListener、ServletRequestAttributeListener、ServletRequestListener、HttpSessionAttributeListener 和 2 个 LifecycleListeners 类型的,ServletContextListener、HttpSessionListener。
8个常用的 Listener 汇总
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/