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 相比是一种粗粒度
      的事件

Java框架中Struts框架的优缺点的更多相关文章

  1. Eclipse/JavaWeb (一)三大框架之struts框架 持续更新中...

    最近主要把javaweb的三大框架过一遍. (一)发展历史 传统的Java Web应用程序是采用JSP+Servlet+Javabean来实现的,这种模式实现了最基本的MVC分层,使得程序分为几层,有 ...

  2. Java框架中Struts和Struts2框架的区别

    struts1 与 struts2 的区别:1.都是 MVC 的 WEB 框架,2 struts1的老牌框架,应用很广泛,有很好的群众基础,使用它开发风险很小,成本更低!struts2虽然基于这个框架 ...

  3. ssh框架中struts.xml 的配置参数详解

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "- ...

  4. JavaWeb_(Struts2框架)使用Struts框架实现用户的登陆

    JavaWeb_(Struts2框架)使用Servlet实现用户的登陆 传送门 JavaWeb_(Struts2框架)Servlet与Struts区别 传送门 MySQL数据库中存在Gary用户,密码 ...

  5. Java中的函数式编程(五)Java集合框架中的高阶函数

    写在前面 随着Java 8引入了函数式接口和lambda表达式,Java 8中的集合框架(Java Collections Framework, JCF)也增加相应的接口以适应函数式编程.   本文的 ...

  6. java的老说三大框架

    一直不明白java的老说三大框架,怎么就一个SSH,今天终于有了一点点的了解. 三大框架就是Spring框架,Struts框架,Hibernate框架. Spring提供了管理业务对象的一致方法并且鼓 ...

  7. Struts框架详解

    1.Struts应用框架介绍 (1)框架 框架最简单的形式是指已开发过并已测试过的软件的程序块,这些程序块可以在多个软件开发工程中重用.框架提供了一个概括的体系结构模版,可以用这个模板来构建特定领域中 ...

  8. Java中的框架基础面试知识

    spring mvc 工作机制(原理): DispatcherServlet主要用作职责调度工作,本身主要用于控制流程 Spring mvc运行原理 1.springmvc将所有的请求都提交给Disp ...

  9. struts框架学习过程中的问题

    1,错误: java.lang.NullPointerException: Module 'null' not found.错误原因,struts运行需要的.jar文件拷贝不足,应该把它们加入到cla ...

随机推荐

  1. dubbo在idea下的使用创建 服务者,消费者 注册中心

    1.基于windows 下  spring 下的dubbo  需要书写配置文件 (1).创建带有web工程的项目 创建一个服务者 package cn.edu.aynu.bean; import lo ...

  2. rocketmq双主模式

    1.官网 https://rocketmq.apache.org/ 官方安装文档 https://rocketmq.apache.org/docs/quick-start/ 2.rocketmq多主配 ...

  3. DAO 四个包的建立

    一.DAO 四个包的建立,降低代码之间的耦合性? 之前写代码,都是在一个包下.代码耦合性较高,不利于后期的维护. dao(代码分层?) 有利于后期的维护代码,修改方便. com.aaa.dao 存放d ...

  4. Debugging Beyond Visual Studio – WinDbg

    Getting started with WinDbg: 1. Download the Debugging Tools for Windows from the Microsoft website ...

  5. Vs2010项目升级到Vs2015时的一些修改

    之前的C++/cli项目, Civil 3D版本为2014, 现在需要升级到2018版, 在升级的过程中遇到了一些问题: 为了备忘, 记录如下: Vcproj文件中进行了一些修改, 为了跟多版本项目的 ...

  6. OperationCenter Docker容器启动脚本

    docker rm -f OperationCenter rm -f /root/webapps/logs/* image_name="harbor.gfstack.geo/geostack ...

  7. 皮尔逊相关系数与余弦相似度(Pearson Correlation Coefficient & Cosine Similarity)

    之前<皮尔逊相关系数(Pearson Correlation Coefficient, Pearson's r)>一文介绍了皮尔逊相关系数.那么,皮尔逊相关系数(Pearson Corre ...

  8. [Qualcomm]A Detailed History of Qualcomm 高通的前世今生

    https://www.semiwiki.com/forum/content/7353-detailed-history-qualcomm.html

  9. 洛谷 P3327 【[SDOI2015]约数个数和】

    前置芝士 关于这个题,你必须知道一个这样奇奇怪怪的式子啊QAQ \[d(i*j)= \sum_{x|i} \sum_{y|j}[gcd(x,y)=1] \] 留坑,先感性理解:后面那个gcd是为了去重 ...

  10. 解决类似umount target is busy挂载盘卸载不掉问题

    问题描述: Linux下挂载后的分区或者磁盘某些时候需要umount的时候出现类似“umount: /mnt: target is busy.”等字样,或者“umount: /xxx: device ...