24 过滤器与监听器

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

创新思维第九章过滤器与监听器张化龙18294401855创新思维创新思维本章学习任务了解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,这是通过filter-mapping元素来实现的创新思维创新思维9.2Servlet过滤器的配置命名过滤器和实现类并设置初始参数filterfilter-nameFilterName/filter-namefilter-classpackage.className/filter-classinit-paramparam-nameParamName1/param-nameparam-valueParamValue1/param-value/init-paraminit-paramparam-nameParamName2/param-nameparam-valueParamValue2/param-value/init-param/filter创新思维创新思维9.2Servlet过滤器的配置将Servlet过滤器映射至URL的配置代码如下:filter-mappingfilter-nameFilterName/filter-nameurl-pattern/path/url-pattern/filter-mappingfilter-name元素和filter元素的子元素filter-name一致,url-pattern元素指定了过滤器的映射路径创新思维创新思维9.2Servlet过滤器的配置Servlet过滤器还可映射至Servlet:filter-mappingfilter-nameFilterName/filter-nameservlet-nameServletName/servlet-name/filter-mappingfilter-name元素和filter元素的子元素filter-name一致,servlet-name元素指定过滤器映射的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事件监听器:用于监听应用程序环境对象即applicationHttpSession事件监听器:用于监听用户会话对象即sessionServletRequest事件监听器:用于监听请求消息对象即request创新思维创新思维9.5.1ServletContext事件监听器对ServletContext对象进行监听的接口有ServletContextAttributeListener和ServletContextListener其中ServletContextAttributeListener用于监听ServletContext对象中属性的改变,包括增加属性、删除属性和修改属性。ServletContextListener用于监听ServletContext对象本身的改变,例如ServletContext对象的创建和销毁创新思维创新思维9.5.1ServletContext事件监听器ServletContext事件监听器中的接口和方法:接口名称方法名称描述ServletContextAttributeListenerattributeAdded(ServletContextAttributeEventscae)增加属性时激发此方法attributeRemoved(ServletContextAttributeEventscae)删除属性时候激发此方法attributeReplaced(ServletContextAttributeEventscae)修改属性时激发此方法ServletContextListenercontextDestroyed(ServletContextEventsce)销毁ServletContext时激发此方法contextInitialized(ServletContextEventsce)创建ServletContext时激发此方法创新思维创新思维9.5.2HttpSession事件监听器对会话对象进行监听的接口有HttpSessionAttributeListener、HttpSessionListener、HttpSessionActivationListener和HttpSessionBindingListener其中HttpSessionAttributeListener用于监听HttpSession对象中属性的改变,例如属性的增加、删除和修改;HttpSessionListener用于监听HttpSession对象的改变,例如HttpSession对象的创建与销毁,HttpSessionBindingListener用于监听HttpSession对象的绑定状态,例如添加对象和移除对象创新思维创新思维9.5.2HttpSession事件监听器接口名称方法名称描述HttpSessionAttributeListenerattributeAdded(HttpSessionBindingEventhsbe)增加属性时激发此方法attributeRemoved(HttpSessionBindingEventhsbe删除属性时候激发此方法attributeReplaced(HttpSessionBindingEventhsbe)修改属性时激发此方法HttpSessionListenersessionCreated(HttpSessionEventhse)创建HttpSession时激发此方法sessionDestroyed(HttpSessionEventhse)销毁HttpSession时激发此方法HttpSessionBindingListenervalueBound(HttpSessionBindingEventhsbe)调用setAttribute()方法时激发此方法valueUnbound(HttpSessionBindingEventhsbe)调用removeAttribute()方法时激发此方法创新思维创新思维9.5.3ServletRequest事件监听器对请求消息对象进行监听的接口有ServletRequestListener和ServletRequestAttributeListener,其中ServletRequestListener用于监听ServletRequest对象的变化,例如ServletRequest对象的创建和销毁ServletRequestAttributeListener用于监听ServletRequest对象中属性的变化,例如属性的增加、删除和修改创新思维创新思维9.5.3ServletRequest事件监听器ServletRequest事件监听器的接口和方法如表所示:接口名称方法名称描述ServletRequestAttributeListenerattributeAdded(ServletRequestAttributeEventsrae)增加属性时激发此方法attributeRemoved(ServletRequestAttributeEventsrae)删除属性时候激发此方法attributeReplaced(ServletRequestAttributeEventsrae)修改属性时激发此方法ServletRequestListenerrequestDestroyed(ServletRequestEventsre)销毁ServletRequest时激发此方法requestInitialized(ServletRequestEventsre)创建ServletRequest时激发此方法创新思维创新思维9.6Servlet监听器应用实例我们用监听器来完善以前做过统计网站总访客人数的例子,并且实现在线人数统计web.xml配置创新思维创新思维9.6Servlet监听器应用实例创新思维创新思维本章小结本章我们学习了Servlet过滤器的工作原理Servlet过滤器的配置过程Servlet监听器的工作原理Servlet监听器的三种类型Servlet监听器的配置过程创新

1 / 26
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功