`
wanxiaotao12
  • 浏览: 476659 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Struts1 、Struts2的action 线程安全

 
阅读更多

 

Struts1:

        当第一次*.do请求过来时,在内存中的actionmapping中找到相对应的action,然后new出这个action放在缓存中,当第二次一样的请求过来时,还是找这个action,所以对于struts1来说,action是单实例的 ,只有一个,如果在action中定义变量,就要非常小心了,因为并发问题,可能带来灾难性的后果,也不是不可以,我们可以加锁达到同步,只是在性能上就要折衷了。

 

Struts2:

        每次请求过来都会new一个新的action , 所以说struts2的action是线程安全的 , 但同时也带来一个问题,每次都new一个action ,这样action的实例太多 , 在性能方面还是存在一定的缺陷的。

分享到:
评论

相关推荐

    struts1,struts2,webwork,线程安全问题

    ### Struts1、Struts2、WebWork框架中的线程安全问题分析 #### 一、Struts1与线程安全问题 在Struts1中,每个`Action`类实例是被多个请求重用的,这使得它在多线程环境下存在潜在的线程安全问题。当多个线程同时...

    servlet与Struts action线程安全问题分析

    Struts2框架提供了多种策略来处理线程安全问题,包括Action实例的多例模式、使用拦截器进行同步控制等。开发者需要理解框架的工作原理,并结合最佳实践来避免线程安全问题。 总之,理解和处理Servlet和Struts ...

    struts1和struts2的区别

    - **Struts2**: Struts2中的Action更像是工厂模式下的产品,每个Action实例都是线程安全的。Struts2提供了ActionSupport基类来简化Action的实现。Action本身可以是任何实现了特定接口的Java对象,甚至是普通的POJO。...

    struts1和struts2区别

    - **Struts2**:Action对象为每个请求创建一个新的实例,消除了线程安全问题,提高了性能。 3. **Servlet依赖**: - **Struts1**:Action直接依赖于Servlet API,需要HttpServletRequest和HttpServletResponse...

    Struts2与Struts1区别

    - Struts1 的 Action 实例是单例的,这意味着所有请求都会共享同一个 Action 实例,因此开发者必须确保 Action 资源是线程安全的。相比之下,Struts2 为每个请求创建一个新的 Action 实例,避免了线程安全问题。 3...

    Struts1和Struts2的区别和对比

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

    struts1和struts2的区别(详细)

    - **Struts2**: 相比之下,Struts2中的Action是多例的,每次请求都会创建一个新的Action实例,这样就避免了线程安全的问题。Struts2通过提供一个默认的基类`ActionSupport`,使得开发者可以很容易地继承这个类来创建...

    struts2 与 struts1的区别

    ### Struts2 与 Struts1 的核心区别 #### 一、架构设计及Action实现...综上所述,Struts2相比Struts1在架构设计、线程安全性、输入处理、表单验证等方面进行了大量的改进和优化,使得其更适合现代Web应用的开发需求。

    转:struts1与struts2的区别

    - **Struts1**: Struts1中的Action采用单例模式,因此必须确保线程安全性。这意味着开发者需要特别注意Action类中的资源管理,确保其线程安全或进行适当的同步操作。 - **Struts2**: 在Struts2中,为每个HTTP请求...

    Struts1与Struts2本质区别

    - **Struts 2**:每个请求都会创建一个新的Action实例,消除了线程安全问题,同时也减少了开发者在处理并发请求时需要考虑的问题。 #### 3. Servlet依赖方面的对比 - **Struts 1**:Action的方法签名中包含了`...

    struts1&struts2

    - **Struts1.x** 的Action类是单例模式,所有请求共享同一个Action实例,这需要确保Action资源是线程安全的。 - **Struts2** 为每个请求创建新的Action实例,解决了线程安全问题,同时也更易于管理和测试。 5. **...

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

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

    servlet与Struts action线程安全问题分析(pdf)

    ### servlet与Struts action线程安全问题分析 #### 一、引言 随着互联网应用的不断普及和发展,基于Servlet和JSP技术的应用程序在企业级应用中占据着重要的位置。Servlet作为一种常用的技术栈,因其多线程运行特性...

    struts1.0和struts2

    线程模型方面,Struts1采用单例模式,意味着一个Action实例会处理所有请求,因此Action必须是线程安全的,开发者需要特别注意资源管理。相比之下,Struts2为每个请求创建一个新的Action实例,避免了线程安全问题,...

    struts1与struts2本质区别

    - **Struts1**:采用单例模式处理所有请求,因此Action必须确保线程安全。这种模式虽然简化了内存管理,但增加了复杂度和潜在的错误风险,特别是在处理多线程环境时。 - **Struts2**:每个请求都会创建一个新的...

    struts1与struts2的区别

    相比之下,Struts2的Action为每个请求创建一个新的实例,消除了线程安全的顾虑,简化了资源管理。 **Servlet依赖** Struts1的Action直接依赖于Servlet API,执行方法接收HttpServletRequest和HttpServletResponse...

Global site tag (gtag.js) - Google Analytics