过滤器与监听器_第1页
过滤器与监听器_第2页
过滤器与监听器_第3页
过滤器与监听器_第4页
过滤器与监听器_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

第九章过滤器与监听器,张化本章学习任务,了解Servlet过滤器的基本概念掌握Servlet过滤器的工作原理掌握Servlet过滤器的配置过程了解Servlet监听器的基本概念掌握Servlet监听器的工作原理掌握Servlet监听器的三种类型掌握Servlet监听器的配置过程,9.1Servlet过滤器的基本概念,Filter即过滤器,是在Servlet2.3之后增加的新功能,当需要限制用户访问某些资源或者在处理请求时提前处理某些资源时,即可使用过滤器完成过滤器是以一种组件的形式绑定到Web应用程序当中的,在没有使用过滤器以前,客户端都是直接调用请求Web资源的,但是一旦加入了过滤器,请求就会先交给过滤器处理,然后再访问Web资源,达到对某些资源的限制访问,9.1Servlet过滤器的基本概念,Servlet过滤器介于与之相关的Servlet或JSP页面与客户端之间,工作原理:当某个资源与Servlet过滤器关联后,对该资源的所有请求都会经过Servlet过滤器,Servlet过滤器在Servlet被调用之前会检查请求对象(Request对象),并决定是将请求转发给过滤器链中的下一个资源还是中止该请求并响应用户若请求被转发给过滤器链中的下一个资源处理后,Servlet过滤器会检查响应对象(Response对象),进行处理后返回给用户,9.1Servlet过滤器的基本概念,Servlet过滤器其实就是一种小型的、可插入的Web组件,它能够对Servlet容器的请求和响应进行拦截和处理,并能生成请求和响应。,9.2Servlet过滤器的配置,配置Servlet过滤器包括下面两个步骤:1、命名Servlet过滤器和指定Servlet过滤器相应的实现类,并且可选择指定传递至Servlet过滤器的初始化参数2、将Servlet过滤器映射至URL或Servlet,这是通过元素来实现的,9.2Servlet过滤器的配置,命名过滤器和实现类并设置初始参数FilterNamepackage.classNameParamName1ParamValue1ParamName2ParamValue2,9.2Servlet过滤器的配置,将Servlet过滤器映射至URL的配置代码如下:FilterName/path元素和元素的子元素一致,元素指定了过滤器的映射路径,9.2Servlet过滤器的配置,Servlet过滤器还可映射至Servlet:FilterNameServletName元素和元素的子元素一致,元素指定过滤器映射的Servlet的名称,9.2Servlet过滤器的配置,创建过滤器须实现javax.servlet.Filter接口,该接口内定义了3个方法:init(FilterConfigconfig):用于初始化过滤器,并其内获取web.xml文件中配置的过滤器初始化参数destroy():用于销毁过滤器,9.2Servlet过滤器的配置,doFilter(ServletRequestreg,ServletResponseres,FilterChainchain):用于进行过滤操作,该方法的第一个参数为ServletRequest对象,此对象给过滤器提供了对进入的信息(包括表单数据、Cookie和HTTP请求头)的完全访问第二个参数为ServletResponse,用于响应使用ServletRequest对象访问的信息,通常在简单的过滤器中忽略此参数;最后一个参数为FilterChain,该参数用来调用过滤器链中的下一个资源。,9.3Servlet过滤器应用实例,我们来做一个IP过滤的实例,9.3Servlet过滤器应用实例,9.3Servlet过滤器应用实例,9.4Servlet监听器的工作原理,Servlet监听器是Web应用程序事件模型的一部分,当Web应用中的某些状态发生改变时,Servlet容器就会产生相应的事件,比如创建ServletContext对象时触发ServletContextEvent事件,创建HttpSession对象时触发HttpSessionEvent事件,Servlet监听器可接收这些事件,并可以在事件发生前、发生后可以做一些必要的处理,9.5监听器的类型,根据监听对象的不同,Servlet2.4将Servlet监听器划分为以下3种:ServletContext事件监听器:用于监听应用程序环境对象即applicationHttpSession事件监听器:用于监听用户会话对象即sessionServletRequest事件监听器:用于监听请求消息对象即request,9.5.1ServletContext事件监听器,对ServletContext对象进行监听的接口有ServletContextAttributeListener和ServletContextListener其中ServletContextAttributeListener用于监听ServletContext对象中属性的改变,包括增加属性、删除属性和修改属性。ServletContextListener用于监听ServletContext对象本身的改变,例如ServletContext对象的创建和销毁,9.5.1ServletContext事件监听器,ServletContext事件监听器中的接口和方法:,9.5.2HttpSession事件监听器,对会话对象进行监听的接口有HttpSessionAttributeListener、HttpSessionListener、HttpSessionActivationListener和HttpSessionBindingListener其中HttpSessionAttributeListener用于监听HttpSession对象中属性的改变,例如属性的增加、删除和修改;HttpSessionListener用于监听HttpSession对象的改变,例如HttpSession对象的创建与销毁,HttpSessionBindingListener用于监听HttpSession对象的绑定状态,例如添加对象和移除对象,9.5.2HttpSession事件监听器,9.5.3ServletRequest事件监听器,对请求消息对象进行监听的接口有ServletRequestListener和ServletRequestAttributeListener,其中ServletRequestListener用于监听ServletRequest对象的变化,例如ServletRequest对象的创建和销毁ServletRequestAttributeListener用于监听ServletRequest对象中属性的变化,例如属性的增加、删除和修改,9.5.3ServletRequest事件监听器,ServletRequest事件监听器的接口和方法如表所示:,9.6Servlet监听器应用实例

温馨提示

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

评论

0/150

提交评论