Filter(过滤器)

本次任务完成时间:2019年8月13日
开发工具与关键技术:MyEclipse 10、Java
一、在我们做项目的时候,一般都会用到过滤器。过滤器,其实就是对客户端发出来的请求进行过滤。浏览器发出,然后服务器派servlet处理。在中间就可以进行过滤,过滤器起到的就是拦截作用。
Filter(过滤器)用于在servlet之外对request和response进行修改。
Filter有一个FilterChain的概念,一个 FilterChain 包括多个 Filter。客户端请求 request 在抵达 servlet 之前会经过 FilterChain 里面所有的 Filter,服务器响应 response 从 servlet 抵达客户端浏览器之前也会经过 FilterChain 里面所有的 Filter。

过滤器的作用有哪些:
• 对一些敏感词汇进行过滤
• 统一设置编码
• 自动登录等
二、Filter接口有三个方法:这三个方法反应了Filter的生命周期。
1、 init:只会在web程序加载的时候调用,即启动如tomcat等服务器时调用。一般负责加载配置的参数。
2、 destroy:web 程序卸载的时候调用。一般负责关闭某些容器等。
3、 doFilter:每次客户端请求都会调用一次。Filter的所有工作基本都集中在该方法中进行。
下图是doFilter的一些操作,这里面写的是处理中文乱码问题:
在这里插入图片描述
如果创建一个过滤器,那么就不需要在每个servlet的方法里都设置编码,但是如果没有过滤器也没有设置编码,那么当运行项目的时候,就会出现乱码问题.
如下图所示:
Filter(过滤器)_第1张图片
查询的结果如果是中文的,都显示乱码,就是如上的结果。
• 添加了过滤器就可以很方便的解决了这个问题,可以解决中文乱码问题。
如下图所示:
Filter(过滤器)_第2张图片
三、Filter执行顺序
1、 客户端发出请求,先经过过滤器,如果过滤器放行,那么才能到servlet。
2、 如果有多个过滤器,那么他们会按照注册的映射顺序来排队。只要有一个过滤器不放行,那么其后面排队的过滤器以及servlet都不会收到请求。

四、当我们创建一个过滤器的时候,是需要在Web.xml里面进行配置的,其配置跟servlet一样的。一个Filter需要配置和标签
:配置Filter名称,实现类以及初始化参数。可以同时配置多个初始化参数。
:配置什么规则下使用这个Filter
如下图所示:
Filter(过滤器)_第3张图片Filter(过滤器)_第4张图片
一个Web程序可以配置多个Filter,访问有先后顺序,配置在前面的Filter执行要早于配置在后面的Filter.

你可能感兴趣的:(java)