[转]spring的filter中targetFilterLifecycle作用
2020-12-13 02:41
标签:不同 att tom 通过 递归 contain 默认 无法 配置 在web.xml中进行配置,对所有的URL请求进行过滤,就像"击鼓传花"一样,链式处理。 配置分为两种A和B。 A:普通配置 在web.xml中增加如下内容: 在web.xml中增加如下内容: 在spring bean配置中加入: 解决办法: 在Spring中配置的bean的name要和web.xml中的 此外,spring bean实现了Filter接口,但默认情况下,是由spring容器来管理其生命周期的(不是由tomcat这种服务器容器来管理)。如果设置"targetFilterLifecycle"为True,则spring来管理Filter.init()和Filter.destroy();若为false,则这两个方法失效!! B和A最大的不同是,A是一个filter,优先被加载到container中,无法调用spring中后续的bean;而B是一个spring bean,可以引用其他的bean,而请求都通过DelegatingFilterProxy类委派给B! B的另外一种配置方式: 注意:Filter和servlet都可以对URL进行处理,Filter是一个链式处理,只要你想继续处理就可以传递下去;而Servlet则是一次处理并返回!适合简单逻辑处理。 附录: /* 所有资源 为什么定义”/*.action”这样一个看起来很正常的匹配会错? 此外,filter就像"递归",在web.xml配置中的顺序代表了filter的调用流程,而servlet被调用后不会继续调用其他的servlet!因此配置中的顺序不影响 参考文章:https://blog.csdn.net/u013378306/article/details/50801001 [转]spring的filter中targetFilterLifecycle作用 标签:不同 att tom 通过 递归 contain 默认 无法 配置 原文地址:https://www.cnblogs.com/atai/p/11048643.html
由filter和filter-mapping构成。filter指定过滤器处理类(实现了Filter接口),filter-mapping指定过滤的规则。
B:高级配置(允许代理注入Spring bean)
因为filter比bean先加载,也就是spring会先加载filter指定的类到container中,这样filter中注入的spring bean就为null了。
先filter中加入DelegatingFilterProxy类,"targetFilterLifecycle"指明作用于filter的所有生命周期。
原理是,DelegatingFilterProxy类是一个代理类,所有的请求都会首先发到这个filter代理,然后再按照"filter-name"委派到spring中的这个bean。
也就是增加一个"targetBeanName"的参数,值为实际执行Filter的bean。
*.html 以html结尾的资源
/fold/* 指定目录
/abc.html 指定文件
以”/’开头和以”/*”结尾的是用来做路径映射的,
以前缀”*.”开头的是用来做扩展映射的。
因为这个匹配即属于路径映射,也属于扩展映射,导致容器无法判断。
上一篇:css实现div块半透明
下一篇:测试webservice的时候,如果出现这个错误:"The test form is only available for requests from the local machine
文章标题:[转]spring的filter中targetFilterLifecycle作用
文章链接:http://soscw.com/essay/26090.html