• java_day27_Cookie,Session


              Cookie和Session

    一.Cookie   参考博文

      工作流程:

        1. servlet创建cookie,保存少量数据,发送浏览器。

          2. 浏览器获得服务器发送的cookie数据,将自动的保存到浏览器端。

              3. 下次访问时,浏览器将自动携带cookie数据发送给服务器。

      cookie操作:

        1.创建cookie:new Cookie(name,value)

          2.发送cookie到浏览器:HttpServletResponse.addCookie(Cookie)

        3.servlet接收cookie:HttpServletRequest.getCookies()  浏览器发送的所有cookie

      cookie特点:

            1. 每一个cookie文件大小:4kb , 如果超过4kb浏览器不识别

            2. 一个web站点(web项目):发送20个

              3.一个浏览器保存总大小:300个

              4.cookie 不安全,可能泄露用户信息。浏览器支持禁用cookie操作。

            5. 默认情况生命周期:与浏览器会话一样,当浏览器关闭时cookie销毁的。

              5.1,cookie.getName() 获得名称,cookie中的key

          5.2,cookie.getValue() 获得值,cookie中的value

          5.3,cookie.setValue(java.lang.String newValue)  设置内容,用于修改key对应的value值。

          5.4,cookie.setMaxAge(int expiry) 设置有效时间

            5.4.1,maxAge >0 表示cookie存活多少秒,到时间浏览器删除该cookie

            5.4.2,maxAge <0 无论设置成多少,都表示活到浏览器关闭,默认值是-1

            5.4.3,maxAge =0 告诉浏览器立即删除这个cookie

          5.5,cookie.setPath(java.lang.String uri);表明我们网站的哪个页面可以访问cookie 

    二.session

      1.原理:首先浏览器请求服务器访问web站点时,程序需要为客户端的请求创建一个session的时候,服务器首先会检查这个客户端请求是否已经包含了一个session标识、称为SESSIONID,如果已经包含了一个sessionid则说明以前已经为此客户端创建过session,服务器就按照sessionid把这个session检索出来使用,如果客户端请求不包含session id,则服务器为此客户端创建一个session并且生成一个与此session相关联的jsessionid

      2.获取session:

         HttpSession session = new request.getSession();//如果没有将创建一个新的,等效getSession(true);

      3.session属性操作:

         session.setAttrubute(key,value);//存值

         session.getAttribute(key);取值

         session.invalidate()将session对象销毁,注销功能

         session.setMaxInactiveInterval(int interval) 设置有效时间,单位秒

         在web.xml中配置session的有效时间:

           <session-config>

              <session-timeout>30</session-timeout>   单位:分钟

              <cookie-config>

                <max-age>3600</max-age> //只能控制JSESSIONID的生命周期

              </cookie-config>

           <session-config>

  • 相关阅读:
    数据库面试题
    网络编程_TCP协议_客户端与服务端
    29-街道最短路径问题(哈曼顿距离)
    60-安慰奶牛(最小生成树)
    20-集合问题(并查集)
    59-算法训练 操作格子 (线段树)
    58-最小乘积(基本型)
    11-vector的使用
    20-取石子动态规则(hdu2516 斐波那契博弈)
    19-格子游戏(hdu2147博弈)
  • 原文地址:https://www.cnblogs.com/memo-song/p/9052863.html
Copyright © 2020-2023  润新知