• session 和 cookie 的区别与联系


    1、创建一个新的Cookie

             Cookie cookie = new Cookie("username",name);

    2、设置cookie在客户端上存活多久

             cookie.setMaxAge(30*60);

    3、把cookie发送到客户

             response.addCookie(cookie);

    4、从客户请求得到cookie(或多个cookie)

             Cookie[]    cookies=request.getCookies();

             for(int i=0-;i<cookies.length;i++){

                           Cookie cookie=cookies[i];

                           out.println(cookie.getName()+":"+cookie.getValue())

                     }

    为什么要有cookie和session,以及cookie和session的区别

    壮态管理

    当用户在发送一个请求关得到返回信息之后,客户端与服务器端之间的网络连接就已经
    断开了,在下一个请求发送时,服务器无法确定这次请求和上次的请求是否来自同一个客

    户端。也就是说,服务器不能记住"记住"用户,这是hptp协议的限制。在web应用程序中,

    实际上是经常需要记住每次请求的。那么,如何让服务器知道不同的请求是否来自同一个

    客户端,就是状态管理问题出现了session和cookie。

    状态管理
    分为客户端和服务器端

    服务器端:状态信息保存在服务器端,session (其它:Application,HttpContext,Cache)

    客户端:状态信息保存在客户端,cookie (QueryString,ViewState,ControlState,隐藏域)

    当客户端向服务器发送请求时,状态信息也随之发送到服务端,从而起到验证客户端来路的目的。

    客户端状态不如服务器端的安全性和可靠性高,但服务器端状态会占用服务器端资源,影

    响服务器性能。

    Session session超过之前    数据大小不限,建议数据尽量少

    cookie 可编程控制         数据受cookie大小限制

    会话cookie和持久cookie的区别

      如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览会话期的cookie被称为会话cookie。会话cookie一般不保存在硬盘上而是保存在内存里。

      如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。

    如何使用cookie记录各个用户的访问计数

      1.获取cookie数组中专门用于统计用户访问次数的cookie的值

      2.将值转换成int型

      3.将值加1并用原来的名称重新创建一个Cookie对象

      4.重新设置最大时效

      5.将新的cookie输出

    session何时被删除

      session在下列情况下被删除:

      A.程序调用HttpSession.invalidate()

      B.距离上一次收到客户端发送的session id时间间隔超过了session的最大有效时间

      C.服务器进程被停止

    cookie和session对象的生命周期是一样的吗

      当用户关闭了浏览器虽然session cookie已经消失,但session对象仍然保存在服务器端

    关闭浏览器,只会是浏览器端内存里的session cookie消失,但不会使保存在服务器端的session对象消失,同样也不会使已经保存到硬盘上的持久化cookie消失。

  • 相关阅读:
    "Automation 服务器不能创建对象" 的解决方法
    让DataGrid拥有单击回传事件并带回指定字段的值
    SQL 和TSQL学习(一)
    数据写入XML
    DATALIST分页存储过程
    The target assembly contains no service types. You may need to adjust the Code Access Security policy of this assembly." 目标程序集不包含服务类型。可能需要调整此程序集的代码访问
    字符串转日期
    C# 日期和时间正则表达式
    js根据输入日期显示该月的最后一天的日期[转]
    JavaScript试题【解析+答案】
  • 原文地址:https://www.cnblogs.com/zhangliang88/p/5418856.html
Copyright © 2020-2023  润新知