Struts2工作原理详解

 

 

Struts2工作原理详解

 

 

  1. 用户发出一个HttpServletRequest请求给AcrionMapper(只有action后缀的才能到ActionMapper,查询有没有指定的action)
  2. AcrionMapper查找当前的请求有没有一个指定的action,如果有就通过过滤器StrutsPrepareAndExecuteFilter(StrutsPrepareAndExecuteFilter可以在执行action之前添加自己的过滤器)把该请求转交给ActionProxy处理。
  3. ActionProxy通过配置管理器Configuration Manager询问框架的配置文件struts.xml,从而找到需要调用的Action类。
  4. ActionProxy代理创建一个ActionInvocation的实例,该实例使用命名模式来调用。在Action执行的前后,ActionInvocation实例根据配置文件加载与Action相关的所有拦截器Interceptor。
  5. 一旦Action执行完毕,ActionInvocation实例根据struts.xml文件中的配置找到相应的返回结果。返回结果通常是一个JSP或者FreeMarker的模板。
  6. 最后,HttpServletResponse响应通过web.xml文件中配置的过滤器返回。