【Cookie和Session】

Cookie和Session

Cookie

基于HTTP协议实现
     响应头:set-cookie
     请求头:cookie

默认情况下,Cookie存储在浏览器当中,当浏览器关闭,内存释放,则Cookie被销毁
setMaxAge(int seconds):设置存活时间 (单位:秒)
      1.正数:将cookie写入浏览器所在电脑的硬盘,持久化存储。到时间自动删除
      2.负数:默认值,Cookie在当前浏览器内存中,当浏览器关闭,则,Cookie被销毁
      3.零:删除对应 Cookie

Cookie不能直接存储中文,如需要存储,则需要进行转码:URL编码

            String v = "张三";
            // URL编码
            v = URLEncoder.encode(v, "utf-8");
            // URL解码
            value = URLDecoder.decode(value, "utf-8");
	//创建cookie对象
   	Cookie cookie = new Cookie("username", "zhangsan");
   	//使用response对象,发送Cookie到客户端
  	response.addCookie(cookie);
 //获取cookie数组
     Cookie[] cookies = request.getCookies();
     for (Cookie cookie : cookies) {
	 	//获取数据
        String name = cookie.getName();
        String value = cookie.getValue();
        System.out.println(name + ":" + value);
     }
Session

在这里插入图片描述

数据存储到session中 和 从session中获取数据 都需要先获取session对象

   	//获取session对象
   	HttpSession session = request.getSession();
   	//Session对象功能:
	void setAttribute(String name, Object o); //存储数据到session域中
	Object getAttribute(String name); //根据key,获取值
	void removeAttribute(String name); //根据key,删除该键值对

     钝化: 在服务器正常关闭后, Tomcat会自动将Session数据写入硬盘的文件中(模块目录下的target/tomcat/work/一直到最后)
     活化: 再次启动服务器后,从文件中加载数据到Session中(同时文件也被删除)。

Session销毁:
      · 默认,无操作,三十分钟自动销毁
            可以在web.xml中配置标签, 设置session失效时间
     · Session对象的invalidate() 方法



相同: 都是完成一次会话内多次请求间数据共享

区别:

CookieSession
存储位置将数据存储到客户端将数据存储在服务端
安全性不安全安全
数据大小最大3KB无大小限制
存储时间可以长期存储默认30分钟(可以设置)
服务器性能不占用服务器资源占用服务器资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值