struts2运行机制: Tomcat一启动,一些信息就已经加载完成,例如StrutsPrepareAndExecuteFilter加载的那些strut.xml以及Action的class类文件 1)客户端在浏览器中输入一个url地址 2)这个url请求通过http协议发送给tomcat。 3)tomcat根据url找到对应项目里面的web.xml文件。 4)在web.xml里面会发现有struts2的配置。 5)然后会找到struts2对应的struts.xml配置文件。 6)根据url解析struts.xml配置文件就会找到对应的class。 7)调用完class返回一个字String,根据struts.xml返回到对应的jsp。 ========================================================================= Struts2运行机制(MVC)的分析:C:(controller)控制器 M:(model)模型处理 V:(view)视图 Struts 2 的运行过程: 核心控制器是FilterDispatcher会过滤所有的请求,如果请求以 action结尾,该请求会转入框架处理。当框架获取*action请求后,根据*action的前半部分决定调用哪个业务逻辑组件。最后根据业务逻辑组件的处理信息决定转发到哪个视图; Struts2有三部分组成:核心控制器是FilterDispatcher,业务控制器和业务逻辑组件组件,其中核心控制器FilterDispatcher由Struts2提供,而业务逻辑控制器和业务逻辑组件要用户自己实现。 核心控制器FilterDispatcher:负责拦截所有用户的请求,如果用户的请求以action结尾,该请求就会转入Struts2框架处理。 业务控制器组件:实现Action类的实例(或者继承了ActionSupport的实例),该类经常能够返回一个字符串(逻辑视图<result>的execute方法,用来实现业务控制)。 业务逻辑组件:一般由javaBean或者EJB实现; 注意: 在Struts2中处理用户请求的并不是业务逻辑,而是Action代理:过程是这样的,在Struts2框架中有一系列的拦截器,这些拦截器将HttpServletRequest请求中的参数分析出来,传入Action中,并回调execute()方法来处理用户请求。 当 所有的请求被拦截器拦截时:执行流程 1,FilterDispatcher会将所有的请求转发给 ActionProxy(Action代理),Action代理会根据配置文件struts.xml决定转发给那个Action; 2,在请求转发给Action的过程中,会经过一系列拦截器,这些拦截器负责将请求解析并转发给相应的Action。 3,经过相应的Action的 execute()方法处理,会得到一个 视图名的结果集,根据结果结合相应的模版产生相应的输出流。 4,输出流也可以经过一些列的拦截器后,传给浏览器。 |
|
来自: I_T_馆 > 《尚学堂马士兵struts2》