传智播客java学习--Servlet监听器listener

今天我学习了javaweb 的监听器的知识,是冯老师讲的课,我做了简单的笔记:

 

Servlet监听器listener

一、         创建(servletcontext)上下文监听:

a)       定义一个类,实现ServletContextListener接口,在web.xml里面注册监听,

b)      注册和调用由服务器完成:contextInitialized(ServletContextEvent sce):服务器启动时创建servletcontext对象时自动调用,contextDestroyed(ServletContextEvent sce):servletcontext消亡时调用的方法,

二、         创建(httpsession)监听:

a)        创建一个类,实现HttpSessionListener接口,注册监听:

b)      sessionCreated(HttpSessionEvent se)方法:session创建时调用

c)       sessionDestroyed(HttpSessionEvent se):session销毁时调用,

d)      利用HttpSessionEvent获取session的信息:

e)      

三、         创建(httpservletrequest)监听:

a)       实现ServletRequestListener接口,

b)      requestDestroyed(ServletRequestEvent sre):request销毁时调用

c)       requestInitialized(ServletRequestEvent sre):request创建时调用

四、         域对象中属性变更的监听器:监听属性的增加,删除,替换

a)       这三个监听器接口分别是:             ServletContextAttributeListener, HttpSessionAttributeListener 和ServletRequestAttributeListener,

b)      创建一个类实现以上某一个接口,注册监听器

c)       在页面增加属性,

d)      使用监听器参数ServletRequestAttributeEvent srae),可以获取对象的name和values;

e)       替换:输出的是替换前的值;

f)        在jsp页面使用servlet:this.getServletContext;  可以直接使用session;可以直接使用request,

五、         感知session绑定的监听器,

a)       保存在 Session 域中的对象可以有多种状态:绑定到  Session 中;从 Session 域中解除绑定;随 Session 对象持久化到一个存储设备中;随 Session 对象从一个存储设备中恢复

b)      Servlet 规范中定义了两个特殊的监听器接口来帮助 JavaBean 对象了解自己在 Session 域中的这些状态:

          HttpSessionBindingListener接口

          HttpSessionActivationListener接口 ,

c)        实现这两个接口的类不需要 web.xml 文件中进行注册

六、HttpSessionBindingListener接口

a)         实现了HttpSessionBindingListener接口的 JavaBean 对象可以感知自己被绑定到 Session 中和从 Session 中删除的事件

b)        当对象被绑定到 HttpSession 对象中时,web 服务器调用该对象的  void valueBound(HttpSessionBindingEvent event) 方法

c)        当对象从 HttpSession 对象中解除绑定时,web 服务器调用该对象的 void valueUnbound(HttpSessionBindingEvent event)方法

七、HttpSessionActivationListener接口

a)         实现了HttpSessionActivationListener接口的 JavaBean 对象可以感知自己被活化和钝化的事件

b)        当绑定到 HttpSession 对象中的对象将要随 HttpSession 对象被钝化之前,web 服务器调用该对象的  void sessionWillPassivate(HttpSessionBindingEvent event) 方法

c)        当绑定到 HttpSession 对象中的对象将要随 HttpSession 对象被活化之后,web 服务器调用该对象的 void sessionDidActive(HttpSessionBindingEvent event)方法

八、         ****写一个HttpSessionBindingListener的监听器********

a)       步骤:定义一个User javabean;实现HttpSessionBindingListener接口,有两个方法:            valueBound(HttpSessionBindingEvent event) :绑定javaean     valueUnBound(HttpSessionBindingEvent event):接触绑定

b)      在jsp页面,将user放入session.setAtttibute(“user“,”User”),将执行valueBound方法,当user被remove时,执行valueUnBound方法;

c)       session.setAtttibute(“user“,User),session.setAtttibute(“user“,User1)先绑定新的值,后解除旧的绑定

d)      **********HttpSessionActivationListener*********

e)       步骤:Javabean 继承HttpSessionActivationListener接口和 接口

f)        sessionDidActivate(HttpSessionEvent se)方法:(活化)把session从硬盘读取到服务器的内存中;

g)       sessionWillPassivate(HttpSessionEvent se):(钝化)把session存储到硬盘上的这个位置work/catalina/,下次服务器启动时,重新读取,

总结:今天的知识点笔记多,归纳起来:监听器可以分为以下几种:1.用于监听域对象自身的创建和销毁的事件监听器
2.用于监听域对象中的属性的增加和删除的事件监听器
3.用于监听绑定到HttpSession域中的某个对象的状态的事件监听器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值