`
ayaya
  • 浏览: 456253 次
  • 性别: 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也是可以转弯实现的。
分享到:
评论

相关推荐

    STRUTS2优缺点

    ### STRUTS2 优缺点分析 #### 一、STRUTS2 优点概述 **1. Action 实现灵活性:** - **STRUTS2 的 Action 设计更灵活:**与 STRUTS1 中 Action 必须继承自 `Action` 类不同,STRUTS2 允许 Action 作为 POJO(Plain...

    struts spring hibernate 优缺点分析.docx

    以下是这三个框架的详细优缺点分析: **Struts** Struts是一个开源的MVC框架,主要用于构建Web应用程序。它的主要优点包括: 1. **开源性**:Struts作为Apache基金会的项目,其源代码公开,开发者可以深入了解其...

    ssh框架优缺点 struts hibernate spring

    ### SSH框架:Struts、Hibernate、Spring 的优缺点分析 #### Struts **优点:** 1. **MVC模式的支持**:Struts框架遵循MVC(Model-View-Controller)设计模式,它将应用程序分为模型层、视图层和控制器层,这样的...

    SSH(Spring Struts Hibernate)的优缺点

    让我们详细分析一下SSH的优缺点。 **Struts** Struts作为一个MVC框架,具有以下优点: 1. **MVC架构**:Struts通过分离业务逻辑、视图和控制逻辑,使应用结构清晰,易于维护和扩展。 2. **Taglib库**:Struts提供...

    SSH架构优缺点分析.rar

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

    Struts,Spring,Hibernate优缺点.

    ### Struts、Spring、Hibernate 的优缺点分析 #### 一、Struts 框架 **优点:** 1. **实现 MVC 架构模式:**Struts 通过 Model-View-Controller (MVC) 设计模式,使得业务逻辑与表示层分离,便于维护和扩展。 2. ...

    strut spring hibernate 优缺点

    ### Struts, Spring, Hibernate 三大框架的优缺点分析 #### Struts框架 **优点:** 1. **组件模块化与灵活性:** Struts框架强调组件的模块化设计,这使得开发者可以根据项目的不同需求灵活地选择和组合这些组件。...

    Java五大框架技术选型对比与优缺点.doc

    Java 五大框架技术选型对比与优缺点是指 Java 语言中五大框架技术的选型对比和优缺点分析。这些框架包括 MVC、Struts2、Servlet、Filter 和 JavaBean。这些框架都是 Java 语言中常用的框架,各有其优缺点和应用场景...

    基于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 In Action 电子书 Struts1电子书

    - **优缺点分析**: - **优点**:提供了丰富的标签库,支持表单验证等功能;拥有成熟的社区支持;易于学习和上手。 - **缺点**:对于复杂的应用场景,Struts的配置较为繁琐;与最新的Web技术和趋势相比,Struts的...

    Struts框架分析与应用.pdf

    ### Struts框架分析与应用 #### 一、MVC模式概述 MVC(Model-View-Controller)是一种软件架构模式,旨在将应用分为三个核心部分:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于清晰地区分...

    Migrating From Struts1 To Struts2

    本文将深入探讨如何从Struts1平稳过渡到Struts2,并分析两者之间的主要差异。 #### Struts1概述 Struts1是基于Java的开源Web应用框架,自2001年发布以来迅速获得了开发者们的青睐。它提供了一种结构化的MVC(Model-...

    Struts2+技术内幕——深入解析Struts2架构设计与实现原理

    书中会详细阐述这两种配置方式的使用和优缺点。 此外,Struts2还与Spring等其他框架有良好的集成,可以通过Spring插件实现依赖注入,进一步提升应用的可维护性和可测试性。同时,Struts2提供了丰富的插件系统,如...

    Comparing the Struts 1 and Struts 2 Web Application Frameworks

    如果你正在考虑升级或选择一个新的Java Web框架,理解两者之间的差异和优缺点是非常重要的。 文章“Comparing the Struts 1 and Struts 2 Web Application Frameworks”可能详细分析了这两个框架的各个方面,包括但...

    日文struts学习ppt

    通过以上分析可以看出,**Struts** 是基于MVC设计模式构建的,其主要优势在于能够清晰地区分模型、视图和控制器之间的职责,有助于提高代码的可读性和可维护性。对于初学者来说,理解Struts的基本架构和工作原理是...

    对struts1.x与struts2.x的区别的总结

    Struts1.x与Struts2.x是两种非常流行的Java Web应用程序框架,它们都由Apache软件基金会开发,旨在简化MVC...通过实际项目中的学习和实践,可以更深入地掌握这两个框架的优缺点,以便在实际工作中做出明智的选择。

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

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

    Java Web struts1.0+2.0篇章实例

    在本篇章实例中,我们将探讨Struts 1.0和2.0两个版本,了解它们的核心概念、优缺点以及如何在实际项目中应用。 首先,让我们来看看Struts 1.0。它于2001年发布,是最早的Java Web MVC框架之一。Struts 1.0的核心...

Global site tag (gtag.js) - Google Analytics