zoukankan      html  css  js  c++  java
  • struts2和1的区别

    先大致介绍下struts1和struts2

    struts:过去最流行的web MVC组件,apache项目组的一个开源项目。

    struts2:现在非常流行的web MVC组件,是apache用struts1和webwork组合出来的产品。

    两者都是web MVC组件,利用这两个组件都可以比较方便地开发web项目。不过struts1毕竟是老组件,在人们开发过程中,发现了如下问题:

    1.struts1支持的表现层技术太单一,就只有jsp。不支持freemaker、velocity等当前比较流行的页面技术。

    2.struts1的Action与servlet API过于耦合,难以测试。这一点对于初学者来说可能没什么感觉,只有你用它开发过大型项目才知道。企业开发过程中,我们既要写正式代码,也要写相应的测试代码(即单元测试类,以此来保证代码是符合我们预期的),如果正式代码和servlet API耦合太深,会造成你的测试类难以编写,一旦离开web服务器就会难以测试。

    3.struts1属于侵入式设计,也就是说,在你的代码里,除了你自己定义的类之外,还会包含struts1的API。倒不是说这样的设计有多么差,毕竟你用别人的组件,少不了会用到别人的API。只是这样的设计会影响代码的重用,如果需要重构,就会比较麻烦。

    以上就是struts1的主要缺点,作为大改之后的struts2,对以上问题都做了改进:

    1.struts2支持多种表现层技术,如freemaker、velocity都支持。

    2.struts2中,Action不再与servlet API耦合(当然了,你希望在Action里使用servlet API也行),便于编写单元测试类。

    3.Action不需要和struts2耦合,方便重用。

    至于更详细的区别,网上很多,有些还用列表形式列出来了,我这里就不copy了。总之,虽然都叫struts,但是两者差别挺大的,设计思想都不一样。建议你运用这两个组件各自实现同一个小项目,自然就明白差别了。

  • 相关阅读:
    文件处理
    字符编码
    基本数据类型及内置方法
    python语法入门之流程控制
    python语法入门之基本数据类型
    python语法入门之用户交互、运算符
    编程语言与Python介绍
    计算机核心基础
    图片验证码推导逻辑,Image.new,ImageDraw, ImageFont.truetype的用法
    VUEday01
  • 原文地址:https://www.cnblogs.com/yuyu666/p/9795566.html
Copyright © 2011-2022 走看看