设计模式之责任链模式
接上篇~~
Tomcat的Filter使用了责任链模式,创建一个Filter除了要在web.xml中配置外,还需要实现javax.servlet.Filter接口
真正执行到TestFilter类之前,会经过很多Tomcat的内部类。
ApplicationFilterChain扮演抽象处理者角色,而具体处理者角色由各个Filter扮演。
在StandardWrapperValue类的invoke()方法中调用ApplicationFilterChain类的createFilterChain()方法 --> 在ApplicationFilterChain类的createFilterChain()方法中调用ApplicationFilterChain类的addFilter()方法 --> 在ApplicationFilterChain类的addFilter()方法中给ApplicationFilterConfig数组赋值。
在执行完createFilterChain()方法后,会继续执行ApplicationFilterChain类的doFilter()方法,然后在doFilter()方法中会调用internalDoFilter()方法。

浙公网安备 33010602011771号