JavaWeb学习笔记-Cookie和Session

本文详细介绍了Cookie和Session的概念、使用方法以及生命周期管理。Cookie是服务器存储在客户端的数据,用于跟踪用户状态;Session则是服务器端保存用户信息的技术,通过唯一的Session ID与客户端关联。当Cookie被删除时,如果Session还存在,服务器会创建新的Session。同时,文章还提到了如何设置Cookie的有效路径和管理Session的生命周期。

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

  1. 什么是Cookie?
    Cookie是服务器以键值对的方式写在客户端的数据,键值对可以有多个,作用于客户端。
    每次服务器创建Session会话时会自动创建Cookie写入客户端
JSESSIONID=B9E05098B14B08A517D24A5511A1B7BE
JSESSIONID是键,B9E05098B14B08A517D24A5511A1B7BE是新建Session的id号

客户端每次发送请求时,服务器根据Cookie的JSESSIONID键的值在服务器内存中寻找相应Session
2. Cookie常用方法

 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
               Cookie cookie=new Cookie("key","value"); //创建Cookie
               response.addCookie(cookie); //cookie写入客户端
               //修改Cookie,因为是键值对所以直接替换
              Cookie cookie1=new Cookie("key","value2");
              response.addCookie(cookie1);
         Cookie[] cookies=request.getCookies(); //得到客户度Cookie
        for (Cookie c:cookies
        ) {
            System.out.println(c.getName()+","+c.getValue());
        }

3.管理Cookeie生命周期
setMaxAge(int i)
参数i为正数,表示i秒后删除Cookie
参数i为-1时,表示游览器关闭后删除Cookie(默认)
参数i为0时,表示立即删除Cookie

4.Cookie设置有效路径,只有该路径下的Cookie才会发送给服务器

cookie.setPath("工程路径/abc"); //代表只有访问abc路径才会发送Cookie

5.什么是Session?
Session就是会话,用来维护客户端和服务器关联的一种技术,每个客户端都有一个Session会话,Session会话拥有唯一的id号,客户端的数据存放在Session里面

6.Session常用方法

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            HttpSession httpSession= request.getSession();
            httpSession.setAttribute("key","value");//设置会话域
            Object value=httpSession.getAttribute("key");
            System.out.println(value);
    }

7.管理Session生命周期
setmaxinactiveinterval(int i)过了i秒Sesion自动销毁
getmaxinactiveinterval() 得到Session的超时时间
invalidate()Session会话马上销毁
Session默认的超时时间是30分钟

8.*********重点 Cookie和Session的联系
在这里插入图片描述注意:当Session会话存在的情况下Cookie删除了,那么服务器会因为得不到Cookie的key而找不到对应session的id,而新建Session会话。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值