Java Web_第7章_过滤器_第1页
Java Web_第7章_过滤器_第2页
Java Web_第7章_过滤器_第3页
Java Web_第7章_过滤器_第4页
Java Web_第7章_过滤器_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

Servlet过滤器 回顾 三个作用域对象 ServletContext ServletRequest和HttpSession接口对于同一个客户的多个请求 Session会跨这些请求持久存储设置在上下文和会话作用域中的对象 会非常消耗系统资源请求作用域范围仅仅作用在与一个请求相关的两个资源之间ServletContext监听器用于管理应用程序JVM级别保存的资源或状态HTTP会话监听器用于管理从同一客户端或用户发送的一系列请求的资源或状态 Request请求监听器用于管理Request请求生命周期内的状态 目标 过滤器的基本概念过滤器API开发和配置过滤器的步骤过滤器链 过滤器概述 一个中间组件 用于拦截源数据和目的数据之间的消息过滤二者之间传递的数据 Web应用上的过滤器 驻留在Web服务器上的Web组件过滤从客户端传递到服务器端的请求和响应 过滤请求和响应 可以更改请求的内容 或者重新设置请求头 然后再将请求传递给目标资源 可以对响应的内容进行更改 然后再将响应发送回客户端 在Web应用程序中部署过滤器 对客户端和目标资源来说都是透明的 他们并不需要知道过滤器的存在 Web应用上部署多个过滤器 过滤器可以组成一个过滤器链 链中的每个过滤器负责特定的操作和任务 客户端的请求和响应在这些过滤器之间传递 过滤器的一些常见应用 1 认证过滤 对用户请求进行统一的认证 2 登录和审核过滤 对用户的访问请求进行记录和审核 3 图像转换过滤 转换图像格式 4 数据压缩过滤 对用户发生的数据进行压缩 从而减少传输量 5 加密过滤 对请求和响应进行加密解密处理 6 令牌过滤7 资源访问触发事件过滤8 XSLT过滤9 MIME type过滤 过滤器示例 所有的过滤器必须实现javax servlet Filter接口 publicclassHelloWorldFilterimplementsFilter privateFilterConfigfilterConfig publicvoidinit FilterConfigfilterConfig this filterConfig filterConfig publicvoiddoFilter ServletRequestrequest ServletResponseresponse FilterChainfilterChain throwsServletException IOException PrintWriterpw response getWriter publicvoiddestroy 代码与实现Servlet的代码类似 也体现了过滤器的生命周期 过滤器部署 将编译好的class文件放置在Web应用程序的classes目录下在部署文件web xml中添加过滤器的注册与映射 HelloWorldFiltercom lovobook HelloWorldFilterHelloWorldFilter 发出请求 http localhost 8080 lovobook 输入任意路径过滤器都会执行 过滤器API 由容器实现的接口javax servlet Filterjavax servlet FilterChainjavax servlet FilterConfig四个包装器类javax servlet ServletRequestWrapperjavax servlet ServletResponseWrapperjavax servlet http HttpServletRequestWrapperjavax servlet http HttpServletResponseWrapper 在请求送到过滤器链的下一个组件之前更改请求的内容或者改变从前一个组件接收的响应 Filter接口 Filter接口是过滤器API的核心 1 过滤器的生命周期方法 过滤器API不提供Filter接口的任何实现自定义的过滤器必须明确地实现所有三个方法2 容器仅调用过滤器实例的init 方法一次 在init 方法没有执行完前 容器不会转发任何请求到过滤器3 doFilter 方法给过滤器对象一个机会来处理请求 转发请求到过滤器链中的下一个组件 或者自己回复客户端 FilterConfig接口 为过滤器提供初始化参数由Servlet容器实现 FilterChain接口 由容器实现将请求传递到过滤器链的下一个组件 这个组件可能是另一个过滤器 如果过滤器是过滤器链中最后一个过滤器 那么这个组件就是目标的资源 配置Filter 元素 ValidatorFiltercom lovobook filters ValidatorFilterlocaleUSA 与Servlet的初始化参数相同 配置Filter 元素 所有匹配到该URL定义的请求 都要被filter name中定义的过滤器过滤 servlet name用于定义一个servlet名 所有对该servlet的访问都要被filter name中定义的过滤器过滤 过滤器对应的请求方式 可以是REQUEST INCLUDE FORWARD ERROR四种之一 默认是REQUEST ValidatorFilter docValidatorFilterreportServlet 配置过滤器链 用多个过滤器处理在同一个请求使用多个元素配置过滤器链相同映射的过滤器执行顺序按照它们在部署描述文件中出现的顺序排序首先调用匹配请求URI的过滤器再查找用Servlet名匹配请求URI的所有过滤器 FilterARedServletFilterB redRedServlet red 容器会先调用匹配请求URI的过滤器 然后才是匹配servlet名的过滤器 因此 FilterB始终在FilterA之前调用 总结 过滤器是驻留在Web服务器上的Web组件 它可以过滤从客户端传递到服务器端的请求和响应可以部署多个过滤器 这些过滤器组成一个过滤器链过滤器API包括Fil

温馨提示

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

评论

0/150

提交评论