12Cookie、Session-2018/07/24

  • 1.保存会话数据

    • cookie客户端技术,把每个用户的数据以cookie的形式写给用户各自的浏览器
    • HttpSession服务端技术,服务器运行时为每一个用户的浏览器创建一个独享的HttpSession对象,把数据放在里边
  • 2.Cookie(客户端技术,只能存字符串,不安全)
    • response接口定义了addCookie方法,用于在响应头增加一个相应的Set-Cookie头字段
    • request接口也定义了一个getCookie方法,用于获取客户端提交的Cookie
    • 属性:
      • name名称不能唯一确定cookie,路径可能不同
      • value不能用中文
      • path保存同一个路径下的cookie都可以取到,也可以通过setPath设置
        • ck.setPath("/");
        • ck.setPath(request.getContextPath());
      • getMaxAge指定cookie最大的生存空间,-1指示该cookie将保留到浏览器关闭为止
      • setMaxAge设置最大生存时间
      • MaxAge默认存在浏览器的内存中
        • 负数:cookie的数据存在浏览器中
        • 0:删除,路径要保持一致(setPath),否则可能删错
        • 正数:缓存的时间
  • 3.HttpSession(服务器端的技术,可以存对象)
    • 同一个会话下,可以使一个应用的多个资源共享数据
    • 重要方法
      • void setAttribute(String name,Object value);
      • Object getAttribute(String name);
      • void removeAttribute(String name);
      • HttpSession.getId():
      • setMaxInactiveInterval(int interval) 设置session的存活时间,以秒为单位,默认30分钟
      • invalidate() 使此会话无效
  • 4.getSession
    • 得到一个HttpSession对象,通过getSession方法
    • 内部原理
      • 1、获取名称为JSESSIONID的cookie的值。
      • 2、没有这样的cookie,创建一个新的HttpSession对象,分配一个唯一的SessionID,并且向客户端写了一个名字为JSESSIONID=sessionID的cookie
      • 3、有这样的Cookie,获取cookie的值(即HttpSession对象的值),从服务器的内存中根据ID找那个HttpSession对象;
  • 5.session状态
    • 类实现Serializable,可序列化,服务器重启后数据还在
  • 6.客户端禁用Cookie后的会话数据保存问题
    • 客户端禁用cookie:浏览器永远不会向服务器发送cookie的请求消息头
    • 方法:URL重写。必须对网站的所有地址都重写。 http://url--->http://url;JSESSIONID=111 response.encodeURL(String url); 看浏览器有没有发送cookie请求消息头,没有就重写URL,有就不重写。 request.getSession();必须写,不需要接收

12Cookie、Session的更多相关文章

  1. C#-WebForm-★内置对象简介★Request-获取请求对象、Response相应请求对象、Session全局变量(私有)、Cookie全局变量(私有)、Application全局公共变量、ViewState

    内置对象: 1.Request - 获取请求对象 用法:接收传值 protected void Page_Load(object sender, EventArgs e) { TextBox1.Tex ...

  2. 缓存Cookie、session、localStorage的区别

    cookie Cookie就是服务器暂存放在你计算机上的一笔资料,好让服务器用来辨认你的计算机.当你在浏览网站的时候,Web服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文 ...

  3. Nginx+Tomcat+Redis实现负载均衡、资源分离、session共享

    Nginx+Tomcat+Redis实现负载均衡.资源分离.session共享 CentOS安装Nginx http://centoscn.com/CentosServer/www/2013/0910 ...

  4. cookie、session与token

    一.详述概念 1.Cookie机制 cookie机制是采用在客户端保持状态的方案(cookie的作用就是为了解决HTTP协议无状态的缺陷所作的努力).cookie的使用是由浏览器按照一定的原则在后台自 ...

  5. Application、 session、iewstate,以及repeater 的commang用法

      Session:在不同的浏览器之间传值,像银行之类的网站为了安全把用户名密码保存在session里面.每一台电脑访问服务器,都会是独立的一套session,key值都一样,但是内容都是不一样的 以 ...

  6. URL、Session、Cookies、Server.Transfer、Application和跨页面传送,利弊比较

    URL.Session.Cookies.Server.Transfer.Application和跨页面传送.-本题考查面试者对ASP.NET中多页面传值的理解是否全面.因为ASP.NET的页面表单提交 ...

  7. JavaWeb学习之转发和重定向、会话技术:cookie、session、验证码实例、URLConnection使用(下载网页)(4)

    1.转发和重定向 HttpServletResponse response 转发: RequestDispatcher dispatcher = request.getRequestDispatche ...

  8. Kali Linux Web 渗透测试视频教程—第十四课-arp欺骗、嗅探、dns欺骗、session劫持

    Kali Linux Web 渗透测试视频教程—第十四课-arp欺骗.嗅探.dns欺骗.session劫持 文/玄魂 目录 Kali Linux Web 渗透测试—第十四课-arp欺骗.嗅探.dns欺 ...

  9. cookie 、session、JSESSIONID

    cookie .session ? 让我们用几个例子来描述一下cookie和session机制之间的区别与联系.笔者曾经常去的一家咖啡店有喝5杯咖啡免费赠一杯咖啡的优惠,然而一次性消费5杯咖啡的机会微 ...

随机推荐

  1. cp和scp

    1 两个命令的格式一样 cp src dst scp src dst 将src文件拷贝到dst目的地.cp是本机拷贝,即从本机的一个地方拷贝到另外一个地方. 而scp是拷贝到远程及其还是从远程机器拷贝 ...

  2. 编译自己的gcc

    1 编译gcc需要的依赖 gmp mpfr mpc isl binutils 将它们都安装在同一个目录下即可. 2 --disable-nls 将native language support关掉,只 ...

  3. ARP协议(4)ARP编程

    之前的几篇文章,分别介绍了 ARP 协议格式,在vs2012里配置winpcap环境,我们该做的准备都已经做完了.如今我们真正来实现了. 一.定义数据结构 依据ARP的协议格式,设计一个ARP协议格式 ...

  4. 中国剩余定理模板&俄罗斯乘法

    void ex_gcd(ll a,ll b,ll &d,ll &x,ll &y){ if(!b){d=a;x=1LL;y=0LL;} else {ex_gcd(b,a%b,d, ...

  5. 嵌入式Linux系统---ppp拨号,4G模块上网【转】

    本文转载自:http://blog.csdn.net/qq562029186/article/details/65438553 4G模块PPP拨号上网 方法1 所需文件: xxx-chat-conne ...

  6. luogu 4630 [APIO2018] Duathlon 铁人两项

    题目大意: 无向图上找三个点 a b c使存在一条从a到b经过c的路径 求取这三个点的方案数 思路: 建立圆方树 这个圆方树保证没有两个圆点相连或两个方点相连 对于每个节点x 设该节点为路径的中间节点 ...

  7. JSP:目录

    ylbtech-JSP:目录 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   作者:ylbtech出处:http://ylbtech.c ...

  8. java编程中的断言工具类(org.springframework.util.Assert)

    转自:https://blog.csdn.net/gokeiryou263/article/details/19612471 断言工具类:Assert类, java.lang.Object ---&g ...

  9. springboot开发过程中的小坑(持续更新)

    1. 启动的Application必须放到一个package下面,如下: package com.example.kikidemo; import org.springframework.boot.S ...

  10. vue中父组件传数据给子组件

    父组件: <template> <parent> <child :list="list"></child> //在这里绑定list对 ...