• 【颗粒归仓】--Struts2


      Apache Struts 2 是一种流行的 Java模型 - 视图 - 控制器(MVC)框架,无论是从设计角度,还是从项目的易用性角度来说,struts2都是一个优秀的MVC框架。

      

      过程描述:

        1 、客户端初始化一个指向Servlet容器(例如Tomcat)的请求。

        2、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)。

        3、接着FilterDispatcher(现已过时)被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action。

        4 、如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy 。

        5 、ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类 

        6 、ActionProxy创建一个ActionInvocation的实例。

        7、 ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。

        8 、一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可 能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2 框架中继承的标签。在这个过程中需要涉及到ActionMapper。


       Struts2  VS Struts1

          与struts1相比,struts2允许使用普通的、传统的java对象作为Action;Action的execute方法不再与servlet API耦合,容易测试;支持更多的视图技术;基于AOP思想的拦截器机制,提供了极好的可扩展性;更强大、更易用的输入校验功能;整合的ajax支持等。


       Struts2  VS Spring MVC

         1、struts2是类级别的拦截,一个类对应一个上下文;springmvc是方法级别上的拦截,一个方法对应一个request上下文。

         2、springmvc的方法之间基本独立,独享request response数据,方法之间不共享变量;而struts2中所有Action变量是共享,虽然不会影响程序,但是结构混乱

         3、struts2有自己的interceptor拦截机制,而springmvc使用的是独立的AOP方式

         4、struts2的入口是filter,springmvc的入口是servlet

         5、springmvc的开发效率和性能高于struts2


  • 相关阅读:
    The Mac Application Environment 不及格的程序员
    Xcode Plugin: Change Code In Running App Without Restart 不及格的程序员
    The property delegate of CALayer cause Crash. 不及格的程序员
    nil localizedTitle in SKProduct 不及格的程序员
    InApp Purchase 不及格的程序员
    Safari Web Content Guide 不及格的程序员
    在Mac OS X Lion 安装 XCode 3.2 不及格的程序员
    illustrate ARC with graphs 不及格的程序员
    Viewing iPhoneOptimized PNGs 不及格的程序员
    What is the dSYM? 不及格的程序员
  • 原文地址:https://www.cnblogs.com/victor-grace/p/7253618.html
Copyright © 2020-2023  润新知