`

Struts2与spring结合时的高并发

 
阅读更多
原来见过一个项目,用了struts2,可是由于action里边用了类变量,仍然数据乱跳。
一般来说struts1,会出现数据乱跳,会认为正常,所以为了数据安全,struts1就不用类变量。
可是struts2,本来就是线程安全,用了也没事呀。
究其根源,原来如下。

1.struts2为每个线程提供一个action实例,多线程访问时不会出现问题。当使用spring管理struts2的action实例对象时,scope必须配置为prototype或者session,若配置为 singleton则多线程访问时会出现问题,多用户访问时有的用户访问到的是另一个用户的数据,数据会发生乱窜现象。 2.scope=“prototype”是为每个请求提供一个action实例。
scope=“session”是为每个会话提供一个action实例。 3.通常使用prototype,即让spring容器为每个请求提供一个action实例,好处是服务器端不用维护用户状态信息,否则使用session服务器端必须存储状态信息,用户多时占用服务器端内存过多。使用prototype时,必须自己在客户端维护用户的状态,每次访问服务端时将相应状态信息提交给服务器。例如scope=“prototype”时,页面一般< input name="id" type="hidden" value="${id}"/>用来存储用户的id信息,访问action时提交到server端供action中函数使用。而使用scope=“session”时,页面不必使用hidden的对象隐藏id信息,只要服务端获取过用户的id,action中的 id属性即会保存这个信息。
分享到:
评论

相关推荐

    Struts2+Spring+Maven+MongoDB

    Struts2的插件机制和自定义拦截器能力使其具有高度的灵活性和可扩展性,可以方便地与其他框架集成,如Spring。 Spring框架则是一个全面的企业级应用开发框架,它不仅包含了IoC(Inversion of Control,控制反转)和...

    Struts2与Spring整合

    总之,Struts2与Spring的整合使得开发者能够更好地组织和管理应用程序的各个部分,降低了耦合度,提高了可维护性和可测试性。同时,这种整合也为企业级应用开发提供了更强大的功能和灵活性。通过学习和掌握这些知识...

    Spring+Struts2+hibernate+Redis整合

    通过SSH+Redis的整合,可以构建出高并发、高性能的Java Web应用,充分利用Redis的内存优势,降低数据库压力,提升用户体验。在实际项目中,还需要根据具体业务需求进行调整和优化,以达到最佳效果。

    Struts2.5+hibernate5+spring4基本包整合

    4. **整合Hibernate**: 将Hibernate与Spring结合,Spring可以管理SessionFactory,也可以通过AOP实现事务控制。在Struts2的Action中,通过@Autowired注解注入Service层的Bean,Service层再注入DAO层,DAO层使用...

    Struts2Spring

    **Struts2与Spring的整合** 1. **依赖注入(DI)**:通过Spring的DI机制,Struts2的Action类可以直接获取由Spring管理的bean,无需在Action类中手动创建这些bean,降低了Action类的复杂性。 2. **Action实例管理**...

    maven3+struts2+spring3+jpa2重构itcat巴巴运动网(前32讲)

    Spring3提供了对Web应用的支持,可以与Struts2整合,实现更高级别的应用控制。Spring的IoC容器负责对象的生命周期管理和装配,而AOP则提供了模块化的横切关注点,如日志、事务等。Spring还包含了数据访问、JDBC抽象...

    Struts2+Spring3+Hibernate4集成框架,MySQL数据库搭建的个人信息管理系统.zip

    在这个项目中,"Struts2+Spring3+Hibernate4集成框架,MySQL数据库搭建的个人信息管理系统"是一个典型的信息管理系统设计与开发实例,主要应用于人工智能领域的实践教学。以下将详细介绍这个集成框架以及其在信息...

    OA办公自动化struts2 spring hibernate

    在本文中,我们将深入探讨标题提及的“OA办公自动化struts2 spring hibernate”这一主题,以及它如何与人事管理系统相结合。 首先,让我们逐个了解这三个核心技术: 1. Struts2:Struts2 是一个开源的Java MVC...

    spring3 struts2 JPA

    标题中的“spring3 struts2 JPA”是一个经典的Java企业级开发技术栈组合,它涵盖了Spring框架的第三个主要版本、Struts2行动框架以及Java Persistence API(JPA)的使用。这个组合通常用于构建Web应用程序,提供了一...

    struts2、hibernate、spring学习总结文档

    4. 整合其他框架:Spring可以轻松地与Struts2和Hibernate整合,提供统一的事务管理和数据访问支持。 5. 事务处理:Spring支持声明式和编程式事务管理,遵循ACID原则,并有多种事务隔离级别。 6. 延迟初始化:Spring...

    struts2+hibernate3+spring3部分lib

    此外,Struts2和Spring的拦截器可以结合使用,实现更高级的功能,如权限控制、日志记录等。 在实际开发中,为了使用这些库,我们需要配置相关的XML配置文件,例如Struts2的struts.xml、Hibernate的hibernate.cfg....

    轻量级Java EE企业应用实战 (第4版) Struts 2+Spring 4+Hibernate整合开发

    《轻量级Java EE企业应用实战(第4版)》是一本深入讲解如何使用Struts 2、Spring 4与Hibernate进行整合开发的专业书籍。该书不仅覆盖了这三种框架的基本概念和技术细节,还通过实战项目的形式,让读者能够在实际...

    论坛系统(Struts 2+Hibernate+Spring实现)

    2. 帖子管理:用户发布新帖、查看帖子、回复帖子,这些操作都由Struts 2 控制,数据操作通过Hibernate 完成,Spring 可以处理并发和事务一致性。 3. 分类与标签:论坛系统可能有多种主题分类,通过Hibernate 进行...

    SSH - Struts2 + Spring4 + Hibernate4 + c3p0 + Mysql.rar

    在SSH项目中,c3p0被用来管理和优化数据库连接,确保在高并发环境下仍能高效地处理数据库操作。 5. **Mysql**: MySQL是一个广泛使用的开源关系型数据库管理系统,以其高速度、稳定性及良好的社区支持而闻名。在...

    JAVA项目申报系统源码(Struts2+Spring+Hibernate+Jsp+Mysql5).zip

    本项目是一个基于Java技术栈的项目申报系统,其核心架构采用了经典的SSH框架组合:Struts2、Spring和Hibernate,结合JSP作为视图层技术,以及Mysql5作为后端数据库。下面将对这些关键技术和架构进行详细阐述。 首先...

    struts2+hibernate+spring聊天系统

    **Spring** 框架则提供了一个全面的基础设施,包括依赖注入、事务管理、安全控制等,它将Struts2和Hibernate紧密地结合在一起。Spring的IoC(Inversion of Control)容器管理着整个应用的组件,使得各部分之间的解耦...

    网络硬盘(Struts 2+Hibernate+Spring实现)

    在本文中,我们将深入探讨如何利用Java技术栈中的Struts 2、Hibernate和Spring框架来构建这样的系统。 **Struts 2框架**: Struts 2是MVC(模型-视图-控制器)架构的一种实现,用于构建Web应用程序。它提供了一种...

    (一)struts2- 2.3.15.3 spring3.2.4 mybatis-3.2.3开源框架搭建和代码验证

    此外,为了提高代码质量,还可以进行性能测试、压力测试,确保系统在高并发下仍能稳定运行。 总之,Struts2、Spring和MyBatis的整合为Java Web开发提供了强大且灵活的基础,通过合理配置和代码验证,我们可以构建出...

    jpetstore4.0 (spring+struts+ibatis)

    1. **高性能**:MySQL设计时考虑了性能优化,能快速处理大量并发查询。 2. **易用性**:MySQL提供了丰富的SQL支持,易于理解和使用。 3. **稳定性**:在高负载环境下,MySQL能保持稳定运行。 总结来说,jpetstore...

    基于struts、spring、mybatis的web框架

    Struts、Spring、MyBatis是Java Web开发中三大核心框架,它们各自承担着不同的职责,共同构建了一个高效、灵活的后端架构。Struts主要负责控制层,Spring作为全面的容器,管理着应用的bean并提供事务控制、AOP(面向...

Global site tag (gtag.js) - Google Analytics