zoukankan      html  css  js  c++  java
  • Spring MVC和Struts2的比较(二)

    1。Spring MVC的controller+command object模式比Struts2的Action模式更安全一些。而在Struts2中,自动数据绑定发生在Action对象上。这样,在Action类中任何有Set方法的属性都有可能被http request的参数覆盖,在设计Action类时如果不小心,就可能会产生安全隐患。比如某个身份认证方案可能会依赖于Action的某个属性,如role来判断用户是否具有访问该action的权限。这样,恶意用户可以通过在request参数中包含一个role参数来改写action本身对role属性的设置。
    在Spring MVC中,controller和command object是两个独立的类,自动数据绑定只发生在command object上,对controller没有影响,就不存在这个问题。
    2。Struts 2的action类本身是线程不安全的,不能使用singleton模式来创建。在我看来,这个是比较ugly的。特别是一些处理逻辑比较复杂的action,每次创建一个新对象实例的代价可能是比较高的。而Spring MVC的command object基本上都是POJO,创建实例的代价很低。
    3。Struts 2的jsp tags使用OGNL作为表达式语言。我个人觉得这个语言功能过强,特别是能够直接访问action本身的方法,这类功能很容易被滥用,从而重蹈过去jsp<% %>标记的覆辙。
    当然,Struts 2也有很多功能是值得Spring吸取的,比如redirect-action,对namespace的支持等等。特别是Struts 2的底层框架XWork的最新版本2.0beta3已经支持基于annotation的validation,这个Spring应该尽快跟进。
    不过我还是觉得Spring MVC更好些。

    下面列出我对这两个都很优秀的框架的评估,请各位帮忙评判一下:

    ------------------------SpringMVC-----Struts2.0(webwork2)--------------获胜者
    开发效率----------------5-------------?---------------------------------?

    运行效率----------------5-------------4(action非单例)------------------SpringMVC

    学习成本----------------4-------------3(同事反应学习曲线比较陡)--------SpringMVC

    与Spring集成------------5(无缝集成) 4----------------------------------SpringMVC
    难易程度

    validator集成-----------4(commons)--5----------------------------------Struts2.0

    AJAX集成----------------4-------------5(丰富的tag支持)-----------------Struts2.0

    可测试性----------------5-------------5----------------------------------平局

    从实际开发效果来看,在4个项目用了spring2.5 mvc,2个项目用struts2,发现招聘时,都是struts1,struts2的求职者,而spring mvc全得现培训,不过学习曲线实在是低,把架构搭好之后,绝大部分的人都能很快适应,并快速开发。而struts2的开发,以前2个项目,都是刚好别人 搭的架构,实际做功能测试和性能测试时,问题成堆。struts2的数据绑定简直就是灾难,新手经常性的把参数给弄 乱。
     

  • 相关阅读:
    增强CNN学习能力的Backbone:CSPNet
    【CNN调参】目标检测算法优化技巧
    【综述】神经网络中不同类型的卷积层
    卷积神经网络中的各种池化操作
    【从零开始学习YOLOv3】5. 网络模型的构建
    【从零开始学习YOLOv3】4. YOLOv3中的参数搜索
    【从零开始学习YOLOv3】3.YOLOv3的数据组织和处理
    两阶段实时检测网络ThunderNet
    【CV中的特征金字塔】Feature Pyramid Network
    PyTorch中模型的可复现性
  • 原文地址:https://www.cnblogs.com/wuxiang/p/4528115.html
Copyright © 2011-2022 走看看