会话技术之Session

Posted www1842564021

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了会话技术之Session相关的知识,希望对你有一定的参考价值。

session运行原理

技术图片

 

张三表示要买手机,发出请求,然后我们在服务器端开一个内存给张三 并且生成jsessionid号为123(唯一的),然后把手机存进去,然后服务器把这个内存的

jsessionid号响应到客户端,保存到客户端,然后等会张三想结算的时候 就用这个jseessionid号来寻找刚才他的那块区域。

Session是依赖于客户端的

Session技术

Session技术是将数据存储在服务器端的技术,会为每个客户端都创建一块内存空间 存储客户的数据,但客户端需要每次都携带一个标识ID去服务器中寻找属于自己的内 存空间。所以说Session的实现是基于Cookie,Session需要借助于Cookie存储客 户的唯一性标识JSESSIONID

Session这我们需要学习如下三个问题:

怎样获得属于本客户端的session对象(内存区域)?

怎样向session中存取数据(session也是一个域对象)?

session对象的生命周期?

获得Session对象

技术图片

 

 第一次给你创建,如果已经有了就不会创建了会把之前创建的给你。一个客户端只能有一个session区域

一个客户端一个jsessionid,一个游览器是一个客户端

怎样向session中存取数据(session也是一个域对象)

技术图片

 

之前我们也学了两个域对象

一个servletcontext域对象:整个web应用。整个web项目

request域对象:一次请求中。

session域对象:如果没设置session持久化的话。一次会话中。

cookie不是域对象,域对象都是在服务器上的

技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 

总结:

Cookie技术:存在放在客户端

创建cookie对象:

Cookie cookie = new Cookie(name,value)

设施持久化时间:

cookie.setMaxAge(秒)

设置路径

cookie.setPath()

发送cookie

response.addCookie(cookie)

 

获得cookie

Cookie[] cookies = request.getCookies();

遍历后可以获得(增强for)

cookie.getName();

cookie.getValue();

 

Session技术:存到服务器端 借助cookie存储JSESSIONID

获得session对象

HttpSession session = request.getSession();

往session域里存值

setAttribute(name,value);

往session域里取值

getAttribute(name);

技术图片

 

 

以上是关于会话技术之Session的主要内容,如果未能解决你的问题,请参考以下文章

会话技术之Session

Java会话技术之Session

Java会话技术之Session

Java实战之04JavaWeb-03会话技术

前端学PHP之会话Session

JavaEE之会话技术Cookie&Session