zoukankan      html  css  js  c++  java
  • java web Cookie浅谈

    1.会话控制
    > Http协议
    Http协议两个缺陷:
    1.HTTP协议是纯文本的
    2.HTTP协议是无状态的
    服务器不能简单的通过HTTP协议来区分多次请求是否发自同一个用户
    虽然通过HTTP协议不能区分不同请求是否来同一用户,但是我们实际生活却有这样的需求。

    [1] Cookie
    > 看电影
    - 去电影院看电影时,检票人员是认票不认人。
    - 电影院的运作流程
    1.印刷电影票
    2.将票发给看电影
    3.看电影的拿着票来看电影
    4.检票

    > 简介
    - 我们想可以通过服务器向浏览器发送一个类似票的东西,
    浏览器在访问服务器时就可以拿着票来访问
    服务器就可以根据这个票来识别不同的用户。

    - 服务器发送给浏览器的这张票我们称为Cookie。
    - Cookie的使用流程:
    1.服务器先要创建Cookie
    2.将Cookie发送给浏览器
    3.浏览器带着Cookie访问服务器
    4.服务器检查浏览器的Cookie

    - Cookie实际上就是一个头
    服务器通过响应头将Cookie发送给浏览器,
    浏览器通过请求头将Cookie发回给服务器,
    服务器可以根据不同的Cookie来识别不同的用户。

    > 使用Cookie
    - 创建Cookie
    Cookie cookie = new Cookie(name,value);

    - 发送Cookie
    response.addCookie(cookie);
    注意:可以发送多个cookie!

    - 读取Cookie
    request.getCookies(); 返回的是一个Cookie数组。
    - 虽然Cookie是一个键值对结构,但是它并没有给咱们提供一个根据键获取值的方法。
    我们要想读取Cookie的信息,只能通过遍历数组。

    - 修改Cookie
    一旦Cookie发给浏览器以后,服务器便不能直接修改Cookie,
    但是可以通过使用同名Cookie来替换的老Cookie方式来间接的修改

    > Cookie的有效时间
    - Cookie的默认有效时间为一次会话,当关闭浏览器时,Cookie将失效。
    - 通过setMaxAge(秒数)来设置Cookie的有效时间
    -//当秒数大于0时,有效时间会设置为相应的秒数
    cookie.setMaxAge(30);

    //当秒数等于0时,代表Cookie立即失效,浏览器不会保存。
    cookie.setMaxAge(0);

    //当秒数小于0时,和不设置是一样,一次会话中有效
    cookie.setMaxAge(-100);

    - 设置一个长久有效的Cookie
    cookie.setMaxAge(60*60*24*365*10)

    - 在程序中使Cookie立即失效
    - 可以使用一个同名的,立即失效的Cookie来替换已有Cookie

    注意:不建议在cookie中传递中文,会用base64编码!


    > Cookie的Path
    - path指的Cookie的路径
    - 所谓的Cookie路径就是指,浏览器在访问哪些地址时会携带Cookie。
    - Cookie默认有效路径是项目的根目录,只要访问当前项目下的资源就会带着Cookie
    - 通过setPath()方法来设置Cookie有效路径

    //修改Cookie的有效路径
    //Cookie的路径由浏览器解析,所以设置路径时需要加上项目名
    cookie.setPath(request.getContextPath()+"/hello");

    > 应用:
    1.可以用来保持用户的登录状态
    2.可以用来记录用户上次输入的用户名
    3.广告的推送

  • 相关阅读:
    poj 1321
    Cocos2D-html5 公布游戏js编译为jsc
    Android定位开发之百度定位、高德定位、腾讯定位,三足鼎立一起为我所用!
    python 设计模式之 单例模式
    css画电脑键盘
    【C/C++学院】(23)Mysql数据库编程--C语言编程实现mysqlclient
    用DOM4J包实现对xml文件按属性分离。
    MVC4中AJAX Html页面打开调用后台方法实现动态载入数据库中的数据
    贝勒爷教你怎样在Mac上安装Microsoft Office
    6.Swift教程翻译系列——Swift集合类型
  • 原文地址:https://www.cnblogs.com/of-fanruice/p/7384363.html
Copyright © 2011-2022 走看看