11_JavaWeb监听器

监听器

  • 概念:后端要发生一些事情的时候,自动触发一些代码的执行;

在这里插入图片描述

1.监听器的分类

  • web中定义八个监听器接口作为监听器的规范,这八个接口按照不同的标准可以形成不同的分类

  • 按监听的对象划分

    • application域监听器 ServletContextListener ServletContextAttributeListener
    • session域监听器 HttpSessionListener HttpSessionAttributeListener HttpSessionBindingListener HttpSessionActivationListener
    • request域监听器 ServletRequestListener ServletRequestAttributeListener
  • 按监听的事件分

    • 域对象的创建和销毁监听器 ServletContextListener HttpSessionListener ServletRequestListener
    • 域对象数据增删改事件监听器 ServletContextAttributeListener HttpSessionAttributeListener ServletRequestAttributeListener
    • 其他监听器 HttpSessionBindingListener HttpSessionActivationListener

2.application域监听器案例

注:本章节仅讲述应用域监听器接口
案例
设计三个Servlet分别进行增加数据,修改数据,删除数据
创建隔壁包下进行监听
实现ServletContextListener,实现其方法
配置映射
xml文件配置listener 或者直接添加注解即可
  • 构建Servlet1
@WebServlet("/Servlet1")
public class Servlet1 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        ServletContext servletContext = this.getServletContext();

        servletContext.setAttribute("keya","valuea");

    }
}
  • 监听Servlet1的构建以及销毁

    • 应用域监听接口以及api

    • 接口是HttpServletContextListener

    • 实现方法是contextInitialized、contextDestroyed

在这里插入图片描述

  • 监听数据 增删改–多实现一个方法ServletContextAttributeListener
@WebListener("/Servlet1")
public class MyApplicationListener implements ServletContextListener, ServletContextAttributeListener {
    @Override
    public void attributeAdded(ServletContextAttributeEvent scae) {
        ServletContextAttributeListener.super.attributeAdded(scae);
    }


    @Override
    public void attributeRemoved(ServletContextAttributeEvent scae) {
        ServletContextAttributeListener.super.attributeRemoved(scae);
    }

    @Override
    public void attributeReplaced(ServletContextAttributeEvent scae) {
        ServletContextAttributeListener.super.attributeReplaced(scae);
    }
}
attributeAdded()
attributeRemoved()
attributeReplaced()
  • 监听接口中可以重写相关方法,一旦被监听的对象执行了某项操作,tomcat后台就会进行响应,监听到;

  • 例如attributeAdded就监听this.getContext().setAttribute()这个方法的操作

  • 一般来说监听的东西五花八门,用的时候查即可;

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值