spring+struts2引起的错误被记忆问题
标题表述的比较模糊,详细情况是这样的:
目前开发的一个管理系统,当使用出现异常时会自动跳转到错误页。其处理流程是“发生异常——跳转到错误处理action——错误页”。
但是出现了一个bug,即某个操作引发过一次异常之后,这个操作之后会一直报异常。
比如“添加商品信息”这个操作由于非法字符引发了异常,那么在这之后,就算填写的信息是正确的,程序仍然会跳转到非法字符的错误页。
在参考了这篇文章http://zfei.iteye.com/blog/1236020后,问题解决了。
这个bug的原因如下:
Struts2单独使用时,会对每一个请求,产生一个Action的实例来处理.
而Spring的Ioc容器管理的bean默认是单实例的.
Struts2 与Spring整合后, 由spring来管理Struts2 的Action,bean默认是单实例有情况下,Struts2的action变成了单例模式,于是产生了如下问题:
1) Action是单例,其中的FieldError,actionerror中的错误信息会累加, 即使再次输入了正确的信息,也过不了验证.
2) Struts2 的Action是有状态的,他有自己的成员属性, 所以在多线程下,会有问题.
文章给出的解决方案有两个,我们用了第一个
即不用单例, spring中bean的作用域设为prototype,每个请求对应一个实例.
spring+struts2引起的错误被记忆问题的更多相关文章
- 最新版ssh hibernate spring struts2环境搭建
最新版ssh hibernate spring struts2环境搭建 最新版spring Framework下载地址:spring4.0.0RELEASE环境搭建 http://repo.sprin ...
- spring+struts2+ibatis 框架整合以及解析
一. spring+struts2+ibatis 框架 搭建教程 参考:http://biancheng.dnbcw.net/linux/394565.html 二.分层 1.dao: 数据访问层(增 ...
- spring+struts2+hibernate框架搭建(Maven工程)
搭建Spring 1.porm.xml中添加jar包 <!-- spring3 --> <dependency> <groupId>org.springframew ...
- [Java web]Spring+Struts2+Hibernate整合过程
摘要 最近一直在折腾java web相关内容,这里就把最近学习的spring+struts2+hibernate进行一个整合,也就是大家经常说的ssh. 环境 工具IDE :Idea 2018 数据库 ...
- Spring+Struts2+Hibernate的整合
这篇主要采用Maven搭建Spring+Struts2+Hibernate的整合项目,复习一下SSH框架,虽然spring提供自己的MVC框架, 但是Spring也提供和其他框架的无缝整合,采用组件形 ...
- 简单Spring+Struts2+Hibernate框架搭建
使用Maven+Spring+Struts2+Hibernate整合 pom文件 <project xmlns="http://maven.apache.org/POM/4.0.0&q ...
- spring struts2 ibatis 框架结构图
spring struts2 ibatis 框架结构图
- SSH(Spring Struts2 Hibernate)框架整合(注解版)
案例描述:使用SSH整合框架实现部门的添加功能 工程: Maven 数据库:Oracle 框架:Spring Struts2 Hibernate 案例架构: 1.依赖jar包 pom.xml < ...
- struts2系列(二):struts2参数传递错误、struts2的输入错误验证
一.struts2参数传递错误 1. 基本数据类型的传递最好使用包装类,原因是struts 2.1之后使用基本数据类型如果参数为空会报错2. 日期参数的传递最好定义一个区域的属性(定义locale), ...
随机推荐
- centos7 安装 mysql5.7 版本(全)
centos 安装 版本说明 :centos7,mysql5.7 ,不是 centos7 可能有些命令不兼容 安装 mysql-server # 下载并安装 mysql yum wget -i -c ...
- Python3升级3.6强力Django+杀手级xadmin打造在线教育平台☝☝☝
Python3升级3.6强力Django+杀手级xadmin打造在线教育平台☝☝☝ 教程 Xadmin安装方法: settings.py 的配置
- Python_散点图绘制
为了可视化一些数据分布,需要以散点图的形式呈现 引入绘图工具 import matplotlib.pyplot as plt from matplotlib.font_manager import F ...
- POWERUP攻击渗透实战2
准备环境: kali linux 攻击机 已获得靶机meterpreter(非管理)权限 win7 靶机 拥有powershell环境 运用到的模块:Get-RegistryAlwaysInstal ...
- 一个基于C++11的单例模板类
#ifndef _SINGLETON_H_#define _SINGLETON_H_ template<typename T>class Singleton : public Uncopy ...
- ArrayList源码解析(二)
欢迎转载,转载烦请注明出处,谢谢. https://www.cnblogs.com/sx-wuyj/p/11177257.html 自己学习ArrayList源码的一些心得记录. 继续上一篇,Arra ...
- vue——前端跨域
***针对的是不同域名.不同协议的跨域: 1.找到config文件中开发环境的配置文件——dev.env.js,在里面将要跨域的域名配置进去 2.找到config文件中线上环境的配置文件——prod. ...
- 02 Node.js学习笔记之http服务
在Node中可以非常轻松的构建一个Web服务器,在Node中提供了一个http模块,这个模块主要功能就是帮助你创建一个Web服务器. 创建步骤: //1.加载http模块 var http=requi ...
- mac外接显示器 字体发虚解决方案
描述 今天买的LG性价比之王21:9的2k显示器到了,但是连接mbp后发现,字体发虚,模糊 Macbook 外接显示器默认为 TV 模式,TV 渲染模式下,文字效果非常非常非常差 解决 下载 patc ...
- Gstreamer基础教程10 - Streaming
摘要 我们把直接从网络播放一个媒体文件的方式称为在线播放(Online Streaming),我们已经在以往的例子中体验了GStreamer的在线播放功能,当我们指定播放URI为 http:// 时, ...