`
ayaya
  • 浏览: 448253 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Struts优缺点剖析

    博客分类:
  • SSH
阅读更多
Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点。使开发者能更深入的了解其内部实现机制。 Struts开放源码框架的创建是为了使开发者在构建基于Java Servlet和JavaServer Pages(JSP)技术的Web应用时更加容易。Struts框架为开放者提供了一个统一的标准框架,通过使用Struts作为基础,开发者能够更专注于应用程序的商业逻辑。Struts框架本身是使用Java Servlet和JavaServer Pages技术的一种Model-View-Controller(MVC)实现.
具体来讲,Struts的优点有: 

    1. 实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现. 

    2. 有丰富的tag可以用 ,Struts的标记库(Taglib),如能灵活动用,则能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。 

    3. 页面导航.页面导航将是今后的一个发展方向,事实上,这样做,使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。 

    4. 提供Exception处理机制 . 

    5. 数据库链接池管理 

    6. 支持I18N 

    缺点: 
    一、 转到展示层时,需要配置forward,每一次转到展示层,相信大多数都是直接转到jsp,而涉及到转向,需要配置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相比是一种粗粒度的事件。 
    
    Struts重要的表单对象ActionForm是一种对象,它代表了一种应用,这个对象中至少包含几个字段,这些字段是Jsp页面表单中的input字段,因为一个表单对应一个事件,所以,当我们需要将事件粒度细化到表单中这些字段时,也就是说,一个字段对应一个事件时,单纯使用Struts就不太可能,当然通过结合JavaScript也是可以转弯实现的。
分享到:
评论

相关推荐

    struts spring hibernate 优缺点分析.docx

    struts spring hibernate 优缺点分析.docx

    SSH架构优缺点分析.rar

    本资料详细介绍了SSH架构的优缺点,可作为面试资料备用! 常说的好处 开源 常说的坏处 配置文件过大我就不提了 struts 优点: 收集,验证表单数据相比传统servlet简单 优雅的实现可配置的请求转发 ...

    基于Struts技术的图书管理系统

    2.1 Struts的优缺点 10 2.2.1 Struts的优点 10 2.2.2 Struts的缺点 10 2.2.3 Struts的工作流程 10 第三章 系统需求分析 12 3.1 需求分析 12 3.1.1 问题定义 12 3.1.2 可行性研究 12 3.1.3 图书管理系统具体任务要求...

    基于Struts技术的图书管理系统 源码 mysql

    2.1 Struts的优缺点 10 2.2.1 Struts的优点 10 2.2.2 Struts的缺点 10 2.2.3 Struts的工作流程 10 第三章 系统需求分析 12 3.1 需求分析 12 3.1.1 问题定义 12 3.1.2 可行性研究 12 3.1.3 图书管理系统具体任务要求...

    基于Struts和JSF技术的中间件的研究与设计

    接着详细的分析了jsf和struts的优缺点.对如何改进,结合jsf和struts各自的优点,并对中间的可行性做出了详细的分析. 最后是对该中间件的详细构架设计和实现. 希望对学jsf和struts,or开发中间件的朋友有帮助.

    毕业设计:Java项目之jsp图书管理系统ssh+mysql(源码 + 数据库 + 说明文档)

    2.2 Struts的优缺点 8 2.2.1 Struts的优点 8 2.2.2 Struts的缺点 8 2.2.3 Struts的工作流程 9 第三章 系统需求分析 10 3.1 需求分析 10 3.1.1 问题定义 10 3.1.2 可行性研究 11 3.1.3 图书管理系统具体任务要求和...

    jsp制作购物网站的毕业论文

    2-2 Struts优缺点 3-3 Struts的工作流程 第三章 网上书店详细设计 3-1 需求分析 3-2 总体设计 3-3 功能设计 3-4 数据库设计与实现 3-4-1 数据库的需求分析 3-4-2 创建数据表的脚本 3-5 网上书店基本流程 3-6 网上...

    基于ASPJSP的电子商务网站设计制作+源代码

    2-2 Struts优缺点 2-3 Struts的工作流程 第三章 网上书店详细设计 3-1 需求分析 3-2 总体设计 3-3 功能设计 3-4 数据库设计与实现 3-4-1 数据库的需求分析 3-4-2 创建数据表的脚本 3-5 网上书店基本流程 3-6 网上...

    基于Struts,Hibernate和Spring的J2EE架构研究

    介绍Struts,Hibernate和Spring三个开源框架及它们对MVC设计模式的实现,阐述如何更好地将三者结合起来构建一个健壮、高效、易于扩展的J2EE分层架构,并给出该架构的结构图,分析它的优缺点,并且通过网上购物系统给出了...

    基于struts+hibernat的会员管理系统设计与实现

    讨论了几种实现MVC设计模式的框架的模式特点、使用场合及优缺点,在此基础上详细讨论了Struts框架和提供面向对象方法操作数据库的Hibernate技术,阐述了将两者整合的优势。接着对成人教育学院系统作了详细的需求分析,...

    Struts原理、开发及项目实施

    9-12 <br/>1、 摘要 2、 关键词 3、 Framework 4、 Struts的起源 5、 Struts工作原理 6、 Struts安装 7、 一个实例 8、 Struts优缺点 9、 Struts项目实施经验 10、 总结...

    JSP+ACCESS毕业设计 网上书店系统 源码+论文

    JAVA的网络功能与编程 1-1 JAVA语言简介 1-2 JAVA语言在网络上的应用 1-3 JSP的基础——Servlet 技术 第二章 Struts概述 2-1 Struts的由来和发展 2-1-1 MVC简介 2-2 Struts优缺点 3-3 ...

    jsp网上书店系统带源码+论文

    2.2.3 Struts优缺点 21 2.2.4 Struts的工作流程 22 2.3 MSSQL 2000 24 2.3 JDK 25 2.4 tomcat 26 第3章 网上购书系统 28 3.1 本站基本功能如下 28 3.1.1 首页(index.jsp) 28 3.1.2 后台管理部份 29 3.2 数据库设计 ...

    structs程序设计从入门到精通word文档

    2.4讨论STRUTS的优缺点 9 2.5 Struts入门经验 9 2.6用strtus制作登陆页面: 9 第3章Struts 基础学习 9 3.1Struts标记库 9 3.2Struts框架基础篇 9 3.3Struts-config.xml配置文件讲解 3.4struts中文问题","struts国际...

    基于J2EE实现的RBAC系统(包含论文与源码)

    本文阐述了Struts 和Hibernate 框架技术,并通过分析这两种框架各自的优缺点,设计了整合Struts 和Hibernate 框架技术的J2EE 架构。并指出基于Struts 和Hibernate 框架的轻量级J2EE 架构必将成为开发企业级应用的...

    SSH 咯框架的原理

    主要针对struts1和struts2的性能的优缺点,各框架的原理,做了详细的分析!

    基于struts2+hibernate的在线答疑系统

    随着高校规模不断扩大,学生和老师人数倍增,加之上课地点的变动等原因,师生之间的答疑工作不好开展,经分析传统答疑方式有如下缺点: 答疑时间和地点不好确定。 学生有了新问题无法及时向老师提问。 由于同学可能...

    基于Struts和Hibenate的遥感信息发布系统研究

    摘要本文分析了传统Web信息系统的缺点,详细阐述了MVC设计模式思想,剖析了当前被广泛应用的开源设计框架:Struts和Hibernate的工作原理,基于以上分析提出将二者结合起来实现优势互补共同开发遥感信息发布系统的...

Global site tag (gtag.js) - Google Analytics