Servlet监听和过滤概要.ppt
文本预览下载声明
第8章 Servlet监听和过滤 内 容 提 要 Servlet可以分为三类:标准的Servlet、Servlet监听器、Servlet过滤器。 Listener是Servlet监听器,可以监听客户端的请求、服务器端的操作。 监听器用于监听一些重要的事件发生,监听器对象可以在事件发生前,发生后自动地做必要的处理。 使用Servlet监听器,可以实现对整个Web应用程序环境的监听,可以更加方便地控制ServletContext对象,HttpSession对象以及ServletRequest对象,并且可以对事件进行集中的处理。 8.1 Servlet监听器 Servlet规范中共定义了八个监听器接口,根据监听器监听的对象,可以分为三类: 用于监听应用程序环境对象(ServletContext)的事件监听器; 用于监听用户会话对象(HttpSesssion)的事件监听器; 用于监听请求消息对象(ServletRequest)的事件监听器; 根据监听器监听的事件类型,可以分为两类: 用于监听域对象本身的创建和销毁的事件监听器; 用于监听域对象中的属性的增加和删除的事件监听器; 用于监听绑定到HttpSession域中某个对象的状态的监听器; 8.1.1 Servlet上下文监听 用于实现Servlet上下文监听的接口为ServletContextListener和ServletContextAttributeListener。 ServletContextListener用于监听ServletContext对象的创建和销毁; ServletContextAttributeListener用于监听ServletContext对象中属性的增加,修改以及删除。 ServletContextListener接口的方法 ServletContextAttributeListener接口中的方法 事件参数ServletContextAttributeEvent中定义了两个方法: String getName( ):获取属性名称; Object getValue( ):获取属性值,返回Object类型; ServletContext getServletContext( ):获取当前的ServletContext对象。 程序8-1 实现Servlet上下文监听器接口,当Web容器调用事件的处理方法时,在控制台输出相应的信息。 MyServletContextListener.java: package .qfnu.ch08.listener; import javax.servlet.ServletContextAttributeEvent; import javax.servlet.ServletContextAttributeListener; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class MyServletContextListener implements ServletContextListener, ServletContextAttributeListener { public MyServletContextListener() { } public void contextInitialized(ServletContextEvent sce) { System.out.println(contextInitialized方法被调用,ServletContext对象被初始化了!); } public void attributeAdded(ServletContextAttributeEvent scae) { System.out.println(attributeAdded方法被调用,ServletContext中添加了新属性,属性名:+scae.getName()+,属性值:+scae.getValue()); } public void attributeReplaced(ServletContextAttributeEvent scae) { System.out.println(attributeReplaced方法被调用,ServletContext中更新了属性,属性名:+scae.getName()+,属性值:+scae.getValue()); } public void attributeRemoved(ServletConte
显示全部