Cookie和session的笔记
程序员文章站
2024-02-27 23:51:39
...
Cookie和session的笔记
请求和响应之间一定是需要有数据的传递,并且需要会话的状态跟踪;但HTTP协议是一种无状态协议,不同的请求间无发进行数据的传递;因此需要会话跟踪技术;
Cookie
当客户端发出第一次请求时,服务端生成Cookie,并封装在响应的头部,客户端接收并保存,当客户端再次发送同类(同一个项目)请求时,请求会携带Cookie发送给服务端,由此实现对话的跟踪;
//创建Cookie
Cookie cookie = new Cookie("name","value");
//把Cookie发在响应头
response.addCookie(cookie);
//指定那些路径可以访问Cookie
//默认同个项目下可以使用
//设为“/”同一个下服务器下有效
cookie.setPath("/路径");
//大于0,设置Cookie的有效期。以秒为单位
//-1,与不设置效果相同,会将Cookie存放在浏览器的缓存中,随浏览器结束而结束
//0,生成马上失效
coolie.setMaxAge(秒数);
//获得请求中的Cookie
Cookie[] cookies = request.getCookies();
Cookie的name不能用中文,因此我们在需要中文时可以用编码和解码的方式解决编码可以使用java.net.URLEncoder类的encode(String str,String encoding)方法,解码使用java.net.URLDecoder类的decode(String str,String encoding)方法
// 使用中文的 Cookie. name 与 value 都使用 UTF-8 编码.
Cookie cookie = new Cookie(URLEncoder.encode("姓名", "UTF-8"),
URLEncoder.encode("哈嘿", "UTF-8"));
//解码
String cookieName = URLDecoder.decode(cc.getName(), "UTF-8");
String cookieValue = URLDecoder.decode(cc.getValue(), "UTF-8");
Session
session的工作原理:当客户端发送请求时,服务器如果调用getSession()会检查请求中是否存在name为SESSIONID的cookie,如果没有就会创建一个session(session像map集合),key存放32位的随机串,value存放session的地址,并且还会创建一个name为SESSIONID的cookie存放32位的随机串
Session的使用与创建:
一般情况下,若要向Session中写入数据,则需要使用getSession(ture)或getSession()方法。 判断内存中是否存在session,有则返回session,没session就创建新session;
若有读取数据,则要使用getSession(false);有session就使用,没则返回null;
//获取Session的三种方式
Session session=request.getSession();
Session session=requset.getSession(true);//没有创建新session
Session session=request.getSession(false);//没有返回null
//在Session中存储数据
session.setAttribute(属性名,Object);
//在Session中获得数据
session.getAttribute(属性名);
//在Session中移除数据
session.removeAttribute(属性名);
//使Session失效
session.invalidata();
上一篇: ln
下一篇: 记录rac安装过程中的报错
推荐阅读
-
Cookie和session的笔记
-
Java Web(三) 会话机制,Cookie和Session详解
-
cookie和session笔记
-
Yii2.0中的COOKIE和SESSION用法
-
Yii中的cookie的发送和读取
-
Hashtable和HashMap的区别 博客分类: Java 基础笔记 java
-
Session cookie、持久化Cookie和P3P头在跨域访问时候的行为 博客分类: JavaScript Session cookie持久化CookieP3P头跨域访问
-
Hibernate中Session.get()方法和load()方法的详细比较
-
ASP.NET中Session和Cache的区别总结
-
详解PHP中cookie和session的区别及cookie和session用法小结