欢迎关注头条号:java小马哥

周一至周日早九点半!下午三点半!精品技术文章准时送上!!!

精品学习资料获取通道,参见文末

本文讲述了一路走来对Session的认知。文章有点长,不过是故事型的,应该不枯燥。相信读完也一定会有所收获。

(一)

“当你登陆系统后,服务器会创建一个Session,保存你的登陆信息,下次再访问时就不需要再登陆。Session可以保存到数据库里或文件里,必要时可以还原出来。”

没错,这就是我十几年前认识的Session。那时正读大学,由于天生对游戏不感兴趣,也没有运动细胞,整天闲得很,唯有学习。

那是一个到处充满着“等等等等,等等等等,等等等等,等”手机铃声的年代。有人会问,iphone呢,估计还在乔布斯的襁褓里精心呵护着的吧。

由于我到大学才算真正接触电脑,而且还是买网卡在宿舍里通过电话线拨号上网,关键还是按时间计费的。

我上网技术本来就很差,再加上上网也不方便,同时受学校环境影响,我就学习.NET了,整天没事就看MSDN(中文离线版的)。

开头的那段话就是我在MSDN里看到的,看过很多遍,所以记忆特别清晰。前半句我能明白,因为我也登陆过系统,确实只需登陆一次,后续就不用登陆了。

但是后半句我就很纳闷,甚至莫名其妙,Session为什么要保存到数据库里呢,这个问题在当时想过很多遍,一直想不通。

不过这也正常,那时候我可能连“文件”这个词都不能很好的理解。更不要提什么“目录”了,你直接告诉我“文件夹”不就行了嘛。

不理解归不理解,但我能记住,只要面试时能balabala说出来,这就够了。

(二)

终于毕业了,回到家乡的省会找了一份工作。那个年代的工作是什么呢?

“企业建站大酬宾啦,基础型800,标准型1200,豪华型1600,带会员的外加400。”。

没错,就是用.NET里的ASP.NET(俗称WebForm)开发小型企业网站。

公司非常小,一个美工,一个技术(会asp,.net只懂一点点),一个客服(不是接电话的,是定期打电话回访客户的),一个行政(为啥不叫“前台”呢,因为公司门口没有地方放桌子),再加一个我。

那时的我不叫开发,叫程序员。每天做的事情也不叫写代码,叫“加程序”。当你看到“加程序”这三个字时一定很莫名。我来解释下。

美工做好效果图,客户确认后,会切图做成静态的html页面。我把程序代码加进去(就是把html页面换成.aspx页面),让所有页面“动”起来。估计这就是“加程序”这个叫法的来源,嗯,不错,挺形象的。

可见我这写代码的没一点地位,是我的程序加到人家美工的作品里,人家美工才是大姐大。呜呜。

终于可以使用Session了,不再像大学那会儿总是纸上谈兵。

在.aspx页面对应的C#源代码文件里,有个属性就叫Session(是从System.Web.UI.Page类继承的),可以直接拿来用。

在登陆时把用户信息放入Session,如Session["userName"] = "lixinjie",Session["nickName"] = "李大胖"等。

在登出时把用户信息清除掉,如Session["userName"] = null,Session["nickName"] = null等。

纳尼,就是这样清除的吗?不应该是Session.RemoveAll()或Session.Clear()吗?告诉你,从没这样用过,那时打开SQL Server 2000看到密码竟是用明文存储的,也不要太惊讶哦。

那时刚入行的我也有很多烦恼,为啥静态html页面的布局样式都是好的,等我“加完程序”后页面的布局样式就都乱了。还得让美工帮忙调。

为此我还专门学习div+css布局(为啥不学table布局呢?table土的掉渣,div才高大上呢),貌似最后也没太大改观,布局还是照样乱。

抱着“齐家治国平天下”的我,怎么可能安心在这小公司里天天“加程序”呢。不行,我要辞职,要去大城市,干“大事”。

你们肯定告诉我,辞职要提前一个月提,公司可能要重新招人,做好工作交接什么的。告诉你,那时的我,不存在这些的。你都不知道我大学旷过多少节课,大四时劝室友说,赶紧旷课吧,再不旷就没机会了,马上要毕业了。

下班就跟老板说,我想辞职,第二天就不去了。老板也对得起我,到现在最后一个月的工资还没给我发呢。后来我想,那时都是发现金的,直接发到手上,老板肯定是找不着我所以才不给我发的。嗯,这样想心理平衡多了。

(三)

春节后一张前往北京的动车票,我踏上了旅途。那时感觉动车票老贵了,好几百呢。

春节刚过的北京依然寒冷,不过那时2元钱游遍整个北京城还是非常不错的,只是几个月过去了都不知道地面上是啥样子的。

找了一家公司,还是.NET里的ASP.NET开发网站,没办法,那时我只会这个。后来公司准备撤掉Java部门,搞Java的人集体辞职了,由我来负责所有Java项目的收尾工作。

很奇怪为啥是我负责Java的收尾,我可是以.NET的身份进去的。莫非他们觉得我做.NET水平很次?或难道我给他们说过我会Java?不过我确实会Java,只是会Java语法,看过一些JDK文档而已。

那时正是大夏天,天天往客户那里跑,那一号线坐的我爽歪歪,没有空调,人头攒动,汗流浃背。

终于可以在Java里使用session了。

是这样用的,在登陆时,request.getSession().setAttribute("userName

java session使用_Java互联网架构-高负载集群架构如何解决session一致性问题相关推荐

  1. Java SaaS高可用集群架构与微服务架构分析

    可能大部分读者都在想,为什么在这以 dubbo.spring cloud 为代表的微服务时代,我要还要整理这种已经 "过时" 高可用集群架构? 本人工作上大部分团队都是 7-15 ...

  2. 现阶段Java高可用集群架构与微服务架构的简单分析

    一.如何选择 1.高可用集群 适用于中小型创业公司项目架构,小型技术团队快速迭代版本发布部署需求,前期低成本运行,爆发时可通过投入适量成本横向扩容服务器抗压. 特点: 前期技术开发成本低 一定的服务器 ...

  3. 架构师之路 — 部署架构 — 高可用集群 — N+1 高可用模型

    目录 文章目录 目录 前言 高可用集群架构 高可用集群模型模型 N+1 模型 N+1 模型关键技术 单进程多定时器的设计 冗余节点快速切换技术 服务器池多级检测机制 前言 本地是对论文<服务器池 ...

  4. RabbitMQ 构建高可靠集群架构

    主备模式和主从模式的区别? 主备模式:主节点读写,从节点读写都不可,作为备胎,启动切换,主备相互转换,主节点可能变成从节点,从节点有一天会变成主节点,有点备胎的意思.一主多备. 主从模式:主节点读写, ...

  5. Redis 如何使用 Twemproxy 和 Sentinel 构建高可用集群架构?

    文章目录 Redis 如何使用 Twemproxy 和 Sentinel 构建高可用集群架构? 配置环境 构建 RedisSharding1 安装 Redis 配置 RedisSharding1 构建 ...

  6. 安排,谷粒商城java分布式开发基础篇高级篇与高可用集群架构篇2020

    来源: 来自网络,如侵权请告知博主删除????. 仅学习使用,请勿用于其他- 最近有小伙伴管我要分布式这类的项目,还有一些要商城的,还有要springboot,springcloud,k8s等,几乎涵 ...

  7. mysql 高并发 集群架构_一种高并发的GPU集群架构及其负载均衡方法技术

    [技术实现步骤摘要] 一种高并发的GPU集群架构及其负载均衡方法 本专利技术属于GPU集群架构及其负载均衡方法 ,特别是涉及一种高并发的GPU集群架构及其负载均衡方法. 技术介绍 GPU因其高性能的并 ...

  8. Redis基础与高可用集群架构进阶详解

    一.NoSQL简介 1.问题引入 每年到了过年期间,大家都会自觉自发的组织一场活动,叫做春运!以前我们买票都是到火车站排队,后来呢,有了 12306,有了它以后就更方便了,我们可以在网上买票,但是带来 ...

  9. RocketMQ的组织架构和基本概念,Dledger高可用集群架构原理

    文章目录 1. MQ产品介绍 2. rocketMQ组织架构 ①:NameServer ②:Broker ③:生产者(Producer) ④:消费者(Consumer) ⑤:主题(Topic) ⑥:消 ...

最新文章

  1. notepad php发布网站,谈谈如何把WordPress部署到服务器上
  2. eclipse启动时报错An internal error occurred during: Initializing Java Tooling.
  3. linux signal 符号表,铁路信号图形符号
  4. tableau必知必会之如何在Tableau server中实现工作薄的自动刷新
  5. 如何在JUnit 5中替换规则
  6. python改文件后缀名_python 批量修改文件后缀名(示例)
  7. 基于hilbert变换的数字信号_基于Hilbert变换处理绝对重力仪测量数据
  8. unity 导入STL格式模型(STL 文本ASCII码格式文件)
  9. excel使用教程_Excel筛选和高级筛选怎么使用?筛选最全教程
  10. Git子模块使用-管理多个git项目
  11. 真人玩计算机图片大全集,微信真人表情图片大全 用自己的照片做微信真人表情包(好玩),各类搞笑素材任你选择...
  12. 使用SendCloud企业发送邮件
  13. linux git rabit,Linux 安装 RabbitMQ
  14. 企业微信自动添加手机好友工具
  15. js jquery 3D模型展示
  16. [译]不再对 MVVM 感到绝望
  17. Oracle 查询效率优化
  18. 微机原理——8086系统的概述与引脚介绍
  19. 《三国塔防》为什么成功?
  20. PHP.ini配置文件中文【转】

热门文章

  1. idea IDE 常用快捷键记录
  2. MyBatis由浅入深学习总结之一:MyBatis入门案例
  3. (非)对称加密算法在https中的应用(加密过程以及CA颁发、验证)
  4. splitpane如何设置竖条的宽度_如何用 CSS 画三角形和箭头
  5. PyCharm编辑界面提示
  6. Spring模块介绍
  7. 权限修饰符(public、protected、default、private)权限验证
  8. 21.1-21.4 memcached介绍,安装使用,状态查看
  9. docker学习5--docker数据卷(volume)
  10. day18-基于DjangoORM的外键实现增加用户(含select标签)