会话技术

  1. 会话: 一次会话中包含多次请求和响应.

    • 一次会话:浏览器第一次给服务器资源发送请,会话建立,直到有一方断开为止
    • 功能:在一次会话的范围内的多次请求之间共享数据
    • 方式:
      1. 客户端会话技术:cookie
      2. 服务器端和会话技术:session

        cookie:

  2. 概念: 客户端会话技术,将数据保存在客户端
  3. 快速入门:
    • 使用步骤

      1. 创建cookie对象,绑定数据

        • new Cookie(String name,String value)
      2. 发送cookie对象
        • response.addCookie(Cookie cookie)
      3. 获取cookie拿到数据
        • Cookie[] request.getCookies()
  4. 实现原理:
    • 基于响应头的set-cookie和请求头cookie实现
  5. cookie的细节
    1. 一次可不可以发送多个cookie?

      • 可以创建多个Cookie对象,使用response调用多次addcookie方法发送cookie即可;
    2. cookie在浏览器中保存时间?
      1. 默认情况下,当浏览器关闭后,cookie对象即销毁
      2. 设置cookie的持久化存储
        • setMaxAge(int seconds)

          1. 正数:将cookie数据写到硬盘的文件中.持久化存储,cookie存活时间
          2. 负数:关闭浏览器后cookie对象销毁
          3. 0:销毁cookie
    3. cookie中能不能存中文?
      • 在tomcat8之前不支持中文,需要转码
      • tomcat8支持中文
    4. cookie共享问题?
      1. 假设一个tomcat下部署多个web项目,那么在这些web项目下cookie能不能共享?

        • 默认情况下不能共享
        • setPath(String path):设置cookie的取值范围.默认情况下设置为当前的虚拟目录
        • 如果要共享,则可以将path设置为"/";
      2. 不同的tomcat服务器间cookie如何共享
        • setDomain(String path):如果设置一级域名相同,那么多个服务器之间cookie可以共享
    5. cookie的特点和作用
      1. cookie储存数据在客户端
      2. 浏览器对于单个cookie的大小有限制(4kb)以及同一个域名下的总cookie数量也有限制(20个)
      • 作用:

        1. cookie一般用于储存少量不太敏感的数据
        2. 在不登陆的情况下,完成服务器对客户端的身份识别

Session

  1. 概念:服务器端会话技术,在一次会话的多次请求之间共享数据,将数据保存在服务器的对象中
  2. 快速入门
    1. 获取HttpSession对象

      • HttpSession session=request.getSession();
    2. 使用HttpSession对象
      • setAttribute(String name,Object object)
      • Object getAttribute()
      • removeAttribute(String name)
    3. 原理:session的实现是依靠cookie的
    4. 细节:
      1. 当客户端关闭时服务器端不关闭,获取的session是同一个吗?

        • 默认不是,如果需要相同,则可以创建cookie 设置键为JESSIONID,存活时间
      2. 当服务器关闭,客户端不关闭获取的session是同一个吗?
        • 不是同一个,但是要确保数据不丢失
        • session的钝化
          • 在服务器正常关闭之前将session对象系列化带硬盘
        • session的活化
          • 在服务器启动后,将session文件转化为内存中的session对象
      3. session是么时候被销毁
        1. 服务器关闭时
        2. session对象调用invalidate().
        3. session默认失效时间:30分钟

        • 30
  3. session的特点
    1. session用于存储一次会话的多次请求数据,存在服务器端
    2. session可以存储任意类型,任意大小的数据
  • Session与Cookie的区别

    1. session储存数据在服务器端,cookie在客户端
    2. session没有数据大小限制,cookie有
    3. session数据安全,cookie相对于不安全

Java中的会话Cookie&&Session的更多相关文章

  1. Java中的会话管理——HttpServlet,Cookies,URL Rewriting(译)

    参考谷歌翻译,关键字直接使用英文,原文地址:http://www.journaldev.com/1907/java-session-management-servlet-httpsession-url ...

  2. Java 中的会话管理—— HttpServlet,Cookies,URL Rewriting(转)

    索引 1.什么是 Session? 2.Java 中的会话管理—— Cookie 3.Java Servlet 中的 Session —— HttpSession 理解 JSESSIONID Cook ...

  3. Java中如何读写cookie (二)

    Java中删除cookie Cookie[]   cookies=request.getCookies();       //cookies不为空,则清除       if(cookies!=null ...

  4. PHP中的会话控制—session和cookie(实现数据传值功能)

    1.session  登录上一个页面以后,长时间没有操作,刷新页面以后需要重新登录. 特点:(1)session是存储在服务器:   (2)session每个人(登陆者)存一份: (3)session ...

  5. java遍历当前会话所有Session

    //方法一:通过遍历的方法进行遍历 String FileName=""; HttpSession session=request.getSession();//获取session ...

  6. Django会话cookie&session

    任务描述:实现登录和退出 1.项目结构 2.源代码 urls.py from django.conf.urls import url from django.contrib import admin ...

  7. Java EE之会话

    1.需要会话的原因 所有HTTP服务器技术都普遍采用HTTP会话的概念,并且Java EE也在规范中添加了对会话的支持. 维持状态 会话用于维持请求和请求之间的状态.HTTP请求自身是完全无状态的.从 ...

  8. 会话Cookie

    Cookie分为会话Cookie和本地Cookie两种 之前一直理解的是会话Cookie不在本地文件存储,只存储于内存,而本地Cookie因为设置了expire过期时间需要在本地存储 下面是白帽子讲W ...

  9. Java Web(三) 会话机制,Cookie和Session详解

    很大一部分应该知道什么是会话机制,也能说的出几句,我也大概了解一点,但是学了之后几天不用,立马忘的一干二净,原因可能是没能好好理解这两种会话机制,所以会一直遗忘,一直重新回过头来学习它,今天好好把他总 ...

随机推荐

  1. APP测试流程的总结

    本规范基于app大小版本测试经验总结. 第一阶段:需求分析(技术+产品) 1. 新需求是否合理 2. 新旧需求时否存在冲突 3. 理出测试重点 4. 估算测试时间 5. 不熟悉的需求点,确认(负责人, ...

  2. [Swift]LeetCode552. 学生出勤记录 II | Student Attendance Record II

    Given a positive integer n, return the number of all possible attendance records with length n, whic ...

  3. PowerShell 中 RunspacePool 执行异步多线程任务

    在 PowerShell 中要执行任务脚本,现在通常使用 Runspace,效率很高:任务比较多时,用 Runspace pool 来执行异步操作,可以控制资源池数量,就像 C# 中的线程池一样 == ...

  4. ASP.NET 一个数据访问层的封装

    刚通过开通写博客的申请,向博客园的大佬致敬,由于一直以来都在网上搜索大家的思想,也有翻遍整个百度都有的找不到的时候,作为一个网民理应为互联网贡献一点东西. 下面是我工作后受一个师傅的影响对数据库访问层 ...

  5. 8.Git分支-分支的创建与合并-01

    1.新建分支  git checkout -b <branch-name>  创建一个分支并且切换到这个分支.  git checkout -b <branch-name> = ...

  6. 【Spark篇】---Spark中Shuffle机制,SparkShuffle和SortShuffle

    一.前述 Spark中Shuffle的机制可以分为HashShuffle,SortShuffle. SparkShuffle概念 reduceByKey会将上一个RDD中的每一个key对应的所有val ...

  7. angularJS学习(二)

    1.实现列表 思路: accessCtrl.js let AccessCtrl = function($scope, AlertService, DialogService, BigDataServi ...

  8. WebSocket(2)---实现游戏公告功能

    实现游戏公告功能 实现功能:游戏管理里发布游戏公告,其它游戏玩家页面能够马上接受到游戏公告信息. 下面直接上代码案例,这里主要展示关键代码,底部有源码. 一.案例 1.pom.xml文件 主要是添加s ...

  9. localStorage之本地储存

    一.定义json var employees = [{ "firstName":"Bill" , "lastName":"Gate ...

  10. qt之窗口换肤

    1.相关文章 Qt 资源系统qt的moc,uic,rcc命令的使用 2.概要    毕业两年了,一直使用的是qt界面库来开发程序,使用过vs08.10.13等开发工具,并安装了qt的插件,最近在做客户 ...