1.工作原理
1.1.工作原理图解
1.1.1.过滤器:用户通过HttpServletRequet发出请求至过滤器,ActionContextCleanUp(可选过滤器主要用于和其他框架进行集成),FilterDispatcher(2.0到2.1.2版本替代为StrutsPrepareAndExecuteFilter)。为什么替代?是因为当我们自定义一个过滤器时候往往会放在最顶端,如果我们需要在执行Action之前添加我们自己的过滤器,那么FilterDispatcher做不到而后者能做到。
1.1.2.当请求是.action后缀时候会通过AcitonMapper中验证Action是否存在,返回过滤器并转到ActionProxy,并通过ConfigurationManager去读取struts.xml来找到具体的Action类。
1.1.3.通过ActionProxy代理来创建我们Action反向的实例,然后通过一系列的拦截器,执行到Action返回result,然后再通过一系列的拦截器,最后通过HttpServletResponse返回结果给用户。
2.Struts2的核心文件
2.1.web.xml
2.1.1.只有配置在web.xml文件中Servlet才会被应用加载。
2.1.2.所有的MVC框架都需要Web应用加载一个核心的控制器,对于Struts2而言,需要加载StrutsPrepareAndExecuteFilter,只要Web应用加载了StrutsPrepareAndExecuteFilter,StrutsPrepareAndExecuteFilter就会加载Struts2框架。
2.2.struts.xml文件
2.2.1.主要负责管理Aciton的映射和以及该Aciton包含的Result定义等。
2.2.2.包含的内容
1)全局属性
2)用户请求和响应Action之间的关系
3)Action可能用到的参数和返回的结果
4)各种拦截器的配置
2.3.struts.properties
2.3.1.Struts2框架下的全局属性文件,自动加载(该文件包含很多的key-value键值对),该文件也可以不要,可以在struts.xml中通过constants元素进行配置。