Java面试中常常问到的一个重要的理论1。struts2工作原理(a)用户发送http(httpServletRequest)请求,请求web服务器(Tomcat),web服务器加载web部署描述文件(web.xml),执行过滤器ActionContextCleanUp,Otherfilters,filterDispatcher等等ActionContextCleanUp:需要与装饰器(siteMesh)插件一起使用,作用:使用装饰器插件,struts2中Action不再管理Action中属性,使用ActionContextCleanUp来清理Action中属性otherfilters:其他过滤器(siteMesh)filterDispatcher:struts2核心控制器注意:过滤器执行是有顺序(同图),值栈在filterDispatcher中创建(b)filterDispatcher询问ActionMapper是否请求Action,如果不请求Action,就不再实行struts2容器,否则filterDispatcher会调用ActionProxy,ActionProxy通过配置文件管理器(ConfiguractionManager)加载struts.xml配置文件,找到相应Action(c)ActionProxy会创建ActionInvocation对象先执行struts2中相应的拦截器,在行所请求Action(d)ActionInvocation执行Result找到分发页面(e)(反向)执行struts2中拦截器或拦截器栈(f)响应(HttpServletResponse)给客户端struts2优势:与ServletAPI(Servlet容器)解耦