关于javaweb中的Cookie和Session

本文详细介绍了Cookie和Session在Java Web中的概念、特点、常用方法及使用场景。Cookie保存在本地,用于存储少量非敏感信息,而Session存储在服务器,可存储对象且安全性相对较高,但过多Session会增加服务器负担。常见的应用场景包括用户登录信息和购物车数据的存储。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.简述

        Cookie

                Cookie(曲奇),在web服务器中有时候其中的一些数据需要储存在浏览器中没比如登录              用户的账号和密码,客户端利用Cookie在本地建造一个能储存信息的小型文件。

        Session

                Session又称为会话,是在用户打开浏览器访问一个web资源时产生的,只要这个浏览器             不关闭不管跳转还是其它操作,该Session都会一直存在,Session也是用来存储一些信息               的手段,只不过这些信息只是存在于服务器中,浏览器的到的session是一个session的id,             服务器通过这个id来判断你是哪个用户。

2.特点

        Cookie

                1.保存在本地文件中,或者浏览器的内存中

                2.一个Cookie只能保存一个信息

                3.Cookie的大小有限制4kb

                4.一个站点可以给浏览器发送至多20个Cookie

                5.一个浏览器的Cookie上限是300个

                6.每次请求和响应都会携带在头中的

                7.由于保存在本地相对来说不安全

                8.只能存储String数据

        Session

                1.保存在服务器中

                2.访问web资源的时候创建

                3.关闭浏览器Session就会销毁

                4.生命周期一般是30分钟,也可以自己设置

                5.客户端记录session其实是将sessioniId记录在Cookie中,以此访问服务器的时候将                         SessionId以Cookie的形式传递给服务器,服务器以此来识别

                6.可以存储对象

                7.过多的session会对服务器造成过大的压力

3.java中常用的方法

        Cookie

        该类在javax.servlet.http中

        1.构造器          

         

                Cookie的构造器要传入两个参数一个是key另一个是Value,(都是String类型)           

                例如:Cookie cookie = new Cookie("username","Tom");

        2.设置最大时间

        

                该方法是设置最大的Cookie的生存周期,单位是秒

                例如设置cookie为3天:cookie.setMaxAge(3*24*60*60);

        3.设置Cookie的应用路径

        

                例如设置cookie.setPath("/");

                表示可在同一应用服务器内共享该Cookie

        4.获取vlue的值

        

                 获取该cookie中的value值

         5.清除Cookie

                 cookie.setMxAge(0);即可

        Session       

                该接口在javax.servlet.http中

        

        1.获取Session

        可以通过request对象或者Response对象直接getSession()即可

        2.获取Session的创建时间返回一个lang类型

        long getCreationTime();

        3.获取Session中的Id

        String getId();

        4.向其中添加或获取其中添加的信息

        getAttribute(String var1);

        setAttribute(String var1, Object var2);

        5.根据name移除某个attribute中的信息

        removeAttribute(String var1)

        6.销毁Session

        invalidate();

4.使用场景

        Session经常用来保存用户的登录信息、购物车信息、以及一些经常需要使用的信息。

        Cookie可以用来在第一次登录往cookie设置登录的信息,下一次打开页面从cookie里面获取信息,跳过登录,但是Cookie存在很大的安全隐患容易被截胡,所以现在大部分网站不用它来存放用户账号信息,而是用它来存放一些机密性不高没有那么重要的信息。

                

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值