- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Servlet监听和过滤分析
第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
文档评论(0)