zoukankan      html  css  js  c++  java
  • cookie和session

    一、we为什么要用cookie和session

      由于http协议是无状态的,在我们日常访问对网站进行访问时,服务器需要区分当前是哪个用户在请求,这样才能根据特定的用户作出特定的响应,这样就用到了cookie和session。

    二、cookie

      1、Cookie保存在客户端

      2、只能保存字符串对象,不能保存对象类型

      3、需要客户端浏览器的支持,用户可以禁用cookie

      4、一个Cookie只能标识一种信息,它至少含有一个标识该信息的名称(NAME)和设置值(VALUE)。

      5、一个WEB站点可以给一个WEB浏览器发送多个Cookie,一个WEB浏览器也可以存储多个WEB站点提供的Cookie。

      6、浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB。

      7、如果创建了一个cookie,并将他发送到浏览器,默认情况下它是一个会话级别的cookie(即存储在浏览器的内存中),用户退出浏览器之后即被删除。若希望浏览器将该cookie存储在磁盘上,则需要使用maxAge,并给出一个以秒为单位的时间。将最大时效设为0则是命令浏览器删除该cookie。

      8、cookie 相关api

        new Cookie(key,value)  创建cookie

        HttpServletRequest.getCookies()  获取cookie

        HttpServletResponse.addCookie(Cookie)  添加cookie到响应中

        public int getMaxAge()  获取cookie过期时间

        public void setMaxAge(int expiry)  设置cookie过期时间

        

    三、session特点

      在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中取出该用户的数据,为用户服务。

      

      Session和Cookie的主要区别在于:

        Cookie是把用户的数据写给用户的浏览器。

        Session技术把用户的数据写到用户独占的session中。

        Session对象由服务器创建,开发人员可以调用request对象的getSession方法得到session对象。不是访问一个页面就创建session,而是遇到语句request..getSession();就创建了一个session。

      session相关api

        request.getSession(); (等价于request.getSession(true);)表示如果session对象不存在,就创建一个新的会话

        request.getSession(false);  表示如果session对象不存在就返回null,不会创建新的会话对象

        public void setMaxInactiveInterval(int interval)  设置最大非活动时间间隔,单位秒;如果参数interval是负值,表示永不过时。tomcat中session的有效期默认为30分钟。

    <!--通过配置web.xml来设置会话超时,单位是分钟
    允许两种方式并存,但前者优先级更高
    -->
    <session-config>
        <session-timeout>1</session-timeout>
    </session-config>

        

  • 相关阅读:
    hcharts实现堆叠柱形图
    程序员常用的六大技术博客类
    程序员常用的六大技术博客类
    程序员常用的六大技术博客类
    程序员常用的六大技术博客类
    前端几个常用简单的开发手册拿走不谢
    web开发快速提高工作效率的一些资源
    web开发快速提高工作效率的一些资源
    基础知识(5)- 继承
    51 NOD 1384 全排列(STL 搜索)
  • 原文地址:https://www.cnblogs.com/kyleinjava/p/9009705.html
Copyright © 2011-2022 走看看