`
yuyajian
  • 浏览: 15646 次
社区版块
存档分类
最新评论

spring+struts2调用接口请求返回值混乱

 
阅读更多
接口工程采用spring+struts2搭建,外部请求调用时,出现了部分请求返回值数据混乱,



查找原因如下:
spring 默认scope 是单例模式
这样只会创建一个Action对象
每次访问都是同一个Action对象,数据不安全
struts2 是要求 每次次访问 都对应不同的Action
scope="prototype" 可以保证 当有请求的时候 都创建一个Action对象

解决方式:
利用容器的scope="prototype"来保证每一个请求有一个单独的Action来处理,避免struts中Action的线程安全问题

单例对象,同一方法被多次调用的时候,不能包含公共对象,否则会造成数据混乱。
最终问题原因是,多个请求返回值使用同一个HttpServletResponse response返回结果导致。
  • 大小: 42.3 KB
分享到:
评论

相关推荐

    Ibatis+Spring+struts1框架搭建

    在Struts1中,Action类作为业务逻辑的入口,接收并处理来自视图的请求,然后调用Service层的方法。ActionForm对象用于封装请求参数,而配置文件struts-config.xml则定义了各个Action和ActionForm的映射关系。 搭建...

    spring-ssj.rar_spring_spring+Struts2+jpa集成

    Spring、Struts2和JPA是Java开发中常用的三大框架,它们各自负责应用程序的不同层面:Spring作为基础架构框架,提供依赖注入(DI)和面向切面编程(AOP)等功能;Struts2是一个用于构建MVC(Model-View-Controller)...

    spring+hibernate+struts+XFire的webService实例

    7. **Web服务调用**:使用Spring和XFire,开发者可以创建基于SOAP的Web服务接口,允许远程客户端通过HTTP或HTTPS协议调用。自定义对象和数组可以通过序列化和反序列化机制在Web服务调用中传递。 8. **测试与调试**...

    spring+abatis+struts2实战

    在本项目中,Struts2负责接收用户请求,调用相应的Action(动作)类,Action类再通过Spring的依赖注入获取Service进行业务处理,最终返回结果到视图层。Struts2的拦截器机制使得我们可以方便地添加全局处理逻辑,如...

    实用Spring+Struts+Hibernate做的文件上传模块

    在Java Web开发中,"SSH"(Spring、Struts、Hibernate)是一个常见的技术栈,用于构建复杂的业务逻辑和数据管理应用程序。本项目是基于SSH框架实现的一个文件上传模块,非常适合初学者学习和实践。 首先,Spring是...

    Hibernate+Struts2+Spring+Oracle分页亲测

    在分页上下文中,Struts2通常会创建一个Action类,该类包含处理分页请求的方法,并通过返回值将控制权传递给相应的视图层组件。Action类可能包含参数来接收用户指定的页码和每页大小,然后调用服务层的方法获取分页...

    Spring+Hibernate+Struts工作原理

    当用户发送请求时,Struts框架按照以下步骤处理: 1. 查找匹配的ActionMapping,如果找不到,则返回错误信息。 2. 如果ActionForm对象不存在,就创建一个实例。 3. 调用ActionForm的validate方法进行表单验证。 4. ...

    struts2+spring+mybatis

    Struts2、Spring和MyBatis是Java Web开发中经典的三大框架,它们组合起来能够构建出高效、可维护性良好的企业级应用。本项目提供了一个基于这三个框架的简单搭建示例,下面将详细介绍这三个框架的核心功能及它们如何...

    Struts2接口文档

    这个“Struts2接口文档”是开发者的重要参考资料,提供了关于Struts2框架内各个组件、类库以及接口的详细说明,帮助开发者深入理解框架的内部工作原理并有效地使用其功能。 Struts2的核心组件包括Action、Result、...

    struts2+spring+ibatics

    Struts2、Spring和iBatis是Java Web开发中三个非常重要的开源框架,它们的集成应用可以构建出高效、灵活且可维护性极强的企业级应用程序。以下将详细阐述这三个框架的功能、集成方式以及如何实现"Struts2+Spring+...

    struts2+spring aop demo

    Struts2主要用于处理HTTP请求和响应,提供MVC(Model-View-Controller)架构,而Spring则是一个全面的后端解决方案,包括依赖注入、AOP(面向切面编程)、事务管理等功能。在"struts2+spring aop demo"这个项目中,...

    DWR与SPRING,DWR与STRUTS2的整合

    2. **结果映射**:在Struts2的配置文件中,可以定义结果类型来处理DWR调用后的返回值,比如将返回值渲染到页面上。 3. **拦截器**:利用Struts2的拦截器机制,可以在DWR调用前后添加额外的操作,如日志记录、性能...

    struts+spring_ibaits+调用Mysql存储过程实现增删改查

    在调用MySQL存储过程时,iBatis提供了接口,允许我们方便地执行存储过程并获取返回值。 MySQL存储过程是数据库层面的程序,可以包含一系列的SQL语句,如INSERT、UPDATE、DELETE以及SELECT。在处理复杂的业务逻辑或...

    Spring整合Struts2

    接下来,Struts2作为流行的MVC框架,其核心是Action类,负责处理HTTP请求并调用业务逻辑。Struts2的动作映射、拦截器和结果映射等功能使得控制器层的实现更为简洁。 整合Spring和Struts2时,我们需要: 1. **配置...

    spring整合struts2,ibatis及其json的交互

    在IT行业中,Spring、Struts2和iBatis是三个非常重要的开源框架,它们分别在不同的层面上解决了Java Web开发中的问题。这篇文章将详细介绍如何整合这三个框架,并探讨它们与JSON的交互。 首先,Spring框架是一个...

    Spring-Struts2-mybatis-mysql jar包整合

    8. 实现Action:在Struts2的Action类中,调用Service层的方法,处理用户请求。 9. 视图渲染:设置Result,根据Action的返回值决定跳转到哪个JSP页面。 10. 测试:编写JUnit测试用例,对整合后的系统进行功能验证。...

    如何在struts+spring+hibernate的框架下构建低耦合高内聚的软件

    6. **编写业务逻辑**:在Action类中,通过Spring的依赖注入获取Service层接口的实现,调用方法完成业务逻辑。 7. **设计视图**:使用JSP或其他视图技术创建用户界面,根据Struts的ActionForward或ActionRedirect与...

    Spring Hibernate Struts2

    8. **Struts2 Action**:业务逻辑处理,接收请求,调用Service层方法,返回结果。 9. **Struts2结果类型**:定义如何根据Action的返回值跳转到相应的页面。 10. **整合配置**:Spring、Hibernate和Struts2之间的集成...

    Struts+Spring框架下的单元测试[总结].pdf

    对于Action的测试,由于Struts的Action通常会依赖于Spring管理的服务接口,因此在编写单元测试时,需要模拟这些服务的调用。JUnit是常用的Java单元测试框架,可以结合Mockito等库来创建mock对象,模拟Service的行为...

Global site tag (gtag.js) - Google Analytics