1,什么是过滤器? 在 JSP 的 WEB 应用程序中,过滤器是一种在服务端运行的 Web 组件程序, 它可以截取客户端给服务器发的请求,也可以截取服务器给客户端的响应。 在过滤器中,可以对请求的资源做出改变,然后将请求交给被请求的资源。 2,什么是过滤器链 在一个 WEB 应用程序中可以配置多个过滤器,从而形成过滤器链,在请求 资源时,过滤器链中的过滤器依次对请求做出处理,在接受响应时再按照相 反的顺序对响应做出处理 开发一个过滤器需要实现 Filter 接口。 3,过滤器的作用 再请求某个资源前先进入过滤器,执行完过滤后,然后再请求某资源,对请 求前的事情进行处理,这就是过滤器的作用。 4,什么是监听器? 监听器的作用是监听 Web 应用程序中某一个对象,并根据应用
程序的需求做出 相 应 的 处 理 ,
Java Web 容 器 中 Servlet 提 供 了 多 种 监 听 器 , 常 见 的 有:ServletRequestAttributeListener, ServletRequestListener ,HttpSessionAttributeListener, HttpSessionListener ,ServletContextAttributListener ,ServletContextListener ServletContextListener 用于监听 ServletContext 对象的创建和销毁 HttpSessionListener 用于监听 HttpSession 对象的创建和销毁 5,如何监听 Session 范围中的数据访问? 监听器概述 1.Listener 是 Servlet 的监听器 2.可以监听客户端的请求、服务端的操作等。 3.通过监听器,可以自动激发一些操作,如监听在线用户数量,当增加一个 HttpSession 时,给在线人数加 1。 4.编写监听器需要实现相应的接口 5.编写完成后在 web.xml 文件中配置一下,就可以起作用了 6.可以在不修改现有
系统基础上,增加 web 应用程序生命周期事件的跟踪 Servlet 监听器用于监听一些重要事件的发生,监听器对象可以在事情发生 前、发生后可以做一些必要的处理。 接口: 目前 Servlet2.4 和 JSP2.0 总共有 8 个监听器接口和 6 个 Event 类,其中 HttpSessionAttributeListener 与 HttpSessionBindingListener 皆 使 用 HttpSessionBindingEvent;HttpSessionListener 和 HttpSessionActivationListener 则 都 使 用 HttpSessionEvent; 其 余 Listener 对应的 Event 如下所示: Listener 接口 ServletContextListener Event 类 ServletContextEvent
ServletContextAttributeListener HttpSessionListener HttpSessionActivationListener HttpSessionAttributeListener HttpSessionBindingListener ServletRequestListener ServletRequestAttributeListener
ServletContextAttributeEvent HttpSessionEvent
HttpSessionBindingEvent
ServletRequestEvent ServletRequestAttributeEvent
一 ServletContext 相关监听接口 补充知识:通过 ServletContext 的实例可以存取应用程序的全局对象以及初 始化阶段的变量。 在
JSP 文件中,application 是 ServletContext 的实例,由 JSP 容器默认 创建。 Servlet 中调用
getServletContext()方法得到 ServletContext 的实 例。 注意:全局对象即 Application 范围对象,初始化阶段的变量指在 web.xml 中,经由
元素所设定的变量,它的范围也是 Application 范围,例如: Name browser 当容器启动时,会建立一个 Application 范围的对象,若要在 JSP 网页中取得 此变量时: String name = (String)application.getInitParameter("Name"); 或者使用 EL 时: ${initPara.name} 若是在 Servlet 中,取得 Name 的值方法: String name = (String)ServletContext.getInitParameter("Name"); 1.ServletContextListener: 用 于 监 听 WEB 应 用 启 动 和 销 毁 的 事 件 , 监 听 器 类 需 要 实 现 javax.servlet.ServletContextListener 接口。 ServletContextListener 是 ServletContext 的 监 听 者 , 如 果 ServletContext 发生变化,如服务器启动时 ServletContext 被创建,服务 器关闭时 Se