这篇文章主要讲解了“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监听器的原理和作用是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!