首页 存档 技术 查看内容

干货 | javaweb组件之一“禁用词语器”

2018-3-30 13:00 |来自: 互联网 316 0

摘要: 与其相忘于江湖,不如点击“蓝字”关注一、什么是禁用词语器javaweb有三大组件,分别是servlet,listener 和过滤器; 其中listener就是禁用词语器; 禁用词语器下面主要介绍两种情况的禁用词语器。二、情况之一禁用词语器其实主要解决一个 ...

与其相忘于江湖,不如点击“蓝字”关注

一、什么是监听器

javaweb有三大组件,分别是servlet,listener 和过滤器;

其中listener就是监听器;

监听器下面主要介绍两种情况的监听器。


二、情况之一

监听器其实主要解决一个问题,那就是谁监听谁?换句话说,就是要实现一个监听接口,并且还需要注册这个监听器。


情况一的监听器是针对三大域对象来进行监听的,分别是servletContext 和request以及session;监听分为两种情况,一种是监听域对象的生命周期,另外一种则是监听域对象的存储,替换和删除属性的变化。


两种情况的实现接口也不一样;

假如是监听生命周期的,那就需要实现一个类,继承接口ServletContextListener(只针对监听servletContext情况,不过其他两个域对象类似),要实现两个方法,分别表示ServletContext的创建和销毁。


假如是监听属性变化的,实现一个类继承于ServletContextAttributeListener接口即可。


实现了接口之后,还需要注册.在项目的web.xml文件里面定义listener标签,该标签下面有一个子标签,子标签就是填写实现接口的那个类的全名称。


三、情况之二

这种类型的监听器是针对javabean的,不是针对域对象的.

而且也不需要在web.xml文件里面注册

实现方法很简单,就是在javabean的类继承接口,接口有两种,分别代表两种监听器,一种是sessionBindingListener,另外一种就是sessionAvtivationListener.下面分别介绍两种监听器

①sessionBindingListener的作用是可以使得javabean对象知道自己有没有被添加到session里面去.无论添加还是删除都会触发相对应的回调方法.

至于回调方法则是继承这个接口必须要实现的两个方法.

②sessionAvtivationListener,的作用就是可以使得javabean对象知道自己是不是跟session一起钝化或者活化.无论是钝化还是活化,都会触发对应的回调方法.


注意

要想实现该类型的监听,不仅需要javabean继承这个接口.

另外还需要两个步骤,

1.进行相关配置,如何配置自行百度

2.javabean必须要继承持久化的接口


四、补充, 什么是钝化以及活化?

首先我们要知道,一个session是有最大生命周期的,到了时间就会被清除,但是还有另外一种情况


假如一个session长时间没有被使用,而且还没有到达这个最大生命周期.我们可以有两种做法,一种是调用session的相关api,使得它失效.


另外一种就是可以将这个session做持久化操作.所谓的持久化操作就是将这个session暂时保存到硬盘里面,到了需要的时候,在调回内存里面.


其实,当tomcat关闭的时候,servletContext会被销毁,但是所有的session都会被持久化,然后重新打开tomcat'的时候就会将这些session都取回内存.


然而,我们的这个sessionAvtivationListener实现的监听效果也是类似的,只不过我们这个是不需要关闭服务器的.我们可以设置每隔一段时间就让session实现钝化以及活化.


【本文为e安在线合作讲师“刘建恒”原创稿件,转载请联系e安在线】

END

更多资讯请点击“阅读原文”

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部