Filter概述、接口及配置

简介: Filter概述、接口及配置

一、Filter概述


● Filter称为过滤器,位于客户端与处理程序之间,能够对请求和响应进行检查和修改


● 当客户端对服务器资源发送请求时,服务器根据过滤规则进行检查,如果满足过滤规则,则对客户请求进行拦截,然后对请求头或请求数据进行修改或检查,并依次通过Filter链,最后将请求交给处理程序


● 请求信息可以在过滤器中被修改,也可以根据请求条件不让请求发往处理程序


二、Filter接口


编写一个Filter必须实现Filter接口


相关方法:


方法名 说明
default void
init(FilterConfig
filterConfig)
创建Filter后用于初始化Filter,通过参数FilterConfig对象获取配置参数

void doFilter(ServletRequest

var1, ServletResponse

var2, FilterChain var3)

用于完成过滤的操作,其中Request对象和Response对象是由上一个过滤器或者Web服务器传递过来的请求和响应对象,FilterChain对象代表当前过滤链对象

default void destroy() 用于释放过滤器中占用的资源,在对象被销毁之前调用


Filter接口提供了三个方法,其中init()方法和destroy()方法是默认方法不强制重写,而doFilter()方法是抽象方法,在实训Filter接口四必须重写


三、Filter配置


配置Filter有两种方式,一种是通过web.xml文件进行配置,一种是通过@WebFilter注解进行配置


web.xml配置方式:


<!--在web.xml文件的web-app标签下写入以下内容-->
<filter>
    <filter-name>FilterDemo</filter-name>
    <filter-class>com.liaoxiangqian.filter.FilterDemo</filter-class>
</filter>
    <filter-mapping>
    <filter-name>FilterDemo</filter-name>
    <url-pattern>/ServletDemo</url-pattern>
</filter-mapping>


@WebFilter注解配置方式:


@WebFilter("/ServletDemo")
public class FilterDemo implements Filter {
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("FilterDemo执行了");
    }
}


@WebFilter常用属性:


属性名 类型 说明
filterName String 指定过滤器名称
urlPattren String[] 指定需要过滤的资源,如某个Servlet或jsp
value String[] 等价于urlPattern,不能同时使用
servletNames String[] 指定过滤器将应用于哪些Servlet,取值是@WebServlet中name属性的取值
dispatcherTypes DispatcherType 指定过滤器转发模式,取值有ERROR、
FORWARD、INCLUDE、REQUEST
initParams WebInitParam[] 指定过滤器的一组初始化参数


注意:


1、DispatcherType是枚举类,取值的作用如下:


2、DispatcherType.ERROR表示过滤器拦截那些跳转到某个异常处理页面的请求


3、DispatcherType.FORWARD表示过滤器拦截那些通过forward()方法来请求的转发的请求


4、DispatcherType.INCLUDE表示过滤器拦截那些通过include()方法来请求包含的请求


5、DispatcherType.REQUEST表示过滤器只会拦截普通的请求,而请求转发和请求包含类的请求不会拦截


如果需要拦截用户的所有请求,则可以使用*号通配符,如:


<url-pattern>/*</url-pattern>


@WebFilter("/*")


目录
相关文章
|
8月前
|
XML Java 应用服务中间件
Filter 过滤器--基本原理--Filter 过滤器生命周期--过滤器链--注意事项和细节--全部应用实例--综合代码示例
Filter 过滤器--基本原理--Filter 过滤器生命周期--过滤器链--注意事项和细节--全部应用实例--综合代码示例
88 0
|
4月前
|
Java 数据安全/隐私保护
Filter概述、执行流程、拦截路径配置及过滤器链
Filter概述、执行流程、拦截路径配置及过滤器链
32 0
|
8月前
过滤器简介--操作步骤--过滤器生命周期--过滤器匹配规则-- 过滤器链
过滤器简介--操作步骤--过滤器生命周期--过滤器匹配规则-- 过滤器链
36 0
|
9月前
|
存储 XML 消息中间件
filter功能演示-鉴权、声明缓存
filter功能演示-鉴权、声明缓存
118 0
|
9月前
|
缓存 负载均衡 安全
网关全局过滤器:Java中的强大工具
网关全局过滤器:Java中的强大工具
127 0
|
10月前
|
C#
.NET Core反射获取带有自定义特性的类,通过依赖注入根据Attribute元数据信息调用对应的方法
.NET Core反射获取带有自定义特性的类,通过依赖注入根据Attribute元数据信息调用对应的方法
122 0
|
存储 Java 数据库
Java Web之Filter过滤器原理简介与功能演示
Filter被称作过滤器,其基本功能就是对Servlet容器调用Servlet的过程进行拦截,从而在Servlet 进行响应处理前后实现一些特殊功能。
245 0
Java Web之Filter过滤器原理简介与功能演示
|
开发框架 JSON 前端开发
【C#】.net core2.1,自定义全局类对API接口和视图页面产生的异常统一处理
在开发一个网站项目时,异常处理和过滤功能是最基础的模块 本篇文章就来讲讲,如何自定义全局异常类来统一处理
204 0
|
Java 数据库
JavaWeb-过滤器Filter学习(四)敏感词过滤实例
JavaWeb-过滤器Filter学习(四)敏感词过滤实例
573 0
JavaWeb-过滤器Filter学习(四)敏感词过滤实例
|
Web App开发 XML Java
Java三大器之过滤器(Filter)的工作原理和代码演示
一、Filter简介  Filter也称之为过滤器,它是Servlet技术中最激动人心的技术之一,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp,Servlet, 静态图片文件或静态html文件等进行拦截,从而实现一些特殊的功能。
2696 0