尚硅谷_JavaWeb_Cookie和Session(257~269)


(尚硅谷:视频:https://www.bilibili.com/video/BV1Y7411K7zz?p=257)

一:Cookie 和 Session:

            1)实现一个功能,需要浏览器和服务器之间,进行多次会话,每一次会话中都会产生一些数据,
                 Cookie 和 Session 就是用来存储,浏览器和服务器 之间的会话产生的数据。

二:Cookie:

            1)什么是 Cookie?
                        a:Cookie 是 servlet服务器 发送给 web浏览器的 少量键值对信息,储存在浏览器,每个 Cookie 大小,不能超过 4 KB,不支持中文,信息由浏览器保存。
                        b:web浏览器 再次请求 相同服务器时,通过 path 判断,请求会携带同 path 所有 Cookie信息 发送给服务器。

            2)Cookie 的创建?

Cookie cookie = new Cookie("key01","value01");
resp.addCookie(cookie);

            3)Cookie 的服务端获取?
                        a:想找到想要的Cookie需要 遍历
                        b:获取Cookie代码

Cookie[] cookies = req.getCookies();
for (int i = 0; i < cookies.length; i++) {
    System.out.println(cookies[i].getName()+":"+cookies[i].getValue());
}


            4)Cookie 值修改:
                        a:创建同名新 Cookie 覆盖。
                        b:获取 传来客户端 Cookie,修改值,在返回给客户端

cookies[i].setValue("123");

            5)浏览器 Aplication 查看 Cookie 信息。

            6)cookie 的生命周期:

                        a:管理 Cookie 何时销毁。
                        b:cookies[i].setMaxAge(100); 

                                  --正数:表示多少秒后删除 COokie。
                                  --负数:表示浏览器关闭,Cookie删除。
                                  --  0 :立即删除 Cookie。

            7)Cookie有效路径 Path 的设置
                        a:Path属性,是通过请求地址,过滤:path属性相同,才会携带对应路径的 Cookie。 


 

三:Session 会话

            1)Session 介绍:
                        a:Session 就是一个接口(HttpSession),
                        b:Session 就是会话,用来维护客户端和服务器之间关联 的技术。
                        c:每个客户端 都有自己的 Session 会话,Session 会话存储在服务器上。
                        d:Session 会话中,经常用来保存 用户登录之后 的信息。


            2)如何创建/获取 Session:
                        a:HttpSession session = req.getSession();
                              -- 第一次调用:是 创建 Session 对象。存储在服务器中,
                                    session域(默认 180 秒销毁)
                              -- 之后调用:获取前面创建好的 Session 对象。
                              -- 没有 0 ;

                        b:销毁 Session:    
                             使此会话无效:session.invalidate();


            3)Session 方法
                        a:判断是否为新创建 Session:
                                 boolean aNew = session.isNew();

                        b:获取 Session 唯一标识 id:
                                String id = session.getId();


            4)Session 域中,存储数据:
                        a:session.setAttribute("123","123");
                        b:session.getAttribute("123");


            5)Session 生命周期控制:
                        a:设置:session.setMaxInactiveInterval(300);
                                -- 正数:设置session 超时时长
                                -- 负数:永不超时(极少使用 )
                                -- 设为无效:session.invalidate();
                        b:获取:session.getMaxInactiveInterval();
                        c:默认时长:有 Tomcat 中配置,也可以在 web.xml 中配置:

            <session-config>
                <session-timeout>20</session-timeout>
            </session-config>


            6)浏览器 和 服务器Session 之间,怎么进行关联的(关联的技术内幕)
                        a:Session 技术,底层其实是 基于 Session 技术实现的。
                        b:图片:


            7)销毁session:
                        a:超时销毁:如果session 30分钟没有被使用,则会超时销毁。
                        b:自杀:当调用session.invalidate()方法时,将会立即销毁session。
                        c:意外身亡:当服务器非正常关闭时,session会立即销毁。
                               如果服务器正常关闭,session对象不会销毁。session将会以文件的形式保存在
                                 服务器的work目录下,这个过程称之为session的钝化。
                             当服务器再次启动时,钝化着的session还可以再恢复回来,这个过程称之为session的活化!


            8)作用范围:整个会话范围内
            9)主要功能:在整个会话范围内共享数据

四:问题:

            1)Cookie和session的区别
            2)Cookie的特点

                        a:cookie是将会话中产生的数据保存在浏览器客户端, 是客户端技术
                        b:cookie是将数据保存在客户端浏览器, 容易随着用户的操作导致cookie丢失或者被窃取, 因此cookie中
                              保存的数据不太稳定, 也不太安全。
                             但是cookie将数据保存在客户端,对服务器端没有太多影响,可以将数据保存很长时间。
                             因此cookie中适合保存对安全性要求不高, 但是需要长时间保存的数据。
                        c:浏览器对cookie的大小和个数都有限制,一般推荐每一个站点给浏览器发送的cookie数量不超过20个,
                            每一个cookie的大小不超过4KB或1KB。
                            Cookie的应用:实现购物车、记住用户名、显示上次访问的时间、地点


            3)Session的特点
                        a:session是将会话中产生的数据保存在服务器端,是服务器端技术
                        b:session将数据存在服务器端的session对象中,相对更加的安全,而且更加稳定。不容易随着用户的操作
                               而导致session中的数据丢失或者是被窃取。因此session中适合存储对安全性要求较高,
                              但是不需要长时间保存的数据。Session没有存储数据大小限制,因此session可以毫无节制的使用。
                              Session的应用:保存登录状态

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值