会话管理:Cookie-Session

    一个客户端为了实现某个功能和服务器产生的多次请求和加在一起成为一次会话,会话不可避免的就会产生和会话相关的数据,这些数据如何保存是会话技术讨论的重点内容,可以使用Cookie 和 Session这两种技术保存会话相关的数据

1.Cookie是客户端技术:会话相关的数据保存在客户端中,原理是基于Set-Cookie响应头和Cookie请求头进行工作


sun公司提供了便捷的API去操作cookie:

    (1)Cookie c = new Cookie(String name,String Value); 创建cookie对象

            response.addCookie(c);将cookie信息加入响应中

    (2)Cookie [] cs = request.getCookies();从请求中获取所有的cookie信息组成的数组

    (3)setValue() getValue() 设置或获取cookie的值
    (4)getName() 获取当前cookie的名字,没有setName()方法,一个cookie一旦被创建出来,名字就不能改了,如果你想改名字去创建一个新的cookie
    (5)setMaxAge() getMaxAge() 默认情况下,cookie信息会被保存在浏览器的内存中,cookie能够存储多长时间取决于浏览器什么时候关闭,浏览器一旦关闭,随着浏览器内存的销毁,cookie也就销毁了,像这样的cookie我们称之为会话级别的cookie。
            如果希望cookie能够存活指定的时间,此时可以设置Cookie的MaxAge实行,这个属性一旦被设置,cookie发到浏览器后就会被保存在浏览器的临时文件夹中,在指定的时间到来之前,这个文件一直存在,即使多次开关浏览器,浏览器仍然可以从临时文件夹中获取cookie从而使用。
    (6)setPath() getPath() 默认的情况下,path的值是发送cookie的Servlet的所在的路径,在访问这个路径及其自路径时会带着cookie来访问
                http://localhost/Day10/servlet/Demo1 发送cookie 没有设置path
                http://localhost/Day10/servlet/这个路径及其自路径中会有cookie
                我们也可以通过setPath()方法设置path的值,指定浏览器在访问哪个地址时带着cookie信息来访问

    (7)setDomain与getDomain方法 设置访问哪个域名时,带着这个cookie,像这样的cookie我们称之为第三方cookie,现代的浏览器只要是第三方cookie,默认拒绝接受,所以这方法只要设置过,浏览器就会识别为第三方cookie,拒绝接受

        **如果想要删除一个Cookie 可以发送一个同名同path的cookie并且把maxage设置为0,则浏览器是通过名字+path识别一个cookie,此时cookie会发生覆盖的操作,覆盖后cookie立即超时,浏览器删除cookie,看起来就像cookie被删除了一样。
        **一个站点可以发送多个cookie给浏览器,浏览器也可以保存多个站点的cookie
        **一个浏览器最多保存300个cookie 一个站点最多20个 每个cookie不能超过4kb
        **cookie随时可能被清除,安全性也很低,所以不能保存重要的 和 要求可靠的数据

2.Session是服务器端技术:服务器为每一个用户浏览器创建一个独享的Session对象


Session是一个域对象
            作用范围:
整个会话范围内
            生命周期:
                
在第一次调用request.getSession()方法时,创建出session,
                超时:session超过一定时间(默认30分钟,这个时间可设置)没有人使用,则认为超时,干掉这个session。
                自杀:也可以明确的掉用session的invalidate()方法,手动的杀死session。
                意外身亡:或者当服务器非正常关闭时,服务器中的session跟着消亡。
            
                setAttribute()
                getAttribute()
                removeAttribute()

猜你喜欢

转载自blog.csdn.net/yyws2016/article/details/80582677