10-J2EE架构与程序设计(过滤器).pptVIP

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
10-J2EE架构与程序设计(过滤器)

J2EE架构与程序设计 主讲:李伟刚 liweigang@ 西北工业大学软件与微电子学院 第十章 过滤器 主要内容 过滤器的概念 请求过滤器 响应过滤器 过滤器的概念 需求 要求每个servlet跟踪用户请求 要求操纵web应用中每个servlet的响应 不应修改servlet代码 过滤器 是一种Java组件 可被用来截获并处理发送到servlet之前的请求 可被用来处理servlet运行完而发送回客户端之前的响应 在DD中配置容器何时调用过滤器 过滤器的概念 过滤器的作用 请求过滤器 执行安全检查 重新格式化请求的头或体 审计或记录请求的日志 响应过滤器 压缩响应流 追加或变更响应流 创建一个完全不同的响应 过滤器的概念 过滤器的特点 过滤器是模块化的 可以链式排列 完全是自包含的 在DD中配置过滤器运行的顺序 过滤器与servlet相似 容器对过滤器API是感知的 过滤器实现Filter接口 过滤器可以获得ServletContext,并能与其他过滤器连接 容器管理过滤器的寿命周期 Init(), destroy(), doFilter() 过滤器在DD中定义 一个web应用可以有多个过滤器 一个给定的请求可以使多个过滤器运行 过滤器本身并不知道谁要调用它们,以及它的下一个是谁 请求过滤器 一个例子 请求过滤器 过滤器的寿命周期 每个过滤器必须实现Filter接口中的三个方法 init():容器决定实例化一个过滤器时,该方法可以在过滤器被调用前执行一些构建任务,如获得FilterConfig对象的引用 doFilter():当容器确定该过滤器应当用于当前请求时,调用此方法。可以在其中执行过滤器功能。有三个参数 ServletRequest ServletResponse FilterChain destroy():当容器决定移除一个过滤器实例时,调用该方法,可以在其中执行一些清除对象的代码 请求过滤器 如何理解FilterChain接口 过滤器是一些模块化的“构造块”,可以任何顺序拼凑在一起 FilterChain知道过滤器的拼凑方式 FilterChain接口的doFilter()方法计算下来应调用哪个过滤器的doFilter()方法,或者servlet的service()方法,而Filter接口的doFilter()方法执行实际的过滤操作 请求过滤器 在DD中配置过滤器 声明过滤器 请求过滤器 将过滤器与打算过滤的web资源映射起来 用URL样式定义web资源 用servlet名字定义web资源 请求转发的web资源 请求过滤器 组织这些映射关系来创建过滤器调用序列 所有需匹配URL样式的过滤器先排序 能匹配URL样式的过滤器依照其在DD中声明的顺序放置到FilterChain中 练习 请求过滤器 响应过滤器 在servlet执行完后,可以在响应发送到客户端前对响应输出做一些处理 在过滤器的doFilter()方法中,调用FilterChain.doFilter()方法之后执行响应过滤 响应过滤器 直接使用容器传来的Response对象是否可行 响应过滤器 在servlet将执行结果写入输出后,而返回客户端之前捕获输出 响应过滤器 响应对象的包装 自己实现HttpServletResponse接口非常麻烦,需要实现接口及其父接口中所有的方法 Servlet API的包装类 不是提供接口的实现 可以获得一个到接口实现类的实例引用,并将自己的方法调用委托其执行 用户只需重载少数方法执行自己的业务功能 请求/响应包装器有: ServletRequestWrapper HttpServletRequestWrapper ServletResponseWrapper HttpServletResponseWrapper 响应过滤器 例子:压缩响应输出 响应的包装器类 过滤器 响应过滤器 思考与讨论题 过滤器的概念 过滤器的寿命周期 FilterChain的特点及过滤器链的排序方式 开发请求过滤器 响应过滤器中对响应对象的包装 * 2008 by Li Weigang. All rights reserved. * 2008 by Li Weigang. All rights reserved. Filter和FilterChain在javax.servlet包中 每个过滤器必须实现Filter接口 必须实现init()方法,通常用于存储FilterConfig对象的引用 在doFilter()中进行过滤工作。注意:使用常规的ServletRequest和ServletResponse对象 配置的下一个过滤器或servlet被调用 必须实现destroy()方法,但是通常是空的 必须的 必须的 可选的,并可以有

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档