[b][/b]我目前是使用spring mvc,controller继承AbstractController,synchronizeOnSession为默认的false(我还不清楚这个设置true到底有啥用?难道仅仅是为了保证controller的同步?)。我实现的功能是使用jquery上传文件,有两个button,一个上传button,一个新增button。当点上传button时候,文件的相关信息马上读取出来,并且在下方显示出来:文件名,上传者,上传时间,文件大小等信息。而这些信息我是存储在后台的session中的。用户可以点击上传button一次上传多个文件,也可以随时删除文件。当用户最终点击新增按钮时候,才将全部文件上传到服务器。在后台的新增方法中,我是通过request.getSession(true).getAttribute("fileLists");获取之前存储在session中的文件信息的,然后循环上传到服务器中。
功能我都实现ok了。现在担心会出现的问题是,session的多线程访问问题,是否会出现数据不一致?该如何处理比较好?
难道非要处理行如如下这样?
HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
synchronized Session getCurrentSession(){
session = request.getSession();
return session;
}
我考虑的多线程安全问题是否有必要?
问题补充:successfulroof 写道
你的session只是用来读,何来线程不安全。。。
我是先存,后读。
因为有jquery异步提交上传文件,将文件信息写入session中。
然后再从session中取出相关信息,写入db。
1、同一个用户,开多个浏览器,使用工具提交上传(不是手动),session中的资料不会出现不一致吗?
2、多个用户,同时操作,本身使用jquery就是多个线程。不需要考虑吗?
相关推荐
### MFC SDI 制作 Office 2007 样式 Robbin 菜单 #### 一、概述 Microsoft Foundation Classes (MFC) 是一个由微软开发的类库,用于简化 Windows 应用程序的开发过程。本文档旨在介绍如何在 MFC 单文档界面...
Robbin Fan—运营专业型社区的经验和反思.ppt
robbin_site 是范凯的个人网站 http://robbinfan.com 网站的源码。 标签:robbin
缓存技术是一种关键的性能优化手段,它通过存储常用数据的副本以加快访问速度,缓解不同硬件或软件组件之间速度不匹配的问题。在Javaeye Robbin的讨论中,他提到了缓存技术在多种场景下的应用和重要性。 **缓存的...
git config --global user.name "robbin" git config --global user.email "fankai@gmail.com" git config --global color.ui true ``` 设置别名,如`co`为`checkout`,`ci`为`commit`,`st`为`status`,`br`为`...
使用参数化查询可以避免动态SQL带来的内存分配问题和安全风险,如SQL注入。 关注JVM外部资源,如数据库连接、IO和网络资源,也是提升效率的关键。确保在使用后及时释放这些资源,特别是在处理大量数据或长时间操作...
5. **安全考虑**:学习防止SQL注入、XSS攻击等安全问题的方法,以及如何使用Struts2的安全插件加强应用防护。 6. **性能优化**:了解如何通过缓存、减少不必要的请求、优化配置等方式提升Struts2应用的性能。 7. *...
此外,该组件还支持触摸设备,适应了多设备、多平台的趋势。 组件的使用通常包括以下几个步骤: 1. 在Delphi的工具箱中添加Ribbon组件。 2. 在设计界面中放置Ribbon组件,并设置其基本属性,如宽度、高度、背景色等...
5. **依赖属性**:WPF中的一个重要特性,用于实现数据绑定和属性继承。 6. **命令**:理解ICommand接口和命令模式,实现UI操作与业务逻辑的分离。 7. **响应式设计**:了解如何使Ribbon界面适应不同的屏幕尺寸和设备...
在IT领域,特别是数据分析与网站优化的范畴内,正则表达式(Regular Expressions,简称RegEx)在谷歌分析(Google Analytics,简称GA)中的应用是至关重要的技能之一。正则表达式是一种强大的文本处理工具,它允许...
IP地址(Internet Protocol Address)是互联网上每个设备的唯一标识,它允许设备之间进行数据交换。IP地址分为IPv4和IPv6两种类型,其中IPv4由四个0-255之间的数字组成,用点分十进制表示,例如192.168.1.1;IPv6则...
在Windows 10操作系统中,有时用户在更换...如果你经常遇到此类问题,建议定期更新系统和安全软件,以确保系统的稳定性和安全性。同时,熟悉操作系统的基本设置和故障排查方法,也能帮助你在日常使用中更加得心应手。
在Spring Cloud生态系统中,Eureka、Gateway、Feign和Hystrix是四个核心组件,它们协同工作以构建出高可用、高性能的微服务架构。让我们深入探讨这些组件以及它们如何整合。 ...它是一个基于REST的服务,用于定位服务...
在Microsoft Office中,Ribbon是用户界面的一个重要组成部分,它提供了访问各种功能和命令的集中化方式。在Excel中,自定义RibbonXML允许开发者创建和定制自己的Ribbon选项卡,以便更好地集成自定义功能或工具。...