滤过滤器在Java中的作用是什么

  介绍

本篇文章为大家展示了滤过滤器在Java中的作用是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

<强>滤简介

过滤器也称之为过滤器,它是Servlet技术中最实用的技术,网页开发人员通过过滤器技术,对WEB服务器管理的所有网络资源,例如Jsp、Servlet、静态图片文件或静态html文件等进行拦截,从而实现一些特殊的功能,例如实现URL级别的权限访问控制,过滤敏感词汇,压缩响应信息等一些高级功能。

它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理。使用过滤器的完整流程:过滤器对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后过滤再对服务器响应进行后处理。

<强>筛选功能

<李>

在HttpServletRequest到达Servlet之前,拦截客户的HttpServletRequest。根据需要检查HttpServletRequest,也可以修改HttpServletRequest头和数据。

<李>

在HttpServletResponse到达客户端之前,拦截HttpServletResponse。根据需要检查HttpServletResponse,也可以修改HttpServletResponse头和数据。

<>强如何借助滤实现拦截功能

过滤器接口中有一个的doFilter方法,当开发人员编写好过滤器,并配置对哪个网络资源进行拦截后,WEB服务器每次在调用网络资源的服务方法之前,都会先调用一下过滤器的doFilter方法,因此,在该方法内编写代码可达到如下目的:

<李>

调用目标资源之前,让一段代码执行。

<李>

是否调用目标资源(即是否让用户访问网络资源)。

WEB服务器在调doFilter方用法时,会传递一个filterChain对象进来,filterChain对象是过滤器接口中最重要的一个对象,它也提供了一个的doFilter方法,开发人员可以根据需求决定是否调用此方法,调用该方法,则WEB服务器就会调用网络资源的服务方法,即网络资源就会被访问,否则网络资源不会被访问。

<强>过滤器开发两步走

1。编写Java类实现过滤器接口,并实现其的doFilter方法。

2。在网络上。xml文件中使用和元素对编写的过滤器类进行注册,并设置它所能拦截的资源。

web。xml配置各节点介绍:

<李>

& lt; filter>指定一个过滤器。

<李>

& lt; filter-name>用于为过滤器指定一个名字,该元素的内容不能为空。

<李>

& lt; filter-class>元素用于指定过滤器的完整的限定类名。

<李>

& lt; init-param>元素用于为过滤器指定初始化参数,它的子元素& lt; param-name>指定参数的名字,& lt; param-value>指定参数的值。

<李>

在过滤器中,可以使用FilterConfig接口对象来访问初始化参数。

<李>

& lt; filter-mapping>元素用于设置一个过滤器所负责拦截的资源。一个过滤器拦截的资源可通过两种方式来指定:Servlet名称和资源访问的请求路径

<李>

& lt; filter-name>子元素用于设置过滤器的注册名称。该值必须是在& lt; filter>元素中声明过的过滤器的名字

<李>

& lt; url-pattern>设置过滤器所拦截的请求路径(过滤器关联的URL样式)

<李>

& lt; servlet-name>指定过滤器所拦截的Servlet名称。

<李>

& lt; dispatcher>指定过滤器所拦截的资源被Servlet容器调用的方式,可以是请求,包括,向前和错误之一,默认请求。用户可以设置多个& lt; dispatcher>子元素用来指定滤波器对资源的多种调用方式进行拦截。

<李>

& lt; dispatcher>子元素可以设置的值及其意义

<李>

请求:当用户直接访问页面时,Web容器将会调用过滤器。如果目标资源是通过RequestDispatcher的包括向前()或()方法访问时,那么该过滤器就不会被调用。

<李>

包括:如果目标资源是通过RequestDispatcher的包括()方法访问时,那么该过滤器将被调用。除此之外,该过滤器不会被调用。

<李>

转发:如果目标资源是通过RequestDispatcher的向前()方法访问时,那么该过滤器将被调用,除此之外,该过滤器不会被调用。

<李>

错误:如果目标资源是通过声明式异常处理机制调用时,那么该过滤器将被调用。除此之外,过滤器不会被调用。

<强>过滤器链

在一个Web应用中,可以开发编写多个过滤器,这些滤波器组合起来称之为一个过滤器链。

滤过滤器在Java中的作用是什么