热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

10FilterListener6.WEB中八大监听器的介绍

八大监听器Servlet监听器的作用是监听Web容器的有效期事件,可以监听由于Web应用中状态改变而引起的Servlet容器产生的相应事件,然后接受并处

八大监听器
Servlet监听器的作用是监听Web容器的有效期事件,可以监听由于Web应用中状态改变而引起的Servlet容器产生的相应事件,然后接受并处理这些事件。其中提供的LIstener接口有这些:

1. ServletContextListener;

Servlet的上下文监听,它主要实现监听ServletContext的创建和删除。该接口提供了两种方法

  1. contextInitialized(ServletContextEvent event); 通知正在收听的对象,应用程序已经被加载和初始化。
  2. contextDestroyed(ServletCotextEvent event); 通知正在收听的对象,应用程序已经被载出,即关闭。

2. ServletAttributeListener;

主要实现监听ServletContext属性的增加,删除和修改。该接口提供了一下3个方法

  1. attributeAdded(ServletContextAttributeEvent event);
    当有对象加入Application的范围时,通知正在收听的对象
  2. attributeReplaced(ServletContextAttributeEvent event);
    当在application的范围有对象取代另一个对象的时,通知正在收听的对象
  3. attributeRemoved(ServletContextAttributeEvent event);
    当有对象从application的范围移除时,通知正在收听的对象

3. HttpSessionListener;

HTTP会话监听,该接口实现监听HTTP会话创建、销毁。该接口提供了一下两种方法

  1. sessionCreated(HttpSessionEvent event);
    通知正在收听的对象,session已经被加载及初始化
  2. sessionDestoryed(HttpSessionEvent event)l
    通知正在收听的对象,session已经被载出(HttpSessionEvent类的主要方法是getSession(),可以使用该方法回传一个session对象)

4. HttpSessionActivationListener;

该接口实现监听HTTP会话active和passivate。 该接口提供了一下3个方法
1.attributeAdded(HttpSessionBindingEvent event);
当有对象加入session的范围时,通知正在收听的对象
2. attributeReplaced(HttpSessionBindingEvent event);
当在session的范围有对象取代另一个对象时,通知正在收听的对象。
3. attributeRemoved(HttpSessionBindingEvent event);
当有对象从session的范围有对象取代另一个对象时,通知正在收听的对象 其中HttpSessionBindingEvent类主要有三个方法:getName()、getSession()和getValue()

5. HttpBindingListener;

接口实现监听HTTP会话中对象的绑定信息。它是唯一不需要在web.xml中设定Listener的。该接口提供了以下2个方法

  1. valueBound(HttpSessionBindingEvent event);
    当有对象加入session的范围时会被自动调用
  2. valueUnBound(HttpSessionBindingEvent event);
    当有对象从session的范围内移除时会被自动调用

6. HttpSessionAttributeListener;

该接口实现监听HTTP会话中属性的设置请求。该接口提供了以下两个方法。

  1. sessionDidActivate(HttpSessionEvent event);
    通知正在收听的对象,它的session已经变为有效状态。
  2. sessionWillPassivate(HttpSessionEvent event);
    通知正在收听的对象,它的session已经变为无效状态

7. ServletRequestListener;

该接口提供了以下两个方法。

  1. requestInitalized(ServletRequestEvent event)
    通知正在收听的对象,ServletRequest已经被加载及初始化
  2. requestDestroyed(ServletRequestEvent event)
    通知正在收听的对象,ServletRequest已经被载出,即关闭

8. ServletRequestAttributeListener

该接口提供了一下三种方法

  1. attributeAdded(ServletRequestAttributeEvent event);
    当有对象加入request的范围时,通知正在收听的对象
  2. attributeReplaced(ServletRequestAttributeEvent event);
    当在request的范围内有对象取代两一个对象时,通知正在收听的对象
  3. attributeRemoved(ServletRequestAttributeEvent event);
    当有对象从request的范围移除时,通知正在收听的对象

推荐阅读
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • 本文讨论了如何在codeigniter中识别来自angularjs的请求,并提供了两种方法的代码示例。作者尝试了$this->input->is_ajax_request()和自定义函数is_ajax(),但都没有成功。最后,作者展示了一个ajax请求的示例代码。 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
author-avatar
卓菘碧625
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有