0 0

请教[robbin]session存取数据多线程安全问题5

[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就是多个线程。不需要考虑吗?

1个答案 按时间排序 按投票排序

0 0

你的session只是用来读,何来线程不安全。。。

2012年3月30日 19:13

相关推荐

    MFC SDI制作Office2007样式的Robbin菜单.docx

    ### MFC SDI 制作 Office 2007 样式 Robbin 菜单 #### 一、概述 Microsoft Foundation Classes (MFC) 是一个由微软开发的类库,用于简化 Windows 应用程序的开发过程。本文档旨在介绍如何在 MFC 单文档界面...

    Robbin Fan—运营专业型社区的经验和反思.ppt

    Robbin Fan—运营专业型社区的经验和反思.ppt

    范凯个人网站源码robbin_site.zip

    robbin_site 是范凯的个人网站 http://robbinfan.com 网站的源码。 标签:robbin

    javaeye Robbin 论缓存技术

    缓存技术是一种关键的性能优化手段,它通过存储常用数据的副本以加快访问速度,缓解不同硬件或软件组件之间速度不匹配的问题。在Javaeye Robbin的讨论中,他提到了缓存技术在多种场景下的应用和重要性。 **缓存的...

    Git常用命令备忘 - robbin的自言自语1

    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`为`...

    开发高效率的J2EE企业应用.ppt

    使用参数化查询可以避免动态SQL带来的内存分配问题和安全风险,如SQL注入。 关注JVM外部资源,如数据库连接、IO和网络资源,也是提升效率的关键。确保在使用后及时释放这些资源,特别是在处理大量数据或长时间操作...

    Struts2学习资料(强烈推荐)

    5. **安全考虑**:学习防止SQL注入、XSS攻击等安全问题的方法,以及如何使用Struts2的安全插件加强应用防护。 6. **性能优化**:了解如何通过缓存、减少不必要的请求、优化配置等方式提升Struts2应用的性能。 7. *...

    Ribbon For DELPHI 10.1 BERLIN.7z

    此外,该组件还支持触摸设备,适应了多设备、多平台的趋势。 组件的使用通常包括以下几个步骤: 1. 在Delphi的工具箱中添加Ribbon组件。 2. 在设计界面中放置Ribbon组件,并设置其基本属性,如宽度、高度、背景色等...

    一个基于WPF+ C# 实现的Ribbon 控件库程序代码

    5. **依赖属性**:WPF中的一个重要特性,用于实现数据绑定和属性继承。 6. **命令**:理解ICommand接口和命令模式,实现UI操作与业务逻辑的分离。 7. **响应式设计**:了解如何使Ribbon界面适应不同的屏幕尺寸和设备...

    Regular-Expressions-Google-Analytics

    在IT领域,特别是数据分析与网站优化的范畴内,正则表达式(Regular Expressions,简称RegEx)在谷歌分析(Google Analytics,简称GA)中的应用是至关重要的技能之一。正则表达式是一种强大的文本处理工具,它允许...

    获取ip地址方法与示例

    IP地址(Internet Protocol Address)是互联网上每个设备的唯一标识,它允许设备之间进行数据交换。IP地址分为IPv4和IPv6两种类型,其中IPv4由四个0-255之间的数字组成,用点分十进制表示,例如192.168.1.1;IPv6则...

    Windows10系统设置电脑背景后桌面图标被隐藏了如何恢复.docx

    在Windows 10操作系统中,有时用户在更换...如果你经常遇到此类问题,建议定期更新系统和安全软件,以确保系统的稳定性和安全性。同时,熟悉操作系统的基本设置和故障排查方法,也能帮助你在日常使用中更加得心应手。

    spring cloud 组件整合 eureka gateway feign hystrix,各个模的整合,供大家一起学习

    在Spring Cloud生态系统中,Eureka、Gateway、Feign和Hystrix是四个核心组件,它们协同工作以构建出高可用、高性能的微服务架构。让我们深入探讨这些组件以及它们如何整合。 ...它是一个基于REST的服务,用于定位服务...

    向Excel文件添加RibbonXml

    在Microsoft Office中,Ribbon是用户界面的一个重要组成部分,它提供了访问各种功能和命令的集中化方式。在Excel中,自定义RibbonXML允许开发者创建和定制自己的Ribbon选项卡,以便更好地集成自定义功能或工具。...

Global site tag (gtag.js) - Google Analytics