day22支付巩固知识之项目整合servlet监听器_第1页
day22支付巩固知识之项目整合servlet监听器_第2页
day22支付巩固知识之项目整合servlet监听器_第3页
day22支付巩固知识之项目整合servlet监听器_第4页
day22支付巩固知识之项目整合servlet监听器_第5页
免费预览已结束,剩余9页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、北京传智播客教育 Servlet事件监听器北京传智播客教育 监听器监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行。被监听对象(俗称 事件源)开发人员编写的监听器对象void doxx(Event e)事件对象Event(封装事件源和动作)注册监听器(即在事件源上关联监听器对象)监听器典型案例:监听window窗口的事件监听器调用监听器对象处理相应的操作处理操作操作事件源北京传智播客教育 Servlet监听器在Servlet规范中定义了多种类型的监听器,它们用于监听的事件源分别为 S

2、ervletContext, HttpSession 和 ServletRequest 这三个域对象。Servlet规范针对这三个对象上的操作,又把这多种类型的监听器划分为三种类型。监听三个域对象创建和销毁的事件监听器监听域对象中属性的增加和删除的事件监听器监听绑定到 HttpSession 域中的某个对象的状态的事件监听器。(查看API文档)北京传智播客教育 监听servletContext域对象创建和销毁ServletContextListener 接口用于监听 ServletContext 对象的创建和销毁事件。当 ServletContext 对象被创建时,触发contextIniti

3、alized (ServletContextEvent sce)方法当 ServletContext 对象被销毁时,触发contextDestroyed(ServletContextEvent sce)方法。提问,servletContext域对象何时创建和销毁:创建:服务器启动针对每一个web应用创建servletcontext销毁:服务器关闭前先关闭代表每一个web应用的servletContext北京传智播客教育 编写 Servlet 监听器和编写其它事件监听器一样,编写servlet监听器也需要实现一个特定的接口,并针对相应动作覆盖接口中的相应方法。和其它事件监听器略有不同的是,ser

4、vlet监听器的注册不是直接注册在事件源上,而是由WEB容器负责注册,开发人员只需在web.xml文件中使用标签配置好监听器,web容器就会自动把监听器注册到事件源中。一个 web.xml 文件中可以配置多个 Servlet 事件监听器,web 服务器按照它们在 web.xml 文件中的注册顺序来加载和注册这些 Serlvet 事件监听器。北京传智播客教育 监听HttpSession域对象创建和销毁HttpSessionListener接口用于监听HttpSession的创建和销毁创建一个Session时,sessionCreated(HttpSessionEvent se) 方法将会被调用。

5、销毁一个Session时,sessionDestroyed (HttpSessionEvent se) 方法将会被调用。(此处复习session对象,写多个servlet都去getSession,看session的创建)Session域对象创建和销毁的时机创建:用户每一次访问时,服务器创建session销毁:如果用户的session 30分钟没有使用,服务器就会销毁session,我们在web.xml里面也可以配置session失效时间北京传智播客教育 监听HttpRequest域对象创建和销毁ServletRequestListener 接口用于监听ServletRequest 对象的创建和

6、销毁。Request 对象被创建时,监听器的requestInitialized方法将会被调用。Request对象被销毁时,监听器的requestDestroyed方法将会被调用。(此处复习request对象,在浏览器窗口中多次刷新访问servlet,看request对象的创建和销毁,并写一个servlet,然后用sendRedirect、forward方式跳转到其它servlet,查看request对象的创建和消耗)servletRequest域对象创建和销毁的时机:创建:用户每一次访问,都会创建一个reqeust销毁:当前访问结束,request对象就会销毁北京传智播客教育 监听三个域对象

7、属性变化Servlet规范定义了监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信息事件的监听器。这三个监听器接口分别是ServletContextAttributeListener, HttpSessionAttributeListener ServletRequestAttributeListener这三个接口中都定义了三个方法来处理被监听对象中的属性的增加,删除和替换的事件,同一个事件在这三个接口中对应的方法名称完全相同,只是接受的参数类型不同。 北京传智播客教育 attributeAdded 方法当向被监听器对

8、象中增加一个属性时,web容器就调用事件监听器的 attributeAdded 方法进行相应,这个方法接受一个事件类型的参数,监听器可以通过这个参数来获得正在增加属性的域对象和被保存到域中的属性对象各个域属性监听器中的完整语法定义为:public void attributeAdded(ServletContextAttributeEvent scae) public void attributeAdded (HttpSessionBindingEvent hsbe) public void attributeAdded(ServletRequestAttributeEvent srae)北京

9、传智播客教育 attributeRemoved 方法当删除被监听对象中的一个属性时,web 容器调用事件监听器的这个方法进行相应各个域属性监听器中的完整语法定义为:public void attributeRemoved(ServletContextAttributeEvent scae) public void attributeRemoved (HttpSessionBindingEvent hsbe) public void attributeRemoved (ServletRequestAttributeEvent srae)北京传智播客教育 attributeReplaced 方法当

10、监听器的域对象中的某个属性被替换时,web容器调用事件监听器的这个方法进行相应各个域属性监听器中的完整语法定义为:public void attributeReplaced(ServletContextAttributeEvent scae) public void attributeReplaced (HttpSessionBindingEvent hsbe) public void attributeReplaced (ServletRequestAttributeEvent srae)北京传智播客教育 感知 Session 绑定的事件监听器保存在 Session 域中的对象可以有多种状态

11、:绑定到 Session 中;从 Session 域中解除绑定;随 Session 对象持久化到一个存储设备中(钝化);随 Session 对象从一个存储设备中恢复(活化)Servlet 规范中定义了两个特殊的监听器接口来帮助 JavaBean 对象了解自己在 Session 域中的这些状态:HttpSessionBindingListener接口和HttpSessionActivationListener接口 ,实现这两个接口的类不需要 web.xml 文件中进行注册北京传智播客教育 HttpSessionBindingListener接口实现了HttpSessionBindingListe

12、ner接口的 JavaBean 对象可以感知自己被绑定到 Session 中和从 Session 中删除的事件当对象被绑定到 HttpSession 对象中时,web 服务器调用该对象的 void valueBound(HttpSessionBindingEvent event) 方法当对象从 HttpSession 对象中解除绑定时,web 服务器调用该对象的 void valueUnbound(HttpSessionBindingEvent event)方法北京传智播客教育 HttpSessionActivationListener接口实现了HttpSessionActivationListener接口的 JavaBean 对象可以感知自己被活化和钝化的事件当绑定到 HttpSession 对象中的对象将要随 HttpSessi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论