JavaEE Struts2框架

   目前有很多MVC框架,其中Struts2是一个被广泛使用的开源框架。但是,它的前身并不是Struts1,而是另一个优秀的开源框架WebWork,Struts2综合了Struts1和WebWork两大框架的优点。其全新的Struts 2的体系结构与Struts 1的体系结构的差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2只有很小的变化。目前,Struts已经分化成了两个框架:第一个是在传统的Struts1的基础上,融合了另外的一个优秀的Web框架WebWork的Struts2。Struts2虽然是在Struts1的基础上发展起来的,但是实质上是以WebWork为核心的。Struts2为传统的Struts1注入了WebWork的先进的设计理念,统一了Struts1和WebWork两个框架。Struts1分化出来的另外一个框架是Shale。这个框架远远超出了Struts1原有的设计思想,与原有的Struts1关联很少,使用了全新的设计思想。Shale更像一个新的框架而不是Struts1的升级。

    下面看一下Struts2的工作原理图:

                                 

                                    

    结合这个工作原理图,我们说一下具体的工作流程。

   (1)客户端向服务器端提交请求,服务器端容器初始化HttpServletRequest请求对象。

   (2)请求对象被一系列的Servlet过滤器过滤。Struts 2中的过滤器有三种:

         ①ActionContextCleanUp过滤器:是一个可选的过滤器,主要用来集成其他的框架。

         ②其他插件的核心过滤器:如SiteMesh插件的过滤器。

         ③FilterDispatcher过滤器,是Struts 2API中提供的过滤器,必须使用。

   (3)FilterDispatcher过滤器调用ActionMapper,决定该请求是否需要调用某个Action。

   (4)如果请求需要调用某个Action,ActionMapper将通知FilterDispatcher过滤器把请求的处理交给ActionProxy来处理。

   (5)ActionProxy通过Configuration Manager解析框架的配置文件struts.xml,找到需要调用的Action类。

   (6)ActionProxy将创建一个ActionInvocation实例。

   (7)ActionInvocation实例使用命令模式回调Action中的excute方法,Action调用业务逻辑类完成业务逻辑。在调用Action的前后,将调用该Action涉及到的相关拦截器(Interceptor)。

   (8)Action执行完毕后,ActionInvocation根据struts.xml中的配置找到对应的返回结果(Result),通常是JSP,FreeMaker等模板文件。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值