会话技术

  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. Winsock编程基础2(UDP流程)

    UDP用户数据报协议 服务器端 <1 创建套接字(socket) <2 绑定IP地址和端口(bind) <3 收发数据(sendto, recvfrom) <4 关闭连接(cl ...

  2. 琐事集 vol 2

    vol 2-0 宝宝,你是不是该看书咯? 她正瘫在沙发上看剧 我刚提起看书,她惊恐地看了看我 然后眼白一翻,彻底地瘫平了 宝宝? “宝宝睡着了.” 你下周就要考护师了!很难得,她认真地睁开眼,信誓旦旦 ...

  3. 1.9 From Native to HTML5

    The mobile technology has become more and more mature, and it has evolved from a ridiculous situatio ...

  4. [Swift]LeetCode818. 赛车 | Race Car

    Your car starts at position 0 and speed +1 on an infinite number line.  (Your car can go into negati ...

  5. Hystrix概念设计

    1. Hystrix概念设计 1.1. 大纲 1.2. 基本的容错模式 1.3. 断路器模式 1.4. 舱壁隔离模式 1.5. 容错理念 凡事依赖都可能失败 凡事资源都有限制 网络并不可靠 延迟是应用 ...

  6. 为什么大一先要学C语言(面向过程)再学C++或JAVA(面向对象)?

    面向对象和面向过程各有千秋 一.面向过程与面向对象对比  面向过程:强调的是每一个功能的步骤,有很多很多方法组成,这些方法相互调用,完成需求. 面向对象:强调的是对象,然后由对象去调用功能. 面向过程 ...

  7. tensorflow 1.0 学习:十图详解tensorflow数据读取机制

    本文转自:https://zhuanlan.zhihu.com/p/27238630 在学习tensorflow的过程中,有很多小伙伴反映读取数据这一块很难理解.确实这一块官方的教程比较简略,网上也找 ...

  8. asp.net core 系列 2 启动Startup类介绍

    一.Startup类 ASP.NET Core 应用是一个控制台应用,它在其 Program.Main 方法中创建 Web 服务器.其中Main方法是应用的托管入口点,Main 方法调用 WebHos ...

  9. 【朝花夕拾】Android性能篇之(三)Java内存回收

    在上一篇日志([朝花夕拾]Android性能篇之(二)Java内存分配)中有讲到,JVM内存由程序计数器.虚拟机栈.本地方法栈.GC堆,方法区五个部分组成.其中GC堆是一块多线程的共享区域,它存在的作 ...

  10. 【ASP.NET Core快速入门】(十五)MVC开发:ReturnUrl实现、Model后端验证 、Model前端验证

    ReturnUrl实现 我们要实现returnUrl,我们需要在注册(Register)方法中接收传进的returnUrl并给它默认值null,然后将它保存在ViewData里面 然后我们定义一个内部 ...