Session和cookie的基础知识

状态管理:http无状态连接 cookie、session
cookie:存客户端,4kb、20个
session:存服务器,大小多少不受限制

1、cookie创建对象:new Cookie(key,value);
2、存放中文,需要对中文进行编码和解码操作,对他的重新编码使用的是URLDecoder decode(value,“UTF-8”);
在get的时候进行解码:
URLEncoder encode(value,“UTF-8”);
3、response.addCookie(cookie);
4、获取cookie
resquest.getCookies();、getName()、getValue()
得到所有的cookie 得到name 根据name获取得到内容

5、cookie的失效
暂时性:缓存中,浏览器的关闭即结束
永久性:setMaxAge()单位为秒,过了设置的失效时间就结束了
setMaxAge(0),表示当前的cookie对象失效

response.setContentType("text/html;charset=UTF-8");
		//Cookie存储的数据只能是字符串
		Cookie cookie = new Cookie("name","admin");
		Cookie cookie2 = new Cookie("pw","123456");
		cookie2.setMaxAge(1800);//单位是秒,存在的时间是1800秒,之后就会消失
		//添加cookie到客户端
		response.addCookie(cookie);
		response.addCookie(cookie2);
		response.getWriter().append("设置Cookie");//打开这个set才能让get方法获取到里面的值,且有一定的时限

session:
1、request.getSession(boolean)
getSession(),getSession(false);不创建对象,如果之前存在对象,返回session
getSession(true);没有对象就创建对象,有对象则返回
getSession等同于getSession(true)

HttpSession session =request.getSession();
		session.setMaxInactiveInterval(1800);
		
		System.out.println(session.isNew());
		System.out.println(session.getId());//sessionid,返回用于判断客户端不同对象的
		System.out.println(session.getMaxInactiveInterval());//
		System.out.println(session.getLastAccessedTime());
		System.out.println(new Date(session.getLastAccessedTime()));
		/*false
		A32DD459132580DEE2AFC2C04D5E8087
		1800
		1598595719113
		Fri Aug 28 14:21:59 CST 2020*/
		
		response.getWriter().append("session:"+session.isNew());

2、set/get/remove/Attribute()
3、常用方法:isNew()、getId();
4、失效时间
默认:分钟
30
setMaxInactiveInterval();秒

request.getSession().invalidate();//session失效

session工作原理:
第一次创建session对象,会产生id值,以cookie对象的方式响应到客户端:
new Cookie(“JSESSIONID”,session.getId()),默认放到了浏览器的缓存中,以响应头(request header)的方式存储,再通过浏览器发送请求,request header 发送给服务器,同id获取session对象,有的话返回,没有的话进行创建

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值