1.session 是什么:
session是一次会话,从访问服务器项目开始该对象被创建,浏览器关闭,会话断开。但是这个时候session并没有被销毁。销毁session只有俩种办法
①等其自动过时
②程序调用HttpSession.invalidate()
2.session与session-ID的关系
每一个session都由一个Sessionid唯一标识,
创建了Session的同时,服务器会为该Session生成唯一的Session id,
而这个Session id在随后的请求中会被用来重新获得已经创建的Session;
在Session被创建之后,就可以调用Session相关的方法往Session中增加内容了,
而这些内容只会保存在服务器中,发到客户端的只有Session id;当客户端再次发送请求的时候,
会将这个Session id带上,服务器接受到请求之后就会依据Session id找到相应的Session,
从而再次使用之。正式这样一个过程,用户的状态也就得以保持了。
3.sessionId的产生原理
每次客户端第一次请求session对象时,服务器会为客户端创建一个sessionID
(tomcat的session的id值生成的机制是一个随机数加时间加上jvm的id值,
jvm的id值会根据服务器的硬件信息计算得来,因此不同jvm的id值都是唯一的)
4.session 与cookie之间的关系
cookie与session分数与客户端与服务器端,但是服务端的session的实现对客户端的cookie有依赖关系的
务端执行session机制时候会生成session的id值,这个id值会发送给客户端,客户端每次请求都会把这个id值
放到http请求的头部发送给服务端,而这个id值在客户端会保存下来,保存的容器就是cookie。
这里涉及到cookie的生命周期问题:如果不设置过期时间,则表示cookie的生命周期为浏览器会话期间,只要关闭
浏览器窗口,cookie就消失了。所以这就是为什么即使原来的session会话还未结束,但我们已经无法访问到它的原因。
解决方法:设置Cookie对象的有效时间。.setMaxAge()可以设置cookie对象的有效时间
session字符编码问题
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
下一篇:es 如何设置账号密码
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Java设置JSON字符串参数编码
本文详细介绍了如何在Java中创建JSON字符串以及在Java中设置JSON字符串参数编码的方法。
json 字符串 JSON Java -
python基础-条件语句、while、字符串格式化、运算符、字符串编码
学习Python基础的笔记,看视频学Python。
字符串 Python 代码块 python基础 -
vim字符编码问题
vim,字符,编码,乱码
utf-8 字符编码 vim gdk -
Jython小问题-字符编码
WebLogic/WebSphere监控中
python java 安装程序 -
解决Mysql字符编码问题
解决Mysql中文字符编码问题
mysql数据库 utf8 中文字符 -
(94)字符编码、联通问题
一、编码表概述 字符流的出现为了方便操作字符...
数据 字符串 码表 数组 客户端 -
java主线程等待线程执行完
Java中线程分为两种类型:用户线程和守护线程。通过Thread.setDaemon(false)设置为用户线程;通过Thread.setDaemon(true)设置为守护线程。如果不设置次属性,默认为用户线程。用户线程和守护线程的区别:主线程结束后用户线程还会继续运行,JVM存活;主线程结束后守护线程和JVM的状态又下面第2条确定。如果没有用户线程,都是守护线程,那么JVM结束(随之而来的是所有
java主线程等待线程执行完 Java主线程与子线程的生死存亡 守护线程和用户线程的区别 守护线程 System