FilterChain过滤器链:在Web应用程序中,可以开发和编写多个过滤器。这些过滤器的组合称为过滤器链。
Web服务器根据web.xml文件中Filter的注册顺序(映射配置顺序)确定先调用哪个Filter,并依次调用后续的Filter。如果没有下一个过滤器,则调用目标资源。
2. FilterConfig对象概述
(1)FilterConfig对象的作用:
用于获取Filter相关配置对象的对象
(2) FilterConfig对象的API
获取过滤器名称()
getInitParameter(字符串名称)
getInitParameterNames()
获取ServletContext()
3. 配置
默认情况下,如果请求被转发,过滤器就会拦截该请求(需要拦截本次转发)
Dispatcher有四个值:
请求:默认值。默认过滤器拦截请求
前进:前进
INCLUDE:页面被包含时拦截
ERROR:全局错误页面跳转时拦截。
4.Filter生命周期说明
Filter的创建和销毁是Web服务器的责任。当Web应用程序启动时,Web服务器创建Filter的实例对象,并调用其init方法进行初始化(Filter对象只会创建一次,init方法也只会执行一次)
Filter每次拦截时,都会执行doFilter方法。
当服务器关闭,或者应用程序从服务器中删除时,服务器将销毁Filter对象。
5. 配置
全路径匹配:以/开头,例如/aaa /aaa/bbb
目录匹配:以/开头,例如/* /aaa/* /aaa/bbb/*
扩展名匹配:不能以/开头,以*开头,例如*.jsp *.do *.action
6. 配置
具体以Servlet的配置名称来拦截Servlet
7、通过上面的分析,现在我们需要对request的getParameter方法进行增强,增强过程应该写在filter中。
如何增强类中的方法?
继承
你必须能够控制这个类的构造
装饰者
增强类和被增强类需要实现相同的接口
在增强类中获取增强类的引用
缺点:接口中方法过多,会导致很多其他方法需要重写。
动态代理
高效过滤链管理策略与最佳实践和的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!
【高效过滤链管理策略与最佳实践】相关文章:
用户评论
这东西好像是在软件开发中经常遇到的吗?
有6位网友表示赞同!
我一直以为FilterChain只存在于大型项目里,现在看来是错的。
有8位网友表示赞同!
过滤器链感觉很妙,可以把多个功能串起来使用。
有11位网友表示赞同!
学习一下FilterChain的话,能更高效地组织代码吧!
有16位网友表示赞同!
有没有什么简单的例子可以让我更容易理解FilterChain?
有13位网友表示赞同!
FilterChain真是个很好的设计模式呀!
有13位网友表示赞同!
在实际应用中,FilterChain的效率怎么样?值得尝试吗?
有13位网友表示赞同!
我想知道FilterChain是如何实现多个过滤器并行的执行的?
有16位网友表示赞同!
看到这个词就想到网络编程里的代理服务器了。
有6位网友表示赞同!
FilterChain 的使用场景很多吗?除了我了解的不多的web开发,还有别的应用领域?
有20位网友表示赞同!
感觉FilterChain跟Java中的AOP有一些关联吗?
有16位网友表示赞同!
想了解更多关于FilterChain的优缺点,以及一些常见的实现方式。
有17位网友表示赞同!
FilterChain 的使用比较复杂吗?入门难度如何?
有19位网友表示赞同!
有没有什么书或者资料可以推荐我学习FilterChain?
有12位网友表示赞同!
如果对FilterChain不了解的话,会影响到软件开发效率吗?
有19位网友表示赞同!
FilterChain 可以应用于哪些类型的项目呢?
有6位网友表示赞同!
请问在使用FilterChain的时候需要注意些什么?有什么坑需要特别踩?
有10位网友表示赞同!
有没有什么开源框架是基于Filtercina的进行构建的?
有5位网友表示赞同!