Struts 优缺点
优点:
1. 实现 MVC 模式,结构清晰,使开发者只关注业务逻辑的实现.
2.有丰富的 tag 可以用 ,Struts 的标记库(Taglib),如能灵活动用,则能大大提高开发效率
3. 页面导航
使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,
这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现
得更加明显。
4. 提供 Exception 处理机制 .
5. 数据库链接池管理
6. 支持 I18N
缺点
一、 转到展示层时,需要配置 forward,如果有十个展示层的 jsp,需要配置十次 struts,
        而且还不包括有时候目录、文件变更,需要重新修改 forward,注意,每次修改配置之后,
        要求重新部署整个项目,而 tomcate 这样的服务器,还必须重新启动服务器
二、 Struts 的 Action 必需是 thread-safe 方式,它仅仅允许一个实例去处理所有
        的请求。所以 action 用到的所有的资源都必需统一同步,这个就引起了线程安全的问题。
三、 测试不方便. Struts 的每个 Action 都同 Web 层耦合在一起,这样它的测试依赖于
        Web 容器,单元测试也很难实现。不过有一个 Junit 的扩展工具 Struts TestCase 可以实现
        它的单元测试。
四、 类型的转换. Struts 的 FormBean 把所有的数据都作为 String 类型,它可以使用工
        具 Commons-Beanutils 进行类型转化。但它的转化都是在 Class 级别,而且转化的类型是
        不可配置的。类型转化时的错误信息返回给用户也是非常困难的。
五、 对 Servlet 的依赖性过强. Struts 处理 Action 时必需要依赖 ServletRequest 和
        ServletResponse,所有它摆脱不了 Servlet 容器。
六、 前端表达式语言方面.Struts 集成了 JSTL,所以它主要使用 JSTL 的表达式语言来
        获取数据。可是 JSTL 的表达式语言在 Collection 和索引属性方面处理显得很弱。
七、 对 Action 执行的控制困难. Struts 创建一个 Action,如果想控制它的执行顺序将会
        非常困难。甚至你要重新去写 Servlet 来实现你的这个功能需求。
八、 对 Action 执行前和后的处理. Struts 处理 Action 的时候是基于 class 的 hierarchies,
        很难在 action 处理前和后进行操作。
九、 对事件支持不够.在 struts 中,实际是一个表单 Form 对应一个 Action 类(或
       DispatchAction),换一句话说:在 Struts 中实际是一个表单只能对应一个事件, struts 这种
      事件方式称为 application event, application event 和 component event 相比是一种粗粒度
      的事件

最新文章

  1. iOS之UI--CAShapeLayer
  2. Hadoop_YARN框架
  3. Mac OS X 中安装JDK 7
  4. 自定义圆的半径attr.xml
  5. hdu 1232畅通工程
  6. 移动端 iphone touchmove滑到边界(浏览器地址拦及以上) touchend失效解决办法
  7. Android开发:在Eclipse中配置Android环境
  8. 【调试基础】Part 1 寄存器
  9. 电路 - 基尔霍夫定律(KLL);节点流入电流等于流出电流。
  10. DAY01、计算机组成及操作系统
  11. postgreSQL学习(一):在Linux下安装postgreSQL
  12. Asp.net 与 UCenter 用户同步之实施过程
  13. 解决Chrome浏览器主页被hao123、360和2345篡改简单有效方法
  14. swift 官方获取JSON 数据方法
  15. 书籍记录——C++大学基础教程(第五版)
  16. 【webpack】从零开始学webpack
  17. python 连接sql server数据库的示例代码
  18. Flask基本知识
  19. HttpPutFormContentFilter 和 ContextLoaderListener 讲解
  20. 【Semantic Segmentation】 Instance-sensitive Fully Convolutional Networks论文解析(转)

热门文章

  1. Oracle Data Provider for .Net classes文档
  2. YCD 软件更新方法
  3. docker(五) 使用Docker Registry搭建镜像私服
  4. MacOS搭建本地服务器
  5. Java 异常体系
  6. python中self和cls的区别
  7. 2.2 collection 模块
  8. Java【初识篇】语言概述
  9. 【洛谷P1516】青蛙的约会
  10. 什么是Tensor