关于Web开发中Session的问题

ml3426 2015-04-19 01:18:54
最近在做一个项目,在写的过程中,把一些东西,比如说登录时的Users类放到了Session中,然后在不同的页面中就能方便的调用。但是遭到了另一个学长的反对,他说在Session中放用户的唯一标识就行,在不同的页面中再查找出Users,说Session中一般不放重对象,加重服务器负担,而且如果在其它会话中修改了Session也会出现同步性问题,我有点疑惑,想问问大家对这个观点是什么看法,大家平时是怎么做的,谢谢了。
...全文
415 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
Inhibitory 2015-04-29
  • 打赏
  • 举报
回复
1. Session放在Redis等集中缓存和本地缓存,先在本地缓存查询Session,没有的话查询Redis缓存,如果在没有才查询数据库,解决了分布式的环境Session共享的问题,而且速度还很快。 2. Session里不要存放太多东西,但是必要的存在里面还是有必要的。 频繁查询数据库不是个好主意,不用充分利用Session也不是个好主意,滥用Session也要批评。
nantaiwang 2015-04-29
  • 打赏
  • 举报
回复
毕竟是学长 不过你那屁大项目完全OK
荔园微风 2015-04-27
  • 打赏
  • 举报
回复
这个问题问的好
finemi 2015-04-26
  • 打赏
  • 举报
回复
你学长乱说,这个得看实际情况! 放session,占一点内存,而读数据库,开销也不小! 而这个时候就要做一个平衡了,其实web编程很多时候都要做这种平衡,速度与空间是不会同时拥有的,是用空间换时间,还是用时间换空间? 用户信息每个页面都要用到,对于这种高频率读取的不缓存下来而去读数据库那缓存系统的意义是干嘛? LZ听说过memcached吗?他的作用就是:将频繁使用的数据缓存到内存中,避免频繁读取数据库!
草臻京 2015-04-26
  • 打赏
  • 举报
回复
SESSION属于缓存类别,每次访问都会创建一个SESSION,SESSION内容太多肯定会影响服务器,毕竟资源是有限的。
tandy 2015-04-26
  • 打赏
  • 举报
回复
我觉得你学长说的是出于理论 有点太片面了吧 我比较赞同把一个 频繁调用的对象放入到Session 中 以便减少对数据库资源的调用
hymwrj1 2015-04-25
  • 打赏
  • 举报
回复
1,读缓存和读数据库 相比之下,数据库资源更珍贵得多。 2,你session会放很多东西?请求返回的数据放request里面,一般没有特别需要,谁也不会把数据放在session里同吧? 3,user信息你大多数据页面都需要用到,直接从session拿和每次从数据库取,哪个更快点这不用说了吧。
pengjiewen 2015-04-25
  • 打赏
  • 举报
回复
你说的要考虑场景的,不同场景要不用法
bobo1232 2015-04-20
  • 打赏
  • 举报
回复
对象放进session里 我觉得 方便一点
youzi05 2015-04-20
  • 打赏
  • 举报
回复
我的习惯是把用户id和用户名等几乎每个页面都用的东西放进session里, 比每次都查数据库方便多了.....
  • 打赏
  • 举报
回复
学长的建议是正确的。
liangtu 2015-04-19
  • 打赏
  • 举报
回复
相比N次数据库查询,放对象更合理。
姜小白- 2015-04-19
  • 打赏
  • 举报
回复
session中确实不应该存放过多的东西,加重服务器的负担
但是 自己写的代码,自己注意控制着往session中存放的东西的数量就可以了,一般简单服务的用户信息大多都放session的。
至于说session同步的问题,单节点服务器不存在session同步的问题,session同步大多是在集群环境中出现的。
hantiancheng 2015-04-19
  • 打赏
  • 举报
回复
一般的这些都是 放到session中去 ,至少我开发是这么弄的
何事忧愁 2015-04-19
  • 打赏
  • 举报
回复
Session的同步性问题非常好解决,只要在修改session的地方把原来的user去掉,然后加入新的user即可
何事忧愁 2015-04-19
  • 打赏
  • 举报
回复
我把user对象放session中,我不赞同你学长的观点,如果session中只放user的唯一标识(唯一标识一般就是指Id了),那么在其他地方需要用到user对象的时候,又得通过唯一标识去查询数据库,查询数据库需要连接数据库服务器,这个会非常影响运行效率,把整个user对象放session中确实会加重服务器的负担,但毕竟数据就在服务器上,没多大影响,比起去连接数据库查询数据效率要高多了

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧