Cookie

 1)什么是Cookie?
     服务器为了识别用户身份而临时存放在浏览器端的少量数据。
    2)工作原理
        浏览器访问服务器时,服务器将一些数据以set-cookie消息头
        的形式发送给浏览器,浏览器会将这些数据临时保存下来;
        当浏览器再次访问服务器时,会将这些数据以cookie消息头的
        形式发送给服务器。
    3)添加Cookie
        Cookie c = new Cookie(String name,String value);
        注:  name: cookie名称
             value: cookie值
        response.addCookie(c);
    4)读取Cookie
        Cookie[] request.getCookies();
        注: 有可能返回null。
        String cookie.getName();
        String cookie.getValue();

 5)编码问题
        a. cookie只能存放合法的ascii字符。
        b. 如果要存放中文,可以将中文转换成合法的ascii字符形式。
            String URLEncoder.encode(String str,String charset);
            String URLDecoder.decode(String str,String charset);

注: 建议在添加cookie时,都统一编码(使用以上方法对保存的数    据进行处理)。
    6)生存时间问题
        cookie.setMaxAge(int seconds)
        a.单位是秒。
        b.sencods > 0  浏览器会将cookie保存在硬盘上,超过指定的
                    时间,cookie失效(删除)。
          sencods < 0  默认值(浏览器会将cookie保存在内存里,浏览器            关闭,cookie会被删除)。
          sencods = 0 删除cookie,比如要删除一个名称为city的cookie
                    Cookie c = new Cookie("city","");
                    c.setMaxAge(0);
                    response.addCookie(c);
    7)cookie的路径问题
        a.什么是cookie的路径问题?
        浏览器访问服务器上的某个地址时,会比较请求地址是否符合
        cookie的路径要求,只有符合要求的cookie才会被发送。
        b.cookie的默认路径
            等于添加该cookie的web组件的路径。
            比如 /servlet-day06/biz01/addCookie.jsp添加了一个
            cookie,则该cookie的默认路径就是 "/servletday06/biz01"
        c.匹配规则
            要访问的地址必须是cookie的路径或者其子路径。
            比如,cookie的路径是    "/servletday06/biz01",则
            /servletday06/findCookie1.jsp   no
            /servletday06/biz01/findCookie2.jsp  yes
            /servletday06/biz01/aaa/findCookie3.jsp  yes
        d.设置cookie路径
            cookie.setPath(String path);
    8)cookie的限制
        a.cookie不安全。(对于敏感数据,要加密处理)    。
        b.cookie可以被用户禁止。
        c.cookie只能保存少量数据。(大约4k左右)。
        d.浏览器端保存的cookie的数量也有限制。(大约几百个)
        e.cookie只能保存字符串。

session (会话)
    1)什么是session?
         服务器端为了保存状态而创建的一个特殊的对象。
    2)工作原理
            浏览器访问服务器时,服务器创建一个特殊对象session(
        该对象有一个唯一的id,称之为sessionId),服务器会将
        sessionId以cookie的形式发送给浏览器;
            当浏览器再次访问服务器时,会将sessionId发送过来,
        服务器端可以利用这个session找到对应的session对象。
    3)如何获得session对象?
        方式一
            HttpSession session = 
                request.getSession(boolean flag);
            注:
                当flag为true时,先查看请求当中有没有sessionId,
            如果没有,则创建一个session对象;
            如果有,依据sessionId查找对应的session对象,如果
            找到了则返回,找不到,会创建一个新的session对象。
                当flag为false时,先查看请求当中有没有sessionId,
            如果没有,返回null;
            如果有,依据sessionId查找对应的session对象,如果
            找到了则返回,找不到,返回null。
        方式二
            HttpSession session = 
                request.getSession();
            等价于 request.getSession(true)。

4)几个方法
        String  getId()
        setAttribute(String name,Object obj)
        Object getAttribute(String name);
        //解除绑订
        removeAttribute(String name);

5)session超时
        a.什么是session超时?
        服务器会将空闲时间过长的session对象删除掉。
        注:
            这样做的好处,是为了节省内存空间的占用    。
            服务器默认的超时限制一般是30分钟。
        b.可以修改web.xml配置,设置超时时间限制。
            <session-config>
                <session-timeout>30</session-timeout>
            </session-config>
        c.setMaxInactiveInterval(int seconds)
            设置两次请求之间的最大间隔时间,如果超过了这个时间,
            则服务器会销毁session对象。
    6)删除session
        invalidate()

转载自:http://www.cnblogs.com/Mr-Kenson/p/7715822.html

Session &cookie introduction,usage的更多相关文章

  1. Session&Cookie(Introduction、Application)

    一Session 1概念: (1)session是会话,是同一连接者所有页面公有的内置对象   (2)session是一段时间,从session创建开始,到session销毁结束,默认时间为30分钟( ...

  2. 认证 协议 JWT OAuth Session Cookie

    本文翻译自Auth-Boss. 如果有翻译的不恰当或不对的地方, 欢迎指出. 成为一个认证老司机, 了解网络上不同的身份认证方法. 本文档的目的是记录和编目Web上的身份验证方法.认证指的是创建一个系 ...

  3. session & cookie(li)

    Session & Cookie 一.定义 Session,用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间.Cookie,由服务器端生成,发送 ...

  4. web也是区分前端与后端的,session\cookie辨析

    <1>Ajax交互方式 Ext.Ajax.request( { //被用来向服务器发起请求默认的url url : "", //请求时发送后台的参数,既可以是Json对 ...

  5. 浅析session&cookie

    session&cookie没有出现的黑暗时代 大家都知道,HTTP协议是一种无状态的协议,本次请求下一次请求没有任何的关联,所有没有办法直接用http协议来记住用户的信息,试想一向,每一次点 ...

  6. http之Session&Cookie

    百度了一波session与Cookie,我发现这东西远比我想象中更复杂(可能是因为我不明白底层的运行原理).网上也是一堆的关于Session与Cookie区别/联系的文章,然而,我看完了还是一脸懵逼的 ...

  7. Asp.net MVC使用Model Binding解除Session, Cookie等依赖

    上篇文章"Asp.net MVC使用Filter解除Session, Cookie等依赖"介绍了如何使用Filter来解除对于Session, Cookie的依赖.其实这个也可以通 ...

  8. Asp.net MVC使用Filter解除Session, Cookie等依赖

    本文,介绍了Filter在MVC请求的生命周期中的作用和角色,以及Filter的一些常用应用场景. 同时针对MVC中的对于Session,Cookie等的依赖,如何使用Filter解依赖. 如果大家有 ...

  9. [转]Asp.net MVC使用Filter解除Session, Cookie等依赖

    本文转自:http://www.cnblogs.com/JustRun1983/p/3279139.html 本文,介绍了Filter在MVC请求的生命周期中的作用和角色,以及Filter的一些常用应 ...

随机推荐

  1. day23:类的命名空间和组合

    1,类属性:静态属性,方法:动态属性:双下init方法,每当我们调用类的时候就会自动的触发这个方法,默认传self,在init方法里面可以对self赋值:在类的内部,self就是一个对象,我们自己实例 ...

  2. Web开发(XAMPP服务器搭建)

    XAMPP是一个功能强大的搭建服务器环境的软件集成包.它集成了Apache.MySql.php.perl这几个服务器常用的软件.而我们在使用时,省去了安装这些软件的步骤,只需要下载XAMPP,解压缩. ...

  3. 线性表->链式存储->循环链表

    文字描述 循环链表是另一种形式的链式存储结构.它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环.由此,从表中任一结点出发均可找到表中其他结点. 示意图 算法分析 插入.删除.查找等同单 ...

  4. Fiddler抓取数据并分析(完整的配置教程)

    一.Fiddler现在的移动应用程序几乎都会和网络打交道,所以在分析一个 app 的时候,如果可以抓取出其发出的数据包,将对分析程序的流程和逻辑有极大的帮助.对于HTTP包来说,已经有很多种分析的方法 ...

  5. 如何去掉wordpress后台notice提示窗口

    我们在安装完wordpress插件后,有些会在后台页面弹出一个提示你去收费升级pro版,如下图所示,这无可厚非,基础功能可以免费用,如果要用高级功能可以升级.有些朋友觉得基础功能够用了,又不想看到弹出 ...

  6. Random-Forest-Python

    1. 近期目标,实现随机森林进行点云分类 1)学习阶段: [干货]Kaggle 数据挖掘比赛经验分享 Kaggle Machine Learning Competition: Predicting T ...

  7. Oracle中exp导出与imp导入的参数(full,owner/formuser/touser)测试

    1.exp导出的参数(FULL,OWNER)测试 先知道的一点是full不能与owner共存,还有都是以用户的方式导出(在这里),其中不仅仅包括表,这可能就是下面报warnings的原因,因为Orac ...

  8. DOS特殊字符转义方法

    http://www.robvanderwoude.com/escapechars.php 期望得到的字符 转义后字符 说明 % %% May not always be required in do ...

  9. MongoDB3.2新特性之文档验证

    官方参考: https://docs.mongodb.org/master/core/document-validation/ 文档验证是3.2的重要新特性,添加验证条件的情形无非两种,一是在创建集合 ...

  10. MongoDB基本信息

    一.MongoDB简介 来源:在2007年,由纽约一个叫10gen的创业团队开发,公司现在叫做MongoDB Inc,最初被开发为PAAS(平台即服务). 数据库类型:基于分布式文件存储的数据库.由C ...