`
blueyanghualong
  • 浏览: 227254 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

关于struts1和struts2及webork的单例和多实例

 
阅读更多

 

 老是看到不会的问题就像转过来,记录下来,以后好看,一定要看~ 
struts1中对action实例采取的单例模式,所有的请求都有一个实例来响应,由此引发在多线程环境下线程安全问题。而这个线程安全问题仅仅是针对实例变量来说的,在执行execute时所有线程共享一个实例变量,因此需要用同步来解决线程安全问题,由此可能引起线程等待进而性能下降的问题。对局部变量来说不存在这个问题,因为在每个线程的堆栈上都会拥有各自的局部变量。 
struts2和webwork采取的多实例模式,自然能解决线程安全问题,但也是建立在牺牲内存的资源基础上。相对struts1来说,解决内存资源不足应该还是比较好办的。而对于性能的影响我觉得需要建立在大量的访问基础上才能验证那种方式更好,既然struts2和webwork是改进struts1的,我想性能方面肯定会占优势。
分享到:
评论

相关推荐

    struts1和struts2的区别

    通过上述对比可以看出,Struts2相比Struts1在很多方面进行了改进和优化,尤其是在灵活性、可测试性以及对现代Web开发的支持上有着显著的优势。尽管如此,在某些特定的应用场景下,Struts1可能仍然有其适用之处。选择...

    Struts1和Struts2的区别和对比

    线程模型方面,Struts1的Action是单例模式,意味着所有请求共享同一个Action实例,因此开发者需要确保Action和其资源是线程安全的。相比之下,Struts2为每个请求创建新的Action实例,消除了线程安全问题,也简化了...

    struts1和struts2区别

    Struts1和Struts2是两个非常著名的Java Web框架,它们在处理MVC(Model-View-Controller)架构方面有着显著的区别。以下是关于这两个框架在关键特性上的对比: 1. **Action类**: - **Struts1**:要求Action类继承...

    struts1和struts2项目实例

    通过分析和运行这些项目实例,可以深入理解Struts1和Struts2之间的差异,以及如何将它们与Spring和Hibernate集成,从而提高自己的技能水平。不过,随着技术的发展,现在的趋势是转向更现代的框架,如Spring Boot,它...

    struts1和struts2的区别(详细)

    - **Struts1**: 在Struts1框架中,Action是基于单例模式的,这意味着所有的请求都会共享同一个Action实例。这就导致了如果在Action中保存实例变量,则可能会出现线程安全问题。此外,Struts1中的Action类必须实现`...

    struts2经典实例

    在本实例集中,我们将深入探讨几个经典的Struts2应用示例,这些示例对于初学者和进阶开发者来说都是极具价值的学习资源。 1. **Struts2 Showcase** `struts2-showcase-2.0.1.war` 是一个全面的演示应用,展示了...

    Struts2与Struts1区别

    Struts2 和 Struts1 是两个著名的 Java Web 开发框架,它们都出自 Apache Software Foundation,但有着显著的区别。Struts1 是早期的 MVC 框架,而 Struts2 则是在 WebWork 框架的基础上发展起来的,它吸收了 Struts...

    struts2实例项目

    struts2简单应用实例struts2简单应用实例struts2简单应用实例struts2简单应用实例struts2简单应用实例struts2简单应用实例struts2简单应用实例

    struts1和Hibernate实例

    Struts1和Hibernate是两种非常重要的Java开发框架,它们在企业级应用开发中扮演着核心角色。Struts1主要用于控制应用程序的流程,而Hibernate则是一个强大的对象关系映射(ORM)框架,它简化了数据库操作。 **...

    Struts2和Struts1的区别,详细点,主要说说Struts2

    - **Struts1**中的Action对象在整个请求周期内是单例模式的,这意味着所有请求都会共用同一个Action实例,这可能会导致线程安全问题。 - 相比之下,**Struts2**为每个请求创建一个新的Action实例,这不仅提高了安全...

    struts2项目实例

    总的来说,"Struts2项目实例"涵盖了Java web开发中的关键环节,从Action设计、数据库操作、视图展现到框架配置,为我们提供了一个学习和实践Struts2的好起点。通过分析和理解这个实例,开发者可以更好地掌握Struts2...

    转:struts1与struts2的区别

    ### Struts1与Struts2的主要区别 #### 1. Action类的设计差异 - **Struts1**: 在Struts1框架中,Action类必须继承自一个抽象类`org.apache.struts.action.Action`。这种方式可能导致的问题是代码灵活性较低,尤其...

    程序员必看的书籍Struts1和Struts2的区别

    - **请求处理**:Struts1中,每个Action实例是单例的,这意味着多个用户可能共享同一个Action实例,这在并发环境下可能会引发问题。 - **验证机制**:Struts1提供了内置的验证框架,但其使用相对复杂,且定制性较差...

    Struts1 程实例教

    透彻分析了Struts1的原理 外加实例配带 经典之作适合入门者和想详细了解Struts1的人 Struts1 程实例教 透彻分析了Struts1的原理 外加实例配带 经典之作适合入门者和想详细了解Struts1的人Struts1 程实例教 ...

    struts2登录实例

    Struts2是由Apache软件基金会开发的开源框架,它继承了Struts1的优点并解决了其存在的问题。Struts2的核心是Action类和配置文件,通过拦截器机制处理请求,提供了强大的插件架构和丰富的结果类型,使得开发者能够更...

    Struts 1和Struts2 Jar包集合 你懂的

    这个压缩包包含了Struts 1和Struts 2两个版本的核心库和其他相关依赖,是开发和运行Struts应用的基础。 1. **Struts 1** - **概述**:Struts 1是最早的版本,于2000年发布,它是基于Servlet和JSP技术的,旨在解决...

    struts2实例工程

    Struts2是Struts1的升级版,它结合了WebWork框架的优点,提供了更丰富的特性和更强的控制能力。 在Struts2实例工程中,我们可以看到以下几个关键的知识点: 1. **MVC架构**:MVC是一种设计模式,用于分离应用程序...

    struts2和struts1 API及使用指南 chm

    Struts2是Struts1的升级版,它在Struts1的基础上引入了许多改进和新特性,提高了开发效率和应用性能。 Struts1是一个经典的MVC框架,它的核心组件包括Action、Form Bean、Action Mapping和Tiles等。Action是业务...

Global site tag (gtag.js) - Google Analytics