Litener监听器的原理和作用是什么

这篇文章主要讲解了“Litener监听器的原理和作用是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Litener监听器的原理和作用是什么”吧!

创新互联长期为1000多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为云冈企业提供专业的成都做网站、网站建设、外贸营销网站建设云冈网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。

Servlet API 中定义了几种监听器,大多数尽管不是全部,都将监听某种形式的会话活动,通过实现对应事件的监听器接口订阅某个事件,然后在部署描述符中添加 配置,或者在该类中添加注释

@javax.servlet.annotation.WebListener (但不需要同事使用这两种方式)

如果需要,可以在单个类中实现多个监听器接口,当然,你不会希望将不同业务的代码添加到同一个类中。当某个事件发生时,将触发事件发布,然后容器将调用对应事件监听器中的方法。

Listener

监听三个域对象

ServletContext

ServletRequest

HttpSession

监听三个对象的创建和销毁

ServletContextListener

servlet 启动 和 销毁的时候会触发

ServletRequestListener

每次request 请求来 会触发, 刷新下页面就会触发

HttpSessionListener

一个浏览器只创建一次session

创建:java中第一次调用 request.getSession 的时候

销毁:

session超时

手动销毁 session

服务器非正常关闭

监听三个对象的属性变化 (添加 替换 删除)

ServletContextAttributeListener

application.setAttribute("aa","fffffff 66666 aaa
aaaa");

System.out.println("add"+event.getName()+event.getValue());

application.setAttribute("aa","f33333 aaa
aaaa");

application.removeAttribute("aa");

ServletRequestAttributeListener

HttpSessionAttributeListener

监听session中javabean的状态

这2个接口需要javabean实现,是让javabean感知到自己的状态

HttpSessionActivationListener (钝化(session 写入 磁盘)和活化 (磁盘写入session))

钝化: javabean 从session 持久化到磁盘上

活化: javabean 从磁盘写入session 中

也是要写到指定的类上 要实现2个接口 implementsHttpSessionActivationListener,Serializable{

可以通过配置文件修改 javabean 钝化 活化 的时间

/META-INFO/context.xml

maxIdleSwap="1"多长时间不用

directory 目录下

<Context>

<ManagerclassName**="org.apache.catalina.session.PersistentManager"** maxIdleSwap**="1"**>

<StoreclassName**="org.apache.catalina.session.FileStore"** directory**="gwyy"** />

Manager>

Context>

HttpSessionBindingListener (session的绑定和解绑 )

需要往session里面new 哪个类就在哪个类上加绑定接口

session.setAttribute("p",newPerson(1,"tom"));

要往 Person 类上加接口

让容器继承监听器 ,然后加上@WebListener

@WebListener

public class SessionListener implements HttpSessionListener, HttpSessionIdListener{}

web.xml 注册

<listener>

<listener-class>me.liangtian.web.servlet.myServletLislistener-class>

listener>

<listener>

<listener-class>me.liangtian.web.servlet.myRequestLislistener-class>

listener>

<listener>

<listener-class>me.liangtian.web.servlet.mySessionLislistener-class>

listener>

感谢各位的阅读,以上就是“Litener监听器的原理和作用是什么”的内容了,经过本文的学习后,相信大家对Litener监听器的原理和作用是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


当前标题:Litener监听器的原理和作用是什么
本文来源:http://myzitong.com/article/pschod.html