黑马程序员技术交流社区

标题: [石家庄校区]Session相关笔记 [打印本页]

作者: 黑马11期    时间: 2018-12-29 14:58
标题: [石家庄校区]Session相关笔记
                       Session相关笔记
1)概念 :服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务端的对象中 . HttpSession
2)快速入门
*获取Session
*使用Httpsession对象
3)原理
    1.Session是依赖于Cookie 的,通过请求头和响应头来实现的
    2.第一次访问服务器(不会贴袋cookie),服务器会针对当前会话创建session对象(request.getSession()),session对象会有一个ID
    3.创建session对象后,服务器会往客户端回写一个cookie,cookie的key叫JSESSIONID=session.getId(),该cookie就会回写到浏览器,
    4.浏览器接收后下次访问服务器的时候就会把JSESSIONID的cookie传回服务器,服务器会通过传过来的JSESSIONID对应的值自己判断是否存在一个session对象的id和传过来的值一致
    5.一致的话代表找到了对应会话,这时就可以做数据共享,如果没有找到对应的id的session对象,则会重新创建一个session对象
4)相关细节 :
*当客户端后服务器不关闭,两次获取session是否为同一个么?
  -默认情况下,不是同一个
  -如果需要相同,则可以创建cookie,键为JSESSIONID,设置最大存活时间,让cookie持久化保存
*客户端不关闭,服务器关闭后,两次获取的session是同一个么?
    -不是同一个,因为地址值是随机性的
  -session的钝化: 将session转化为文件保存到内存中
    -session的活化: 将文件转换为session对象然后销毁
*session的失效时间?
    -服务器非关闭(正常关闭session会进行钝化和活化操作,并没有进行销毁)
    -session对象调用invalidate().
    -session默认失效时间,30分钟
        -->选择性配置修改
5)session特点
*session用于存储一次回话的多次请求的数据,存在服务器端
*session可以存储任意类型,任意大小的数据
-->session与cookie的区别
    -->session存储数据在服务器端,cookie在客户端
    -->session没有数据大小限制,cookie有
    -->session数据安全,cookie相对于不安全
    -->session可以存储任意任性,cookie只能存储字符串






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2