博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Cookie对象入门详解
阅读量:2500 次
发布时间:2019-05-11

本文共 1900 字,大约阅读时间需要 6 分钟。

今儿个聊一聊Cookie的一些入门知识点

进入正题前,先了解一下我们常用的四大域对象
在这里插入图片描述
域对象:能放数据,取数据,删除数据

四大域:范围从大到小

域对象 域对象的作用范围
ServletContext 整个项目
(常用)HttpSession 一次会话作用域有效
(常用)Request作用域 一次请求内有效
Page域 同一个页面有效

Cookie对象是HttpSession域对象中的一个分支

提到Cookie就离不开会话跟踪技术了
会话跟踪技术: 从第一次访问服务器开始,到关闭浏览器之间的整个过程,Session域的数据有效,每个用户有每个用户的Session
Session的ID编号会存入客户端浏览器的Cookie
在这里插入图片描述
换句话说,Cookie每个浏览器都会有,但是Cookie是不能跨浏览器的,也就IE浏览器里的Cookie数据火狐浏览器,Chrome浏览器肯定是获取不到的

好比你去一家A银行办卡存钱,你的账户信息B银行获取不到你的账户信息

Cookie有一些规范:

Cookie的大小上限4kb
一个浏览器最多保存300个Cookie
一个服务器最多再客户端浏览器上保存20个Cookie
补充说明:规范只作为了解,现在很多浏览器为了提高性能已经优化了这方面的一些限制了

Cookie对象的方法:

构造:

Cookie(String name,String value)//Cookie的构造方法//如果创建的Cookie的key已经存在,新的Cookie会覆盖旧的//也就是说Cookie对象也是以key-value键值对的形式存储数据的

操作数据:

getValue()   setValue()//获取或者修改Cookie的值getName()//拿到Cookie的namesetMaxAge(int  expiry)//设置Cookie存放的时间,默认单位是秒//expriy=0:表示Cookie立即删除    //expriy=-1:该值是默认值,Cookie存在客户端内存,当浏览器关闭时,Cookie清除//expriy>0:即为该Cookie存放时间   //expiry=60  表示Cookie存放60秒,60秒后浏览器删除该Cookie

修改路径:

setPath()//设置Cookie访问的路径

访问路径问题

Cookie路径: Cookie如果没有设置路径,默认路径是 “/项目名”

举个栗子: 有三个Servlet类,路径分别如下
ACookie: /test
BCookie: /test/servlet
CCookie: /test/jsp
这三个Servlet能否互相访问内容?
我们先来看看他们各自的url路径

http://locathost:8888/xx/test/AServlet    http://locathost:8888/xx/test/servlet/BServlet    http://locathost:8888/xx/test/jsp/CServlet

AServlet 只能访问ACookie

BServlet 访问ACookie和BCookie
CServlet 访问ACookie和CCookie

Cookie的创建与使用

步骤://创建Cookie,Cookie不能存放中文		Cookie c=new Cookie("age","21");		Cookie c1=new Cookie("name","zs");  //给Cookie设置声明周期, 默认单位:秒            c.setMaxAge(7*24*60*60);//7天  //保存到客户端            response.addCookie(c);		    response.addCookie(c1);

编码/解码问题:

Cookie存放中文,需要将数据进行编码

方法:URLEncoder.encode()URLDeEncode.decode()
用法:	String str="博客";        //编码	String url=URLEncoder.encode(str,"UTF-8");	//解码        String newStr=URLDecoder.decode(urlStr,"UTF-8");

补充说明:一般实际开发很少用到Cookie中转换为中文,因为中文在开发中还是存在很多未知的错误,这是其一

执行上述的代码发现,编码的"博客"长度很长占的空间比中文大,而"博客"在UTF-8中才占6个字节
在这里插入图片描述

转载地址:http://huhrb.baihongyu.com/

你可能感兴趣的文章
PHP批量插入
查看>>
laravel连接sql server 2008
查看>>
Laravel 操作redis的各种数据类型
查看>>
Laravel框架学习笔记之任务调度(定时任务)
查看>>
laravel 定时任务秒级执行
查看>>
浅析 Laravel 官方文档推荐的 Nginx 配置
查看>>
Swagger在Laravel项目中的使用
查看>>
Laravel 的生命周期
查看>>
CentOS Docker 安装
查看>>
Nginx
查看>>
Navicat远程连接云主机数据库
查看>>
Nginx配置文件nginx.conf中文详解(总结)
查看>>
Mysql出现Table 'performance_schema.session_status' doesn't exist
查看>>
MySQL innert join、left join、right join等理解
查看>>
vivado模块封装ip/edf
查看>>
sdc时序约束
查看>>
Xilinx Jtag Access/svf文件/BSCANE2
查看>>
NoC片上网络
查看>>
开源SoC整理
查看>>
【2020-3-21】Mac安装Homebrew慢,解决办法
查看>>