支持注解的Servlet3.0监听器
Servlet3.0中的监听器跟之前2.5的差别不大,唯一的区别就是增加了对注解的支持。在3.0以前我们的监听器配置都是需要配置在web.xml文件中的。在3.0中我们有了更多的选择,之前在web.xml文件中配置的方式还是可以的,同时我们还可以使用注解进行配置。对于使用注解的监听器就是在监听器类上使用@WebListener进行标注,这样Web容器就会把它当做一个监听器进行注册和使用了。
在这篇文章中我主要想讲的还是Servlet3.0中可以使用注解来配置监听器,对于监听器的其它内容我不想做过多的涉及。
对于使用注解的监听器我想挑两类型监听器来举一个例子,一类是对Session的监听,一类是对ServletContext的监听。对于Session的监听器主要有HttpSessionListener和HttpSessionAttributeListener。HttpSessionListener可以监听HttpSession的创建跟销毁,而HttpSessionAttributeListener则是对session中属性的监听,它可以监听到session新增属性、移除属性和属性值被替换时。对于ServletContext的监听器有ServletContextListener和ServletContextAttributeListener。ServletContextListener可以监听到ServletContext的创建和销毁,而ServletContextAttributeListener可以监听到ServletContext中属性的新增、移除和属性值的替换。
- import javax.servlet.annotation.WebListener;
- import javax.servlet.http.HttpSessionAttributeListener;
- import javax.servlet.http.HttpSessionBindingEvent;
- import javax.servlet.http.HttpSessionEvent;
- import javax.servlet.http.HttpSessionListener;
- /**
- *
- * HttpSession监听器和HttpSession属性监听器
- *
- */
- @WebListener
- public class SessionListener implements HttpSessionAttributeListener,
- HttpSessionListener {
- @Override
- public void sessionCreated(HttpSessionEvent se) {
- System.out.println("session created");
- }
- @Override
- public void sessionDestroyed(HttpSessionEvent se) {
- System.out.println("session destroyed");
- }
- @Override
- public void attributeAdded(HttpSessionBindingEvent event) {
- System.out.println("session attribute added");
- }
- @Override
- public void attributeRemoved(HttpSessionBindingEvent event) {
- System.out.println("session attribute removed");
- }
- @Override
- public void attributeReplaced(HttpSessionBindingEvent event) {
- System.out.println("session attribute replaced");
- }
- }
- import javax.servlet.ServletContextAttributeEvent;
- import javax.servlet.ServletContextAttributeListener;
- import javax.servlet.ServletContextEvent;
- import javax.servlet.ServletContextListener;
- import javax.servlet.annotation.WebListener;
- /**
- *
- * ServletContext监听器和ServletContext属性监听器
- *
- */
- @WebListener
- public class ContextListener implements ServletContextAttributeListener,
- ServletContextListener {
- @Override
- public void contextDestroyed(ServletContextEvent sce) {
- System.out.println("ServletContext destroyed");
- }
- @Override
- public void contextInitialized(ServletContextEvent sce) {
- System.out.println("ServletContext initialized");
- }
- @Override
- public void attributeAdded(ServletContextAttributeEvent event) {
- System.out.println("ServletContext attribute added");
- }
- @Override
- public void attributeRemoved(ServletContextAttributeEvent event) {
- System.out.println("ServletContext attribute removed");
- }
- @Override
- public void attributeReplaced(ServletContextAttributeEvent event) {
- System.out.println("ServletContext attribute replaced");
- }
- }
为了文章的完整性,下面将给出上面监听器对应的在web.xml中配置的方式。
- <listener>
- <listener-class>com.xxx.SessionListener</listener-class>
- </listener>
- <listener>
- <listener-class>com.xxx.ContextListener</listener-class>
- </listener>
相关推荐
2. 新增的注解支持:该版本新增了若干注解,用于简化 Servlet、过滤器(Filter)和监听器(Listener)的声 明,这使得 web.xml 部署描述文件从该版本开始不再是必选的了。 3. 可插性支持:熟悉 Struts2 的开发者一定...
-- Spring 容器启动监听器 --> org.springframework.web.context.ContextLoaderListener </listener> <!-- Spring MVC 的Servlet,它将加载WEB-INF/annomvc-servlet.xml 的 配置文件, 以启动Spring MVC...
1.6.1 监听器(Listener)顺序 ...............................................................................................................14 1.6.2 注解处理 .............................................
本教程为授权出品教程 《Spring注解驱动开发》是一套帮助我们深入了解Spring原理... 3).web原理 1).Servlet3.0标准新增特性 2).异步请求相关 本视频使用了maven构建程序,需要同学们有对Spring.SpringMVC的基本
1.6.1 监听器(Listener)顺序 ...............................................................................................................14 1.6.2 注解处理 ...............................................
Spring注解驱动开发,包含一个refresh()方法的流程(在resources目录下) 模块介绍 ---> ext扩展原理包含beanFactoryPostProcessor,...启动也包含SpringMVC注解化开发和Servlet3.0注解开发
定义事件监听器,实现ApplicationListener 使用容器发布事件 Spring高级话题 Spring Aware BeanNameAware BeanFactoryAware ApplicationContextAware MessageSourceAware ...
12.2.4 添加Hibernate事件监听器 12.2.5 使用原生Hibernate API 12.2.6 使用注解配置 12.2.7 事务处理 12.2.8 延迟加载的问题 12.3 在Spring中使用myBatis 12.3.1 配置SqlMapClient 12.3.2 在Spring配置myBatis ...
12.2.4 添加Hibernate事件监听器 12.2.5 使用原生Hibernate API 12.2.6 使用注解配置 12.2.7 事务处理 12.2.8 延迟加载的问题 12.3 在Spring中使用myBatis 12.3.1 配置SqlMapClient 12.3.2 在Spring配置myBatis ...
6.2 在你的Servlet和过滤器中使用Spring 214 6.2.1 问题 214 6.2.2 解决方案 215 6.2.3 工作原理 215 6.3 将Spring与Struts 1.x集成 220 6.3.1 问题 220 6.3.2 解决方案 220 6.3.3 工作原理 220 6.4...
6.2 在你的Servlet和过滤器中使用Spring 214 6.2.1 问题 214 6.2.2 解决方案 215 6.2.3 工作原理 215 6.3 将Spring与Struts 1.x集成 220 6.3.1 问题 220 6.3.2 解决方案 220 6.3.3 工作原理 220 6.4...