Struts2实现原理(附上自己理解)

来源:互联网 发布:html5音乐播放器源码 编辑:程序博客网 时间:2024/06/06 01:55

Struts2实现原理

一:官方图示:


二:文字描述:
  1. 发出请求
  2. 进入框架:经过框架核心控制器(StrutsPrepareAndExecuteFilter,在web.xml中配置) StrutsPrepareAndExecuteFilter是Struts 2框架核心控制器,负责拦截由<url-pattern>/*</url-pattern>指定所有用户请求。默认情况下,如用户请求路径不带后缀或者后缀以.action结尾,请求将被转入Struts 2框架处理,否则Struts 2框架将略过该请求。配置文件:struts2-core-2.x.x.x.jar包下的org.apache.struts2/default.properties文件定义的常量决定。
  3. 查找ActionMapper,委托ActionProxy核心控制器依次查找ActionMapper来决定是否调用action。如ActionMapper决定调用action,核心控制器就把请求处理器控制权委托给ActionProxy。
  4. 查找Action:ActionProxy通过configuration manager查询struts框架配置文件(struts.xml)找到所要调用的action类 
  5. 创建ActionInvocation,激活拦截:Actionproxy创建一个ActionInvocation实例,该实例负责命令模式的实现,包括激活action的任意拦截器。 
  6. 调用Action方法,查找result,作出响应:在action执行完成后,ActionInvocation实例负责根据action的返回结果码在struts.xml配置文件中找到所需要的result,该结果通常是jsp或者freemarker模板,也可能是action。 
  7. 逆序响应拦截器:action配置的拦截器将再次执行(执行顺序和调用的时候相反) 
  8. 返回:服务器响应将通过web.Xml文件配置的struts2框架核心控制器返回。 
三:个人理解图示:




1 0
原创粉丝点击