filter的使用

最近工作轻松一下,偶尔回顾一下java知识,发现很多都忘记了,寻思着有时间就回顾一下,随便记录下来,每期都简短一些,方便碎片时间来复习。

什么是filter?

概念:一个实现了特殊接口的Java类,完成对请求资源过滤的功能。
应用:在我们真正执行servlet之前要执行的一段代码叫做过滤器。

filter过滤器的作用原理

结合图示说明下filter的两种常用方式
一、过滤请求
就是过滤中文乱码,如下图。
抄袭的一个图
二、拦截请求
放行与否完全由过滤器来决定,如果放行,那么请求到达.do的目的地,如果不放行会由过滤器来决定这个请求最终响应的地址。开发中的常用方式,拦截请求判断是否登录
在这里插入图片描述
请注意:如果请求经过了某过滤器,那么当servlet给客户端做响应的时候,一定是再一次经过该过滤器。响应时经过的过滤器的代码部分为chian.doFilter方法下面的内容。

编写filter的步骤

1、编写一个类
a.实现filter接口
b.重写方法
2、编写配置文件
a.注册filter
b.绑定路径
3、测试
4. 过滤器的生命周期

1.在服务器启动的时候,过滤器对象创建。
2.过滤器对象创建完毕之后,马上调用init方法进行初始化工作。
3.在有相应的路径匹配的url访问的时候,执行doFilter方法进行过滤工作
4.过滤器对象在创建完毕之后,一直存在在服务器中,也就是说,过滤器也是单例的。
5.关闭服务器,过滤器对象销毁。在销毁之前,调用destory方法进行收尾工作。
注意:destory方法只有在正常关闭服务器的情况下,才执行。

5、过滤器链的作用
过滤器的链其实就是放行请求这一句代码
chain.doFilter(req, resp);
过滤器链的执行规则:
执行完一个过滤器的时候,系统会查看还有没有匹配的过滤器,如果有,过滤器链会将请求传递到下一个过滤器。如果没有,将请求传递到servlet(目标地址)

6、过滤器的url-pattern
多个过滤器如果对请求url都匹配,那么他们的执行顺序:
按照filter在web.xml中的配置的上下顺序来决定的,配置在相对上面的优先执行

servlet过个路径的匹配:
优先级顺序 :
全路径匹配 > 部分全路径+通配符匹配 > 通配符匹配 > 后缀名匹配

7、用户登录的过滤操作
WEB-INF里面的资源
如果WEB-INF字符串出现在访问地址栏上,那么资源就是安全的,访问不到
如果WEB-INF字符串没有出现在访问地址栏上,那么资源就是不安全的,能够访问到
所以WEB-INF里面的内容只能说是相对安全的
需求:
只有登陆过后,才能够访问到dic下的资源
如何判断有没有登陆过,判断session
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值