浅谈Servlet中 Listener监听器

Listener是Servlet中的一个重要组件,主要用于监听request,session,application三大作用域状态变化,比如session的产生,request中元素的新增,application的启动与销毁等。监听器不需要手动调用,只要有满足条件的 事件产生,则自动执行。
servlet中的监听器主要分为以下三大类:

  • ServletRequest监听
    1.ServletRequestAttributeListener >request中属性的产生,移除,替换
    2.ServletRequestListener >监听request对象的产生与销毁

  • HttpSession监听
    1.HttpSessionAttributeListener >session中属性的产生,移除,替换
    2.HttpSessionListener >监听session的产生和销毁

  • ServletContext监听
    1.ServletContextAttributeListener >application中属性的产生,移除,替换
    2.ServletContextListener >监听整个应用的初始化与销毁

    监听器创建语法

  • 创建普通类实现对应的监听器接口

  • 实现接口中的方法

  • 配置监听器
    1.基于注解的配置
    2.基于xml配置

@WebListener
public class OnlineListener implements HttpSessionListener {

private static int counter;

@Override
public void sessionCreated(HttpSessionEvent se) {
//session被创建时执行
System.out.println("session创建-->"+se.getSession().getId());
counter++;
//获取Servlet上下文(application)
ServletContext application = se.getSession().getServletContext(); application.setAttribute("counter",counter);
}

@Override
public void sessionDestroyed(HttpSessionEvent se) {
//session被销毁时执行
System.out.println("session销毁==>"+se.getSession().getId());
counter--;
ServletContext application = se.getSession().getServletContext(); application.setAttribute("counter",counter);
}
}

注意事项:
servlet3.0以下的监听器配置需要通过web.xml配置;
<listener> <listener-class>监听器实现类所在的包名</listener-class> </listener>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值