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>

 

posted on 2018-05-17 19:52  北冥丶中郎将  阅读(111)  评论(0编辑  收藏  举报