JavaWeb监听器

三大组件:

Servlet

Listener

Filter

监听器:

它是一个接口,内容由我们来实现;

它需要注册,例如注册在按钮上!

监听器中的方法,会在特殊事件发生时被调用!

JavaWeb中的监听器

一、生命周期监听与属性监听

ServletContext

生命周期监听:ServletContextListener,它有两个方法,一个在创建时调用,一个在销毁时调用;

void contextInitialized(ServletContextEvent sce):创建Servletcontext时

void contextDestroyed(ServletContextEvent sce):销毁Servletcontext时

属性监听:ServletContextAttributeListener,它有三个方法,一个在添加属性时调用,一个在替换属性时调用,

最后一个是在移除属性时调用。

void attributeAdded(ServletContextAttributeEvent event):添加属性时;

void attributeReplaced(ServletContextAttributeEvent event):替换属性时;

void attributeRemoved(ServletContextAttributeEvent event):移除属性时;

HttpSession

生命周期监听:HttpSessionListener,它有两个方法,一个在创建时调用,一个在销毁时调用;

void sessionCreated(HttpSessionEvent se):创建session时

void sessionDestroyed(HttpSessionEvent se):销毁session时

属性监听:HttpSessioniAttributeListener,它有三个方法,一个在添加属性时调用,一个在替换属性时调用,

最后一个是在移除属性时调用。

void attributeAdded(HttpSessionBindingEvent event):添加属性时;

void attributeReplaced(HttpSessionBindingEvent event):替换属性时

void attributeRemoved(HttpSessionBindingEvent event):移除属性时

ServletRequest

生命周期监听:ServletRequestListener,它有两个方法,一个在创建时调用,一个在销毁时调用;

void requestInitialized(ServletRequestEvent sre):创建request时

void requestDestroyed(ServletRequestEvent sre):销毁request时

属性监听:ServletRequestAttributeListener,它有三个方法,一个在添加属性时调用,一个在替换属性时调用,

最后一个是在移除属性时调用。

void attributeAdded(ServletRequestAttributeEvent srae):添加属性时

void attributeReplaced(ServletRequestAttributeEvent srae):替换属性时

void attributeRemoved(ServletRequestAttributeEvent srae):移除属性时javaWeb中完成编写监听器:写一个监听器类:要求必须去实现某个监听器接口;

注册,是在web.xml中配置来完成注册!

包名.类名

事件对象:ServletContextEvent:ServletContext getServletContext()

HttpSessionEvent:HttpSession getSession()

ServletRequest:ServletContext getServletContext();

ServletReques getServletRequest();ServletContextAttributeEvent:ServletContext getServletContext();

String getName():获取属性名

Object getValue():获取属性值

二、感知监听(都与HttpSession相关)

它用来添加到JavaBean上,而不是添加到三大域上!

这两个监听器都不需要在web.xml中注册!

1、JavaBean中继承HttpSessionBindingListener接口:感知Bean对象是否存放到Session(存放触发,删除触发)

2、JavaBean中继承HttpSessionActivationListener,java.io.Serializable接口:Bean对象是否跟随Session钝化(钝化触发,

活化触发)Serializable接口用来序列化

Session的钝化:即会话在一定时间内没有操作,Session信息自动保存至硬盘中以节省内存空间的技术

--------具体操作:Tomcat7/conf/context.xml添加以下代码,就会将session

保存至Tomcat7\work\Catalina\localhost\项目名\mysession中,如果保存属性有Bean对象

,要将Bean对象实现序列化(即继承java.io.Serializable接口)。

总结:看视频说Session钝化后保存至硬盘,Session的活化可在浏览器重新打开(即一个会话关闭后)再次取出对象信息;

但实际经验是Session的生命周期只有一个会话,或许是我Tomcat的问题,在会话关闭后重新打开时虽然有保存Session

信息到磁盘,但此时取不出Session信息。

java 事件监听器是组件_JavaWeb的三大组件之事件监听组件(Listener)相关推荐

  1. 前端开发——Vue 监听组件生命周期

    监听组件生命周期 通常我们使用 $emit 监听组件生命周期,父组件接收事件进行通知. 子组件 export default {mounted() {this.$emit( listenMounted ...

  2. SpringBoot--->>>原理解析-->>自定义事件监听组件

    自定义事件监听组件 在上面了解了在程序启动时准备工作和启动过程会扫描 spring.factories 中的配置,拿到要启动的各种配置.这也说明可以自己自定义一些程序启动时会自动扫描的文件,然后在 r ...

  3. Vue钩子函数之钩子事件hookEvent,监听组件

    在Vue当中,hooks可以作为一种event,在Vue的源码当中,称之为hookEvent. 在Vue组件中,可以用过$on,$once去监听所有的生命周期钩子函数,如监听组件的updated钩子函 ...

  4. vue组件加载完成之后执行方法_vue-cli监听组件加载完成的方法

    在使用vue-cli开发项目时遇到过一个问题,要求是页面组件全部加载完成后再执行某个函数,给上代码参考,方法可能有点笨,好在实现了功能. 1.安装vuex npm install vuex --sav ...

  5. vue_组件_监听组件事件

    1.$emit 的使用 在组件中注册自定义事件 $emit(事件名, 参数)    //该参数会当作第一个参数传入绑定的函数中 下面用一个菜单栏例子来说明,如下图所示 组件 Vue.component ...

  6. java 接口文件夹_Java NIO.2 使用Path接口来监听文件、文件夹变化

    Java7对NIO进行了大的改进,新增了许多功能: •对文件系统的访问提供了全面的支持 •提供了基于异步Channel的IO 这些新增的IO功能简称为 NIO.2,依然在java.nio包下. 早期的 ...

  7. Java日记_17.9.01——点击按钮后,键盘监听失效的原因与解决办法

    最近在自学JAVA,听了前辈的安利在做自己的小画板,然后悲剧就发生了,同时添加按钮和键盘监听之后,就产生了如题的问题,一直觉得是自己监听事件注册的不对,改了一天,然后终于找到了原因,真的巨坑啊我觉得q ...

  8. oracle无法创建监听器,关于Oracle net Manager中点击无法创建监听程序的解决方案

    首先查看你的环境变量中是否有 如果没有请添加该环境变量.变量名为:TNS_ADMIN  变量值为:E:\app\Administrator\product\11.2.0\dbhome_1\NETWOR ...

  9. bootstrap源码之滚动监听组件scrollspy.js详解

    其实滚动监听使用的情况还是很多的,比如导航居于右侧,当主题内容滚动某一块的时候,右侧导航对应的要高亮. 实现功能 1.当滚动区域内设置的hashkey距离顶点到有效位置时,就关联设置其导航上的指定项 ...

最新文章

  1. 推荐一位玩自动化的 Python 爱好者
  2. java模拟一个军队作战_战区级联合作战仿真推演系统
  3. 基于wemos D1的无线遥控灯(433m无线模块)
  4. 图像语义分割(4)-SegNet:深度全卷积编解码结构
  5. 小品: 关于C++引用
  6. 手机app性能测试简介了解
  7. 数字波束形成 工程实现matlab 仿真,数字波束形成算法仿真实现
  8. PyCharm常用配置和常用插件
  9. 如何设置华为悦盒Ubuntu系统的无线WiFi自动连接
  10. temp不停生成临时文件 win10_桌面出现temp文件夹|桌面出现大量临时文件|win10桌面temp文件夹是什么...
  11. C++练习实例———控制台实现坦克大战小游戏
  12. android视频播放框架Vitamio
  13. C语言怎么提出大写字母,c语言函数toupper()如何将小写字母转换为大写字母
  14. 原创|一个统计查询模块基于设计模式的抽象设计
  15. 【模型分享】SolidWorks摇摆轮机构运动仿真
  16. 每天一点产品思考(3):“稍后阅读”功能真的能有效解决碎片信息处理问题吗?...
  17. 《给程序员的职场情商课》读书笔记
  18. ora-600汇总Ora-00600 错误的代码含义及常用查询
  19. R中因子(factor)
  20. 2.13学习生活总结

热门文章

  1. Linux+Tomcat+Jdk1.8+jenkins环境搭建
  2. 酷客多基金在济南大学成立“酷客多奖助学金“
  3. Java 反射 (Class、ClassLoader、Constructor、Method、Field)
  4. Linux下命令行安装weblogic10.3.6
  5. .Net Core建站(1):EF Core+CodeFirst数据库生成
  6. C++项目參考解答:求Fibonacci数列
  7. Codeforces Round #345 (Div. 2)
  8. Cloud Insight 客户案例-晨芯时代科技有限公司
  9. hdu 1228 A + B
  10. IOS8 兼容本地推送