书山小站

记录我的程序人生

【JAVA开发☕】会话技术 & Cookie & Session

请输入图片描述

会话技术 & Cookie & Session

会话: 用户通过浏览器访问 服务器内的资源。 访问和结束

会话跟踪: 服务器需要识别多次请求是否来自于同一浏览器,以便在同一次会话的多次请求间共享数据

  • 主要总结:

    • 减少多次请求
  • 实现方式

    • 客户端会话跟踪技术:Cookie
    • 服务端会话跟踪技术:Session

Cookie 基本使用

  • 保存一个凭证,客户端呢 每次发送请求携带Cookie 数据进行访问
  • 相等于一个服务端MAP,服务端给个key。

    Cookie基本使用

    • 创建Cookie对象 ,设置数据

      • Cookie.cookie = new Cookie("key","value");
    • 发送Cookie到客户端,使用response对象

      • response.addCookie(cookie)

    获取cookie
    Cookie[] cookies = request,getCookies();
    遍历cookies数组
    cookie.getName();
    cookie.getValue();

  • Cookie原理

    • Cookie的实现是基于HTTP协议的

      • 响应头: set-cookie
      • 请求头: cookie
  • Cookie 使用细节

    • Cookie 存活时间
      setMaxAge(int second) 设置Cookie存活时间

      • 负数 默认值关闭Cookie销毁
      • 零 删除对应的cookie
    • Cookie 存储中文

      • cookie默认不能使用 中文
      • 解决办法

        • URL编码和解码

Session 基本使用

  • 服务端会话跟踪技术: 将数据保存到服务端
  • JavaEE 提供HttpSession接口,来实现一次会话的多次请求间数据共享
  • 使用

    • 获取对象

      • HttpSession session = request.getSession();
    • 对象功能

      • setAttribute(String name,Object c);

        • 存储数据到session中
      • getAttribute(string name)

        • 根据key值获取值
      • removeAttribute(string name)

        • 获取key,删除健对
  • 原理

    Session 是 基于Cookie实现的
  • Session使用细节

    • Session 钝化 活化:

      • 服务器重启后,Session数据是否还在

        • 钝化: 在服务器正常关闭后,Tomcat会自动将Session数据写入硬盘文件中
        • 活化:再次启动服务器后,从文件中加载数据到Session中
    • Session销毁

      • 默认情况下,无操作,30分钟自动销毁

        • <session-config>
          <session-timeout>30</session-timeout>
          <session-config/>
        • 在web.xml中配置就行
      • 手动销毁:

        • session.invalidate();

          • 执行后直接销毁了

发表评论

电子邮件地址不会被公开。 必填项已用*标注