什么是filter
Filter:一个实现了特殊接口(Filter)的Java类. 实现对请求资源(jsp,servlet,html,)的过滤的功能.
过滤器是一个运行在服务器的程序, 优先于请求资源(Servlet或者jsp,html)之前执行. 过滤器是javaweb技术中最为实用的技术.
3.2过滤器的作用
对目标资源(Servlet,jsp,html)进行过滤.
应用场景:登录权限检查,解决网站乱码,过滤敏感字符 ...
2.1配置文件方式
-
创建一个过滤器类,实现Filter接口
-
在web.xml中配置Filter
2.2注解方式
-
创建一个过滤器类,实现Filter接口
-
在Filter类上面添加@WebFilter("拦截路径")
回顾一下Serlvet生命周期:
init:初始化 默认在来了第一次请求时初始化,可以配置启动项loadOnStartup在服务器启动提前加载
service:服务 当来了请求时,提供服务
destroy:销毁 服务器正常关闭或者项目从服务器移除
Servlet和Filter生命周期的区别:
Filter是在服务器启动时进行初始化,而Servlet是默认来了第一次请求时进行初始化。
Filter是在来了请求并且请求资源刚好是要拦截的资源,就会执行过滤。
* 过滤器拦截路径
* 1.完全路径匹配:以/开头 /不能丢 eg:/demo01 表示只过滤/demo01的请求资源
* @WebFilter("/demo01")
* 2.目录匹配:以/开头 以*结尾 eg:/user/* 表示过滤user下的所有请求资源
* @WebFilter("/user/*")
* 3.扩展名匹配:以*开头 eg:*.do 表示过滤所有以.do结尾的请求资源
* @WebFilter("*.do")
* 4.全局匹配:/* 表示过滤所有请求资源
-
创建一个java类,实现Filter接口
-
在类上添加注解@WebFilter("拦截路径")
-
注意:过滤器一定要放行!!!
-
Filter生命周期描述
-
服务器启动的时候, 会调用init()方法进行初始化 【调用一次】
-
当每次请求路径和过滤器的拦截路径一致时就执行一次doFilter()方法,进行过滤 【调用多次】
-
服务器正常关闭或者项目从服务器移除, 调用destory()方法进行销毁 【调用一次】
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)