保存会话数据的两种技术

1、Cookie

  Cookie是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据了。

2、Session

  Session是服务器端技术,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象,由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中,当用户再去访问服务器中的其它web资源时,其它web资源再从用户各自的session中取出数据为用户服务。

  • Cookie是把用户的数据写给用户的浏览器。
  • Session技术把用户的数据写到用户独占的session中。

------------------------------------------------------------------------------------------------------------------------------------

  • 一个Cookie只能标识一种信息,它至少含有一个标识该信息的名称(NAME)和设置值(VALUE)。cookie的内容主要包括:名字,值,过期时间,路径和域。
  • 一个WEB站点可以给一个WEB浏览器发送多个Cookie,一个WEB浏览器也可以存储多个WEB站点提供的Cookie。
  • 浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB。
  • 如果创建了一个cookie,并将他发送到浏览器,默认情况下它是一个会话级别的cookie(即存储在浏览器的内存中),用户退出浏览器之后即被删除。若希望浏览器将该cookie存储在磁盘上,则需要使用maxAge,并给出一个以秒为单位的时间。将最大时效设为0则是命令浏览器删除该cookie。

要想在cookie中存储中文,那么必须使用URLEncoder类里面的encode(String s, String enc)方法进行中文转码,例如:

1 Cookie cookie = new Cookie("userName", URLEncoder.encode("汉字", "UTF-8"));
2 response.addCookie(cookie);

-----------------------------------------------------------------------------------------------------------------------------------------------------------

服务器创建session出来后,会把session的id号,以cookie的形式回写给客户机,这样,只要客户机的浏览器不关,再去访问服务器时,都会带着session的id号去,服务器发现客户机浏览器带session id过来了,就会使用内存中与之对应的session为之服务。

若浏览器禁用了cookie,则需要重写url

session对象的创建时机

  在程序中第一次调用request.getSession()方法时就会创建一个新的Session,可以用isNew()方法来判断Session是不是新创建的

session对象的销毁时机

  session对象默认30分钟没有使用,则服务器会自动销毁session,在web.xml文件中可以手工配置session的失效时间

session还可用于解决表单重复提交问题!

https://www.cnblogs.com/xdp-gacl/p/3803033.html

https://www.cnblogs.com/xdp-gacl/p/3855702.html

最新文章

  1. 关于iOS特定设别推送(特定用户推送)【原】
  2. css3效果
  3. JS对象的几个方法介绍
  4. 解决The current branch is not configured for pull No value for key branch.master.merge found in confi
  5. UML从需求到实现---类图(1)
  6. SU Demos-03T-F Analysis-02Sutvband
  7. lua绑定c++的时候常见得错误
  8. 前端开发利器—FIDDLER 转
  9. result 相关
  10. Matlab入门学习(文件读写)
  11. 配置nginx服务器 —— Nginx添加多个二级子域名
  12. php的ob函数实现页面静态化
  13. 学习笔记—JDBC
  14. UIPresentationController - iOS自定义模态弹出框
  15. tcp关闭状态详解
  16. 如何登录Sitecore CMS
  17. TexturePacker的plist切成单独小图片
  18. mysql 数值与字符类型 长度梳理
  19. gridview 后台增加列
  20. Java知多少虚拟机(JVM)以及跨平台原理

热门文章

  1. Java【第八篇】面向对象之高级类特性
  2. Luogu_1944 最长括号匹配
  3. 【.net】未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序解决办法
  4. Mysql加锁过程详解(9)-innodb下的记录锁,间隙锁,next-key锁
  5. Elasticsearch-基础介绍及索引原理分析(转载)
  6. sqlalchemy查询结果类型简析
  7. CSS 书写规范
  8. Beamer 跳到另外一页
  9. [再寄小读者之数学篇](2014-06-22 积分不等式 [中国科学技术大学2012年高等数学B考研试题])
  10. 应用留数定理计算实积分 $\dps{I(x)=\int_{-1}^1\frac{\rd t}{\sqrt{1-t^2}(t-x)}\ (|x|>1,x\in\bbR)}$ [华中师范大学2010年复变函数复试试题]