之前对Cookie和Session的了解就是,Cookie是由服务器产生,保存于浏览器,而Session是保存于服务器中,每一个用户对应唯一一个Session,当我们用户登录的时候,会通过Cookie中的SESSIONID,来对应服务器中的SESSION,进而获取到SESSION中的信息,Session在Tomcat服务器中默认保存时长是30分钟(从最近一次访问Session计算30分钟后失效)

通过一个项目,我进一步认识了Cokie和SESSION,如果我们的服务器发生了高并发,可以理解为,在30分钟内有大量的访问,那么我们的服务器内就会保存大量的Session,这样一来,就会对服务器造成很大的压力(就算不是大量的访问,在服务器中保存Session,也会对服务器造成轻微影响),于是就有了下面的“Session”

解决服务器中保存Session的压力,是将Session中的数据保存到了数据库中,我们创建一个表,里面有SESSIONID和和userId,当有用户登录的时候,我们就通过Cookie里的SESSIONID,来对数据库查询SESSIONID得到userId,然后得到用户信息,可以实现Session的功能,但是,当发生高并发的时候,由于是数据库中查询得到的用户,我们无法知道当前用户对应的是哪个用户,于是多线程就派上用场了,给每一个用户建立一个线程,提起来线程就头疼,刚好有一个类ThreadLocal<T>,下图是官方解释,大致意思是,ThreadLocal提供了线程内存储变量的能力,这些变量不同之处在于每一个线程读取的变量是对应的互相独立的。通过get和set方法就可以得到当前线程对应的值,也就是说,我们可以把在数据库中查询到的信息set到ThreadLocal中,用的时候get就行了,最后用完记得remove(反正数据库中有,remove了也不怕)

做了项目才知道的Cookie和Session相关推荐

  1. 哪些事是你当了大学老师之后才知道的?

    所谓外行看热闹,内行看门道,站在学生视角和高校的围墙外看大学老师,似乎他们都是一群课少钱多压力小的人生赢家,而当真正成为一名大学老师之后,才会深深感受到现实的暴击.哪些事情是你当了大学老师之后才知道的 ...

  2. 【答学员问】有什么经验教训,是你在面试很多次之后才知道的?

    有什么经验教训,是你在面试很多次之后才知道的? 最近一直在面试中,但是总得不到HR的回馈,自己也有苦恼,都快没有信心了,有没有什么秘籍可以拿来食用的. 帮助了近千名小伙伴进行面试复盘,成功入职的小伙伴 ...

  3. 有哪些事情是你学了计算机后才知道的?

    随着信息时代的到来,各行各业均与互联网息息相关,计算机逐渐渗透到了各行各业中,社会对计算机类人才的需求大增.计算机行业也是凭借着优秀的薪资待遇,吸引着越来越多的人从事这一行业. 社会上对于程序员有着各 ...

  4. 有哪些事情是你成为程序员之后才知道的?

    来源 | 三太子敖丙(ID:JavaAudition) 昨天我教练问我:"有哪些事情是你成为程序员之后才知道的."我就写下来了. 身穿一件微微起球的格子衫,背着工整的双肩包,头发乱 ...

  5. 资深程序员才知道的30个Python技巧

    Python中的省略号 Python省略号是三点序列,通常在自然语言中使用.但是您可能不知道的是,这也是Python中的有效对象: - Ellipsis 它主要用于NumPy中的矩阵切片操作.但是,您 ...

  6. 女孩做妻子前应知道的10件事

    女孩做妻子前应知道的10件事 一段时间的甜蜜恋爱期过后,你和心爱的他终于要踏上期盼已久的红地毯.你发誓一定要做个最幸福的小女人,要成一个永远让丈夫着迷的好妻子.从一个女孩的身份转变为一个妻子的身份前, ...

  7. 云顶之弈怎么防止被机器人拉_云顶之弈:只有钻石玩家才知道的12个小技巧,都是干货!...

    最近英雄联盟云顶之弈非常火爆,以前一些不上线好友的名字也纷纷亮起来了,而且放在他们名字上一看基本上都是在玩云顶之弈.笔者经常使用恶魔元素法师阵容,海岛枪剑阵容,四护卫阵容,终于非常幸运的上到了钻石段位 ...

  8. 做oms系统时候知道的

    March 01 做oms系统时候知道的 1.用javascript控制iframe打开的页面 iframe1.location.href = "http://somesite.com/so ...

  9. 数仓面试|四个在工作后才知道的SQL密技

    SQL是大数据从业者的必备技能,大部分的大数据技术框架也都提供了SQL的解决方案.可以说SQL是一种经久不衰.历久弥新的编程语言.尤其是在数仓领域,使用SQL更是家常便饭.本文会分享四个在面试和工作中 ...

最新文章

  1. Spring Security 实战干货:从零手写一个验证码登录
  2. linux hadoop集群搭建,hadoop集群搭建
  3. 《现代操作系统》读书笔记之——进程调度(二)
  4. 不错的html学习网址。
  5. Mac下node.js卸载方法收集
  6. 使用Movavi Photo Editor如何修复照片中的红眼
  7. django mysql socket_django mysql 读写分离
  8. java安装下载步骤_java下载安装教程
  9. 新手学堂之有刷/无刷动力电调与马达知识
  10. 目标检测 3—— 人脸检测
  11. html 模拟鼠标移动,如何在网页端用js模拟鼠标移动点击等操作
  12. vb整合多个excel表格到一张_vba实现excel多表合并
  13. php12生肖是哪个,生肖查询-十二属相年份查询-生肖五行查询-12生肖顺序查询
  14. activiti 流程设计模型(model) 和 部署(deployment)及流程定义(processDefinition)之间的关系;
  15. regopenkeyexfailed什么意思_外置网卡驱动安装出现RegOpenKeyEx Failed,怎么回事?
  16. [渝粤教育] 江西理工大学 机械之美——迷人的工程机械(双语) 参考 资料
  17. 360T7路由器进行WiFi无线中继教程
  18. c++语言 tcp例子,C++ boost::asio编程-同步TCP详解及实例代码
  19. 新版完整标准 BS ISO-IEC 24745-2022 信息安全、网络安全和隐私保护-生物特征信息保护
  20. 战地之王Awesonmium

热门文章

  1. 《windows核心编程》–Windows内存体结构(二)
  2. HDU 3315 My Brute
  3. Intelj IDEA的pom.xml显示错误can not reconnect
  4. BUG——Celery ValueError: not enough values to unpack
  5. emacs(考场+平时)配置方案
  6. Yii2性能优化之:缓存依赖
  7. webstrom 里面使用github
  8. BZOJ4517: [Sdoi2016]排列计数
  9. 设置searchDisplayController的searchResultsTableView的UITableViewStyle为grouped
  10. Spring的javaMail邮件发送(带附件)