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. VUE 绑定背景图片的写法

    <div v-bind:style='{"background-image":"url("+imgUrl+")"}' >< ...

  2. css3 animation(左右摆动) (放大缩小)

    左右摆动: @-webkit-keyframes roundRule{ 0%, 100%{ -webkit-transform: rotate(-15deg); } 50%{ -webkit-tran ...

  3. js-模块化(三大模块化规范)

    ###1. JS模块化 * 模块化的理解 * 什么是模块?    * 将一个复杂的程序依据一定的规则(规范)封装成几个块(文件), 并进行组合在一起    * 块的内部数据/实现是私有的, 只是向外部 ...

  4. U盘文件被隐藏

    转自https://blog.csdn.net/zichen_ziqi/article/details/80171891 文章原地址:http://www.uqidong.com/help/1625. ...

  5. 清明培训 清北学堂 DAY2

    今天是钟皓曦老师的讲授~~ 总结了一下今天的内容: 数论!!! 1.整除性 2.质数 定义: 性质:  3.整数分解定理——算数基本定理 证明: 存在性: 设N是最小不满足唯一分解定理的整数 (1)  ...

  6. python学习day12 函数Ⅳ (闭包&内置模块)

    函数Ⅳ (闭包&内置模块) 1.内置函数(补充) lambda表达式也叫匿名函数. 函数与函数之间的数据互不影响,每次运行函数都会开一个辟新的内存. item = 10 def func(): ...

  7. redis jedis使用

    jedis就是集成了redis的一些命令操作,封装了redis的java客户端.提供了连接池管理.一般不直接使用jedis,而是在其上再封装一层,作为业务的使用.如果用spring的话,可以看看spr ...

  8. PKUWC2019爆0记

    PKUWC2019爆0记 访问量该骗的还是要骗. 1.20 坐了一天的高铁到jz了,热的一批 1.21 上午开营仪式 下午day1 打开发现有个地主斗 然后开T1 出题人你™搞笑吧放一道sb都能切的题 ...

  9. 四大解析器(BeautifulSoup、PyQuery、lxml、正则)性能比较

    用标题中的四种方式解析网页,比较其解析速度.当然比较结果数值与电脑配置,python版本都有关系,但总体差别不会很大. 下面是我的结果,lxml xpath最快,bs4最慢 ==== Python v ...

  10. windows下创建启动脚本bat

    最主要是运用bat命令. call执行命令 比如 启动solr的服务,以前要进去solr的目录,然后bin/solr start    这样很麻烦.可以写个脚本放到桌面. call %CATALINA ...