`

struts1 struts2 servlet 是单例还是多例

 
阅读更多
Struts1 Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。单例策略限制了Struts1 Action能作的事,并且要在开发时特别小心。Action资源必须是线程安全的或同步的。
Struts2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。(实际上,servlet容器给每个请求产生许多可丢弃的对象,并且不会导致性能和垃圾回收问题)

servlet 是单例的。


对于struts1和servlet,因为是单例的,在编码过程中需要考虑多线程安全的问题。如:不要定义全局属性。

对于struts2,是多实例的,不会有多线程安全问题
分享到:
评论

相关推荐

    Struts2与Struts1区别

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

    Struts1和Struts2的区别和对比

    Struts1和Struts2是两个非常著名的Java Web框架,它们在设计模式、可测试性、输入处理和表现层等方面存在显著的区别。 首先,Action类的设计有所不同。在Struts1中,Action类需要继承一个抽象基类,这限制了Action...

    struts1和struts2的区别(详细)

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

    struts1和struts2的区别

    Struts1和Struts2是两个...总的来说,Struts2在很多方面改进了Struts1的设计,包括Action的灵活性、线程安全性、测试友好性、输入处理、表达式语言、视图绑定、类型转换和验证机制,使其更适合现代Web应用的开发需求。

    struts1和struts2区别

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

    转:struts1与struts2的区别

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

    Struts1与Struts2本质区别

    ### Struts1与Struts2本质区别 #### 1. 在Action实现类方面的对比 - **Struts 1**:要求Action类必须继承一个抽象基类`Action`,这种设计方式意味着开发者必须按照预设的结构来编写代码,灵活性较低。这种通过抽象...

    struts1&struts2

    Struts1和Struts2是两个著名的...总结来说,Struts2在很多方面改进了Struts1.x的设计,提供了更灵活的架构、更简单的配置、更好的测试支持以及更直接的数据绑定方式。这使得Struts2成为Java Web开发中更受欢迎的选择。

    struts2 与 struts1的区别

    ### Struts2 与 Struts1 的核心区别 #### 一、架构设计及Action实现方式 **Struts1** 在架构上要求Action类必须继承一个特定的抽象基类,这限制了开发者的灵活性,同时也意味着所有的Action都需要遵循相同的生命...

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

    ### Struts2与Struts1的主要区别 #### Struts2架构设计与实现方式 - **Struts2**在设计上采用了更加灵活的方式,每个请求都对应一个实例化的Action对象,而不是像**Struts1**那样在整个请求周期内共享同一个Action...

    struts1与struts2的区别

    Struts1的Action由于依赖于Servlet API,测试通常需要在容器环境中进行,而Struts2的Action可以轻松进行单元测试,依赖注入的支持使得测试更加便利。 **捕获输入** Struts1通过ActionForm对象捕获用户输入,但...

    struts1.0和struts2

    在Struts1中,由于Action的execute方法直接暴露了Servlet API,测试通常需要依赖于容器,而Struts2的Action可以通过依赖注入和模拟对象进行测试,提高了测试的便利性。 输入捕获机制上,Struts1使用ActionForm对象...

    struts1与struts2本质区别

    ### Struts1与Struts2的本质区别 #### 一、Action实现类的对比 - **Struts1**:要求Action类必须继承一个抽象基类,这意味着开发者必须遵守框架提供的特定结构,这在一定程度上限制了灵活性。此外,由于依赖于抽象...

    Struts1和Struts2 的区别

    - Struts1的Action是单例模式,需要处理线程安全问题,而Struts2为每个请求创建新的Action实例,避免了线程安全问题。 2. **Servlet依赖**: - Struts1的Action直接依赖于Servlet API,执行方法接受...

    Struts1 和Struts2的区别

    Struts1 和 Struts2 是两个著名的MVC框架,...总的来说,Struts2在很多方面改进了Struts1的设计,提供了更好的可扩展性、测试性、灵活性和易用性。然而,每个框架都有其适用场景,选择哪个取决于项目需求和团队偏好。

Global site tag (gtag.js) - Google Analytics