cookie,session的讲解及使用

javaWeb中的会话

会话:

概述:javaweb中的会话指,访问一个站点,从第一次请求访问中访问了该网站的一系列的页面,直到访问结束,浏览器被关闭的过程都是一次回话。

作用:回话主用于追踪用户的行为。保存用户信息,识别用户身份。

常见回话的分类:

  • cookie称为客户端会话。
  • session 称为服务器会话。

cookie

概述:Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息 [1] 。

特点:

  • 1、cookie只能是小型文本,一般不超过4k.
  • 2、是存放在客户端的。
  • 3、存放信息,辨别用户身份的。
  • 快速请空缓存信息的快捷键 shift + ctrl + delete

Cookie的使用

  • Cookie的原理
    cookie,session的讲解及使用
  • cookie的创建:
    cookie,session的讲解及使用
  • 设置cookie的生命周期:单位默认为秒
    cookie,session的讲解及使用
  • 设置cookie的保存位置,默认项目根路径:
    cookie,session的讲解及使用
  • 设置cookie 的保存服务器:
    cookie,session的讲解及使用
  • 修改cookie的值:
    cookie,session的讲解及使用
  • 将cookie保存在响应头中,不能省略。
    cookie,session的讲解及使用
  • 获取cookie中值的方法:
    cookie,session的讲解及使用
  • 使用el表达式来获取cookie信息:
    cookie,session的讲解及使用

总结特点:

  • 1、cookie只能保存文本类型的数据,注意tomcat服务器在cookie中保存中文8.0以前的会乱码。
  • 2、Cookie是保存在客户端的,称为客户端回话。
  • 3、cookie是有大小和数量限制的,单个cookie一般不操过4k,单个站点不超过100个,单个浏览器一般不操过300个。
  • 4、cookie是不安全的,可以在本地获取,但通常存放cookie都需要加密。
  • 5、cookie默认的生命周期是浏览器关闭cookie销毁,如果长时间保存必须设置生命周期,单位秒。

Session

概述: session是服务器会话,是依赖于cookie来识别用户身份的会话对象,将会话信息保存在服务器,通过JSESSIONID来识别用户身份的,JSESSIONID是通过cookie 来保存的。session是依赖cookie的。

原理图:

cookie,session的讲解及使用

session实例:

  • 1、当用户之后在主页面显示欢迎xxx登录
    cookie,session的讲解及使用
  • 前端登录页面:
    cookie,session的讲解及使用
  • 主页面:
    cookie,session的讲解及使用

改变session 在客户端默认的生命周期:

cookie,session的讲解及使用

登录验证,即用户没有登录不允许访问主页面:

  • 后台验证:
    cookie,session的讲解及使用
  • 前端页面验证:
    cookie,session的讲解及使用

session 失效的情况总结:

  • 1、浏览器关闭
  • 2、超过session的生命周期
  • 3、调用了invalidate(); 方法销毁了session

session 和cookie的区别和联系:

  • 联系
    • 1、cookie和session都属于会话对象
    • 2、session 需要依赖于cookie识别用户身份,即追踪用户,session的JSESSIONID就是cookie保存本地。
  • 区别:
    • 1、cookie只能保存文本类型的数据,session 可以存放如何类型的数据
    • 2、Cookie是保存在客户端的,称为客户端回话。session保存在服务器称为服务器会话。
    • 3、cookie是有大小和数量限制的,session理论上是没有的。
    • 4、cookie是不安全的,可以在本地获取,但通常存放cookie都需要加密。session相对更安全,存放数据不需要加密。
    • 5、cookie默认的生命周期是浏览器关闭cookie销毁,如果长时间保存必须设置生命周期,单位秒。session默认是30分钟,当浏览器关闭,会话结束,实际服务器上的session还是存在的。
    • 6、创建方式不同:cookie是直接创建cookie的对象,而session通过request来获取,是自动创建的。