java 过滤器 Filter.ppt

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

过滤器Filter 1. 过滤器概述 过滤器:一个驻留在服务器端的Web组件,可以截取用户端和资源之间的请求与响应信息,并对这些信息过滤。 当Web容器接收到一个对资源的请求时,它将判断是否有过滤器与这个资源关联。 如果有,容器把请求交给过滤器处理。在过滤器中,可以改变请求内容,或者重新设置请求的信息,然后再将请求发送给目标资源。 当目标资源对请求做出响应后,容器同样将响应先转发给过滤器,过滤器可以对响应的内容进行转换,然后再将响应发送到客户端。 在一个Web应用中,可以部署多个过滤器,组成一个过滤器链。过滤器链中的每个过滤器负责特定的操作和任务,客户端的请求在这些过滤器之间传递,直到目标资源。 2. Filter API Filter接口:开发过滤器要实现该接口。 主要方法: public void init(FilterConfig filterConfig) public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain):实现过滤器的功能。在特定的操作完成后,可以调用chain.doFilter方法,将请求传给下一个过滤器(或目标资源),可以直接向客户端返回响应信息,或利用转发、重定向将请求转发到其他资源。 public void destroy() FilterConfig接口:用于在过滤器初始化时向其传递信息。 主要方法: public String getFilterName() public ServletContext getServletContext() public String getInitParameter(String name) public Enumeration getInitParameterNames() FilterChain接口:该接口由容器实现,容器将其作为参数传入到过滤器对象的doFilter方法中。过滤器对象使用FilterChain对象调用过滤链中的下一个过滤器,如果该过滤器是链中的最后一个过滤器,则调用目标资源。 public void doFilter(ServletRequest request, ServletResponse response) 3. 过滤器的部署 实现一个过滤器后,需要在web.xml中对过滤器进行配置。 通过filter和filter-mapping元素完成。 filter-mapping元素可以包含0到4个dispatcher元素,它指定过滤器对应的请求方式,可以是REQUEST、INCLUDE、FORWARD、ERROR四种之一。默认是REQUEST。 REQUEST:用户直接访问页面时,Web容器将会调用过滤器。如果目标资源是通过RequestDispatcher的include或forward方法访问时,该过滤器不会被调用。 INCLUDE:目标资源是通过RequestDispatcher的include访问时,该过滤器将被调用。 FORWARD:目标资源是通过RequestDispatcher的forward方法调用时,过滤器将被调用。 ERROR:目标资源是通过声明式异常处理机制调用时,过滤器将被调用。 4. 过滤器开发实例 信息科学与工程学院 软件工程系 数据库应用软件 信息科学与工程学院 软件工程系 数据库应用软件 浏览器 过滤器 目标资源 Web容器 请求 响应 过滤器对客户端和目标资源来说是透明的 浏览器 目标资源 Web容器 请求 响应 过滤器(1) 过滤器(2) 过滤器(n) 说明:Filter不是一个标准的Servlet,不能处理用户请求,也不能对客户端生成响应。主要用于对HttpServletRequest进行预处理,也可以对HttpServletResponse进行后处理,是个典型的处理链。 Filter的作用: 在HttpServletRequest到达Servlet之前,拦截客户的 HttpServletRequest 。 根据需要检查HttpServletRequest,也可以修改HttpServletRequest头和数据。 在HttpServletResponse到达客户端之前,拦截HttpServletResponse。 根据需要检查HttpServletResponse,也可以修改HttpServletResponse头和数据。 典型应用: 对用户请求进行统一认证; 对用户发送的数据进行过滤或替换; 对内容进行压缩,以减小通信量。 过滤器链的工作流程 filter *init-param filter

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档