分享

struts2的运行机制

 I_T_馆 2014-09-14
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,输出流也可以经过一些列的拦截器后,传给浏览器。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多