`
234390216
  • 浏览: 10233200 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
A5ee55b9-a463-3d09-9c78-0c0cf33198cd
Oracle基础
浏览量:462641
Ad26f909-6440-35a9-b4e9-9aea825bd38e
springMVC介绍
浏览量:1775537
Ce363057-ae4d-3ee1-bb46-e7b51a722a4b
Mybatis简介
浏览量:1398380
Bdeb91ad-cf8a-3fe9-942a-3710073b4000
Spring整合JMS
浏览量:395024
5cbbde67-7cd5-313c-95c2-4185389601e7
Ehcache简介
浏览量:679993
Cc1c0708-ccc2-3d20-ba47-d40e04440682
Cas简介
浏览量:530899
51592fc3-854c-34f4-9eff-cb82d993ab3a
Spring Securi...
浏览量:1183979
23e1c30e-ef8c-3702-aa3c-e83277ffca91
Spring基础知识
浏览量:467943
4af1c81c-eb9d-365f-b759-07685a32156e
Spring Aop介绍
浏览量:151403
2f926891-9e7a-3ce2-a074-3acb2aaf2584
JAXB简介
浏览量:68154
社区版块
存档分类
最新评论

支持注解的Servlet3.0监听器

阅读更多

支持注解的Servlet3.0监听器

 

       Servlet3.0中的监听器跟之前2.5的差别不大,唯一的区别就是增加了对注解的支持。在3.0以前我们的监听器配置都是需要配置在web.xml文件中的。在3.0中我们有了更多的选择,之前在web.xml文件中配置的方式还是可以的,同时我们还可以使用注解进行配置。对于使用注解的监听器就是在监听器类上使用@WebListener进行标注,这样Web容器就会把它当做一个监听器进行注册和使用了。

 

       在这篇文章中我主要想讲的还是Servlet3.0中可以使用注解来配置监听器,对于监听器的其它内容我不想做过多的涉及。

 

       对于使用注解的监听器我想挑两类型监听器来举一个例子,一类是对Session的监听,一类是对ServletContext的监听。对于Session的监听器主要有HttpSessionListenerHttpSessionAttributeListenerHttpSessionListener可以监听HttpSession的创建跟销毁,而HttpSessionAttributeListener则是对session中属性的监听,它可以监听到session新增属性、移除属性和属性值被替换时。对于ServletContext的监听器有ServletContextListenerServletContextAttributeListenerServletContextListener可以监听到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>

 

 

 

1
0
分享到:
评论

相关推荐

    Servlet3.0参考手册

    总的来说,Servlet3.0通过增强的注解配置、异步处理、过滤器改进、上下文参数和监听器的注解支持,以及微容器概念,极大地提升了Java Web开发的效率和便利性。这份参考手册无疑是深入理解和掌握Servlet3.0技术的关键...

    Servlet3.0新特性解析

    **一、Servlet3.0监听器新特性** 在Servlet2.x版本中,监听器主要用于监听服务器中的特定事件,如会话创建、销毁、请求初始化等。它们通过实现特定接口,如`ServletContextListener`、`HttpSessionListener`等,...

    servlet 3.0 jar 包综合下载

    下载的`servlet3.0jar综合`压缩包包含了实现这些特性的关键库,对于进行Java EE 3.0开发的程序员来说是必不可少的工具。在实际开发中,结合相关的框架(如Spring MVC)和其他Java EE组件,可以构建出功能强大、易...

    Servlet3.0特性详解

    这是Servlet3.0的一个核心特性,通过实现`ServletContainerInitializer`接口,可以在应用启动时执行自定义的初始化代码,用于注册监听器、过滤器等,增强了扩展性。 5. **Microcontainer支持**: Servlet3.0支持...

    maven servlet 3.0 eclipse config video

    4. 理解如何在没有web.xml的情况下,通过注解配置Servlet、监听器和过滤器。 5. 能够在Eclipse中调试和运行Servlet 3.0应用。 【标签】"maven"表明这个教程与Maven项目管理工具有关,意味着你将学到如何使用Maven...

    servlet 3.0新增功能详解

    Servlet 3.0 还增加了对注解的支持,这为简化 Servlet、过滤器(Filter)和监听器(Listener)的声明提供了便利。在之前的版本中,Servlet、过滤器和监听器都需要在 web.xml 文件中进行声明式配置,而在 Servlet 3.0 中...

    servlet3.0相关的包

    Servlet3.0引入了注解驱动的部署,允许开发者通过在类或方法上添加注解来定义Servlet、过滤器和监听器,从而避免了繁琐的web.xml配置。此外,还支持异步处理,使得Servlet可以在处理请求时释放线程,提高服务器性能...

    Servlet 3.0 - Apache Tomcat 7.0.61

    3. 部署监听器:无需在web.xml中声明,开发者可以通过注解定义部署监听器,如`@WebListener`,在应用部署或卸载时自动执行代码。 4. 嵌入式Servlet容器:Servlet 3.0允许在程序内部创建和启动Servlet容器,这对于...

    Servlet3.0 Demo

    类似于Servlet,Servlet3.0也允许通过注解来注册监听器,如`@WebListener`,这样可以更方便地创建和管理监听器。 4. **Pluggable Servlet Container初始化**: Servlet3.0引入了可插拔的Servlet容器初始化,使得...

    JavaWeb-21 JDBC(泛型,注解,Servlet3.0,Log4j)

    在"JavaWeb-21 JDBC(泛型,注解,Servlet3.0,Log4j)"这个主题中,涵盖了四个关键知识点:JDBC(Java Database Connectivity)、泛型、注解以及Servlet 3.0。接下来,我们将逐一深入探讨这些内容。 首先,JDBC是...

    servlet3.0 jar \ doc \pdf 相关文档资料

    类似于Servlet的注册方式,Servlet 3.0也支持在监听器类上使用`@WebListener`注解,无需在web.xml中声明。 4. **过滤器链的改进**: 过滤器可以使用`@WebFilter`注解来定义,同时支持通过注解配置过滤器的URL模式...

    官方servlet3.0.rar

    Servlet 3.0引入了对注解的全面支持,使得开发者不再需要编写XML配置文件来声明Servlet、过滤器和监听器。例如,我们可以通过`@WebServlet`, `@WebFilter`和`@WebListener`注解直接在类级别定义它们,简化了部署...

    Servlet3.0_新特性

    Servlet3.0的另一大亮点是新增的注解支持,这极大地简化了Servlet、过滤器和监听器的声明。在Servlet3.0之前,部署Servlet、过滤器和监听器通常需要在web.xml文件中进行大量的配置,这不仅繁琐,而且容易出错。...

    Servlet 3.0 API - Apache Tomcat 7.0.41

    例如,`@WebServlet`, `@WebFilter`, 和 `@WebListener` 分别用于声明Servlet、Filter和监听器。 4. **异步处理**:Servlet 3.0引入了异步处理能力,允许Servlet在处理请求时释放线程,提高服务器性能。通过调用`...

    servlet3.0规范

    在Servlet 3.0中,开发者可以使用注解(@WebServlet、@WebFilter、@WebListener)来声明Servlet、Filter和监听器,而无需在web.xml中进行繁琐的XML配置。这大大减少了部署描述符的复杂性,使得代码更易读、更易于维护...

    servlet3.0与mybatis整合的示例

    1. 注解配置:Servlet3.0引入了注解,允许开发者在类或方法级别声明Servlet、过滤器和监听器,无需在web.xml中进行繁琐的XML配置。 2. 异步处理:Servlet3.0支持异步处理请求,这意味着Servlet可以在不阻塞线程的...

    servlet3.0文档html

    12. **Servlet监听器**:新增了一些内置的监听器,如SessionAttributeListener、AsyncContextListener等,可以监听到更多应用生命周期的事件。 以上就是Servlet 3.0的一些核心特性,它们极大地提升了开发效率,增强...

    servlet-api-3.0.zip

    - 虽然Servlet 3.0支持注解配置,但传统的web.xml文件仍然是可选的。它可以用于全局配置,如安全约束、错误页面、MIME映射等。 6. **安全性**: - Servlet 3.0增强了安全性,提供了更细粒度的访问控制,如`@...

    servlet3.0模块实现demo

    2. **编写代码**:在每个模块中,使用Servlet 3.0的注解配置Servlet、过滤器和监听器。 3. **配置聚合模块**:在根目录创建聚合模块,将子模块添加到`&lt;modules&gt;`标签中。 4. **构建与部署**:运行`mvn clean ...

Global site tag (gtag.js) - Google Analytics