struts2常用三种访问方法:
https://blog.csdn.net/a491857321/article/details/52701568
第一二种使用namespace+actionName指定到某action,action对应了某class的某method(默认为execute),
第三种使用namespace+actionName+methodName,action对应了某class,此方法不安全
StrutsPrepareAndExecuteFilter:入口类
ActionMapper:创建ActionMapping,即根据request确定需要调用哪个Action
ActionMapping:含namespace,name,method,extension,params,可能含Result
配置相关类:
ConfigurationManager:含Configuration和一些ContainerProvider和PackageProvider,用于对Configuration进行相应操作
Configuration:含Map<String, PackageConfig>和RuntimeConfiguration
RuntimeConfiguration:方便根据namespace和actionName获取ActionConfig
ActionProxy:由其execute开始执行
ActionInvocation:其invoke方法负责执行的全流程,类似servlet api的FilterChain
Inteceptor:类似servlet api的Filter,可进行前置和后置处理,返回String
Action: 类似servlet api的Servlet,反射调用其某方法执行,返回String或Result
Action调用完毕,尚未返回到Inteceptor处,执行PreResultListener,若Action返回为String,在ActionCofig内找到对应的ResultConfig,并据此创建Result,调用Result的execute方法
ActionContext: threadLocal, Map的形式记录了各种东西,request,response,参数等等
ServletActionContext:提供了便捷的方式访问ActionContext,比如取request,先threadLocal取ActionContext,然后必须知道取request的key,ServletActionContext封装了这些过程。