一张经典的图

20140530165433234

过程

  1. 客户端初始化一个指向servlet容器的请求,
  2. 请求,经过过滤器,这也是为什么要首先在web.xml中配置全局过滤器的原因,所有的请求,全部转发给struts2的过滤器.
  3. 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action
    即 FilterDispatcher为控制器的C
  4. 如果C决定调用那个,那么直接请求发送给ActionProxy 即 Action代理
  5. Action代理会询问配置文件,即Struts.xml 配置文件
  6. 接着ActionProxy会通过配置文件,配置的类,创建实栗.该拦截器会有相关实栗的调用.