
也本双子末程 DONG UNIVERSITY OF TRCIINOLOG 第六章创建Web监听 和过滤程序 2014年6月 计 机 学 院 J2EE WEB
J2EE WEB 计 算 机 学 院 第六章 创建Web监听 和过滤程序 2014年6月

归本程子太军 HANDONG UNIVERSITY OF TECINOL 创建Web监听和过滤程序 ▣Seet监听器 口Web应用开发的一个重要组成部分 口目的:给Web应用程序增加后台事件处理机制,以便 更好地监视和控制Web应用的状态变化。 口监听器的类型 口Request事件监听器、HttpSession事件监听器和 ServletContext事件监听器。 口通过这些监听程序,当监听的信息满足条件时,在后 台自动执行某些程序。 计 算 机 口通过部署过滤器,可以对客户端的请求和客户端 学 的响应进行统一处理。 院 2 J2EE WEB
J2EE WEB 计 算 机 学 院 2 创建Web监听和过滤程序 ❑Servlet监听器 ❑Web应用开发的一个重要组成部分 ❑目的:给Web应用程序增加后台事件处理机制,以便 更好地监视和控制Web应用的状态变化。 ❑监听器的类型 ❑Request事件监听器、HttpSession事件监听器和 ServletContext事件监听器。 ❑通过这些监听程序,当监听的信息满足条件时,在后 台自动执行某些程序。 ❑通过部署过滤器,可以对客户端的请求和客户端 的响应进行统一处理

归本理子末军 SHANDONG UNIVERSITY OF TECIINOLOGY 主要内容 口ServletContext监听 口HTTP会话监听 口对请求监听 口开发Web应用过滤器 计 算 机 院 3 J2EE WEB
J2EE WEB 计 算 机 学 院 3 主要内容 ❑ServletContext监听 ❑HTTP会话监听 ❑对请求监听 ❑开发Web应用过滤器

归本程王太军 HANDONG UNIVERSITY OF TECIINOLOQ 6.1 ServletContext.监听 口监听ServletContext的信息,比如ServletContext 的创建、删除,属性的增加、删除、修改。 口步骤: 口(1)创建一个类,实现接口: ServletContextListener ServletContextAttributeListener (2)在web.xml文件中加listener.监听器 计 算 机 例程:监听ServletContextt创建、销毁及属性改变的信息 学 院 J2EE WEB
J2EE WEB 计 算 机 学 院 4 6.1 ServletContext监听 ❑监听ServletContext的信息,比如ServletContext 的创建、删除,属性的增加、删除、修改。 ❑步骤: ❑(1)创建一个类,实现接口: ❑ServletContextListener ❑ServletContextAttributeListener ❑(2)在web.xml文件中加listener监听器 ❑ 例程: 监听ServletContext创建、销毁及属性改变的信息

山东程2太军 HANDONG UNIV ServletContext及属性监听类 public class ServletContextListen implements ServletContextListener,ServletContextAttributeListener public void contextDestroyed(ServletContextEvent arg0){ System.out.println('"应用程序销毁"); public void contextlnitialized(ServletContextEvent arg0){ System.out.println("应用程序启动"); public void attributeAdded(ServletContextAttributeEvent arg0){ System.out.printIn("属性增加:"+arg0.getName(0t":"+arg0.getValue(0); public void attributeRemoved(ServletContextAttributeEvent arg0){ System.out.printIn("属性删除:"+arg0.getName()+":"+arg0.getValue(); 计 public void attributeReplaced(ServletContextAttributeEvent arg0){ 算 System.out.print(属性改变:”+arg0.getName(0+“:旧值为"+arg0.getValue(0li System.out.println(新值为:+argO.getServletContext().getAttribute(arg0.getName(0)i 机 学 院
J2EE WEB 计 算 机 学 院 5 ServletContext及属性监听类 public class ServletContextListen implements ServletContextListener,ServletContextAttributeListener { public void contextDestroyed(ServletContextEvent arg0) { System.out.println("应用程序销毁"); } public void contextInitialized(ServletContextEvent arg0) { System.out.println("应用程序启动"); } public void attributeAdded(ServletContextAttributeEvent arg0) { System.out.println("属性增加:"+arg0.getName()+":"+arg0.getValue()); } public void attributeRemoved(ServletContextAttributeEvent arg0) { System.out.println("属性删除:"+arg0.getName()+":"+arg0.getValue()); } public void attributeReplaced(ServletContextAttributeEvent arg0) { System.out.print(“属性改变:”+arg0.getName()+“:旧值为"+arg0.getValue()); System.out.println(“ 新值为:+arg0.getServletContext().getAttribute(arg0.getName())); } }

归东程子末军 HANDONG UNIVERSITY OF TECIINOLOQ 6.2监听HTTP会话 口HttpSessionListener接口 监听HTTP会话创建、销毁的信息 ☐HttpSessionActivationListener接口 监听HTTP会话的active、passivate情况 口HttpSessionBindingListener接▣ 监听HTTP会话中对象的绑定信息 ▣HttpSessionAttributeListener接口 监听HTTP会话中属性的设置请求 计 算 机 例子:监听HTTP会话 学 院 6 J2EE WEB
J2EE WEB 计 算 机 学 院 6 6.2 监听HTTP会话 ❑HttpSessionListener接口 监听HTTP会话创建、销毁的信息 ❑HttpSessionActivationListener接口 监听HTTP会话的active、passivate情况 ❑HttpSessionBindingListener接口 监听HTTP会话中对象的绑定信息 ❑HttpSessionAttributeListener接口 监听HTTP会话中属性的设置请求 例子:监听HTTP会话

归本程2太军 SHANDONG UNIVERSITY OF TECIINOLOGY 6.3对请求监听 口在Servlet中,增加了一个可以监听客户端的请求。 通过监听请求,可以对请求进行统一处理。 口步骤: ▣(1) 建立类实现: 口ServletRequestListener接▣ ▣ServletRequestAttributeListener?接▣ (2)在web.xml文件中进行配置 计 算 机 例子:监听客户端请求及请求参数 学 院 J2EE WEB
J2EE WEB 计 算 机 学 院 7 6.3 对请求监听 ❑在Servlet中,增加了一个可以监听客户端的请求。 通过监听请求,可以对请求进行统一处理。 ❑步骤: ❑(1)建立类实现: ❑ServletRequestListener接口 ❑ServletRequestAttributeListener接口 ❑(2)在web.xml文件中进行配置 例子:监听客户端请求及请求参数

归东理子太军 SHANDONG UNIVERSITY OF TECIINOLOG package cn.sdut; import javax.servlet.ServletRequestAttributeEvent; import javax.servlet.ServletRequestAttributeListener; import javax.servlet.ServletRequestEvent; import javax.servlet.ServletRequestListener; public class RequestListen implements ServletRequestListener,ServletRequestAttributeListener public void requestDestroyed(ServletRequestEvent arg0){ System.out.println("requestDestroyed"); } public void requestlnitialized(ServletRequestEvent arg0){ System.out.println("requestInitialized"); } public void attributeAdded(ServletRequestAttributeEvent arg0){ System.out.println("attributeAdded"+arg0.getName(+":"+arg0.getValue(); } public void attributeRemoved(ServletRequestAttributeEvent arg0){ System.out.println("attributeRemoved"+arg0.getName(+":"+argo.getValue(): 计 } 算 public void attributeReplaced(ServletRequestAttributeEvent arg0){ 机 System.out.println("attributeReplaced"+arg0.getName()+":"+arg0.getValue(); System.out.println("新值是:"+argO.getServletRequest0(.getAttribute(argO.getName())l: 学 } 院 J2EE WEB
J2EE WEB 计 算 机 学 院 8 package cn.sdut; import javax.servlet.ServletRequestAttributeEvent; import javax.servlet.ServletRequestAttributeListener; import javax.servlet.ServletRequestEvent; import javax.servlet.ServletRequestListener; public class RequestListen implements ServletRequestListener, ServletRequestAttributeListener { public void requestDestroyed(ServletRequestEvent arg0) { System.out.println("requestDestroyed"); } public void requestInitialized(ServletRequestEvent arg0) { System.out.println("requestInitialized"); } public void attributeAdded(ServletRequestAttributeEvent arg0) { System.out.println("attributeAdded "+arg0.getName()+":"+arg0.getValue()); } public void attributeRemoved(ServletRequestAttributeEvent arg0) { System.out.println("attributeRemoved "+arg0.getName()+":"+arg0.getValue()); } public void attributeReplaced(ServletRequestAttributeEvent arg0) { System.out.println("attributeReplaced "+arg0.getName()+":"+arg0.getValue()); System.out.println("新值是:"+arg0.getServletRequest().getAttribute(arg0.getName())); } }

归东双王末军 SHANDONG UNIVERSITY OF TECIINOLOGY 6.4开发Web应用过滤器 口过滤器简介 口向Web应用程序的请求和响应处理添加功能的Web服务组件 口是一个程序,先于Servlet:或JSP页面运行在服务器上。 口可以附加在一个或多个Servlet或JSP页面上,检查进入到这些 资源的请求信息。 口过滤器的运行方式 口拦截从客户端发来的请求,对请求进行相应处理。根据配置发 送到下一个过滤器,进行处理,再发送到下一个过滤器。直到 传递给Servlet.、JSP页面或者发送响应到客户端。 计 口一个Web组件可以包括多个过滤器,一个过滤器只能实现很少 算 的功能,但多个过滤器组成庞大的过滤链,就能实现强大的过 机 滤功能。 学 院 9 J2EE WEB
J2EE WEB 计 算 机 学 院 9 6.4 开发Web应用过滤器 ❑ 过滤器简介 ❑向 Web 应用程序的请求和响应处理添加功能的Web 服务组件 ❑是一个程序,先于Servlet或JSP页面运行在服务器上。 ❑可以附加在一个或多个Servlet或JSP页面上,检查进入到这些 资源的请求信息。 ❑ 过滤器的运行方式 ❑拦截从客户端发来的请求,对请求进行相应处理。根据配置发 送到下一个过滤器,进行处理,再发送到下一个过滤器。直到 传递给Servlet、JSP页面或者发送响应到客户端。 ❑一个Web组件可以包括多个过滤器,一个过滤器只能实现很少 的功能,但多个过滤器组成庞大的过滤链,就能实现强大的过 滤功能

归东程子太军 SHANDONG UNIVERSITY OF TECIINOLOG 6.4开发Web应用过滤器 口过滤器的工作原理: 用户发送请求 过滤器将用户的请求 发送至Web资源 过滤器 用户 (可多个) Web 资源 计 算 机 学 院 10 J2EE WEB
J2EE WEB 计 算 机 学 院 10 6.4 开发Web应用过滤器 ❑过滤器的工作原理: Web 资源 用户发送请求 过滤器将用户的请求 发送至 Web 资源 用户 过滤器 (可多个)