扫盲
分类
• 动态注册servlet/filter/listener(使用 servlet-api 的具体实现)
• 动态注册interceptor/controller(使用框架如 spring/struts2)
• 动态注册使用职责链设计模式的中间件、框架的实现(例如 Tomcat的Pipeline&Valve,Grizzly的FilterChain&Filter等等)
• 使用java agent技术写入字节码
类 变量 作用
FilterMaps: FilterMaps中的FilterMap
则记录了不同filter与UrlPattern
的映射关系
FilterDefs:FilterDefs成员变量是一个HashMap对象,存储了filter名称与相应FilterDef
的对象的键值对,而FilterDef
对象则存储了Filter包括名称、描述、类名、Filter实例在内等与filter自身相关的数据
FilterConfigs:是一个HashMap对象,里面存储了filter名称与对应的ApplicationFilterConfig
对象的键值对,在ApplicationFilterConfig
对象中则存储了Filter实例以及该实例在web.xml中的注册信息。
FilterChain:过滤器链,该对象上的 doFilter 方法能依次调用链上的 Filter
ApplicationFilterChain:调用过滤器链
ApplicationFilterConfig:获取过滤器
ApplicationFilterFactory:组装过滤器链
WebXml:存放 web.xml 中内容的类
ContextConfig:Web应用的上下文配置类
StandardContext:Context接口的标准实现类,一个 Context 代表一个 Web 应用,其下可以包含多个 Wrapper
StandardWrapperValve:一个 Wrapper 的标准实现类,一个 Wrapper 代表一个Servlet