支持注解的Servlet3.0监听器

简介: 支持注解的Servlet3.0监听器          Servlet3.0中的监听器跟之前2.5的差别不大,唯一的区别就是增加了对注解的支持。在3.0以前我们的监听器配置都是需要配置在web.xml文件中的。

支持注解的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>

 

 

 

目录
相关文章
|
3月前
|
监控 前端开发 Java
揭秘Web开发神器:Servlet、过滤器、拦截器、监听器如何联手打造无敌博客系统,让你的用户欲罢不能!
【8月更文挑战第24天】在Java Web开发中,Servlet、过滤器(Filter)、拦截器(Interceptor,特指Spring MVC中的)及监听器(Listener)协同工作,实现复杂应用逻辑。以博客系统为例,Servlet处理文章详情请求,过滤器(如LoginFilter)检查登录状态并重定向,Spring MVC拦截器(如LoggingInterceptor)提供细粒度控制(如日志记录),监听器(如SessionListener)监控会话生命周期事件。这些组件共同构建出高效、有序的Web应用程序。
36 0
|
6月前
|
前端开发 Java 程序员
Servlet/过滤器/拦截器/监听器:
Servlet接口在Sun公司有两个默认的实现类:HttpServlet、GenericServlet。Servlet是一种运行服务器端的Java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服务器响应的中间层。
|
存储 Java 数据安全/隐私保护
servlet过滤器与监听器
前言 Servlet 过滤器和监听器是 Java Web 应用程序中常见的两种组件,它们提供了各种扩展 Web 应用程序功能的方式。 总的来说,过滤器和监听器都可以通过 Java Web 应用程序的配置文件或注解进行使用,方便灵活,并可以很好地实现框架与业务逻辑的分离,提高代码可维护性和扩展性。 过滤器(Filter) 1. 参数验证和转换:可以拦截用户提交的数据,并对数据格式进行验证、修正或转换。 2. 访问控制和认证:可以拦截请求并检查用户是否有访问特定资源的权限。 3. 日志记录:可以拦截请求并输出相应的日志信息,用于系统运行时的监测与故障排除。 4. 资源压缩和解密: 可以拦截响应并对
80 0
|
存储 Java
【Java Web编程 十一】深入理解Servlet监听器
【Java Web编程 十一】深入理解Servlet监听器
114 0
【Java Web编程 十一】深入理解Servlet监听器
|
Java 应用服务中间件
如何在个人web项目中使用Servlet监听器?
如何在个人web项目中使用Servlet监听器?
|
XML 设计模式 前端开发
Servlet、过滤器、监听器、拦截器
Servlet是javaEE规范中的一种,javaEE中的规范很多除了Servlet还有很多我们熟悉的JSP、JDBC、RMI、XML、EJB、JTS等等。
167 0
Servlet、过滤器、监听器、拦截器
|
存储 缓存 监控
servlet中的监听器接口
servlet中的监听器接口
104 0
servlet中的监听器接口
|
JavaScript
Servlet学习——监听器
Servlet学习——监听器
161 0
|
Java Spring 容器
【JavaWeb】之Servlet监听器
【JavaWeb】之Servlet监听器
135 0
Servlet-监听器获得当前在线人数
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/twilight_karl/article/details/73744940 案例一 使用监听器获得当前在线的人数。
992 0