会话技术之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的主要内容,如果未能解决你的问题,请参考以下文章