大家好,今天给各位分享网站会话跟踪:深入了解Cookie与Session技术的一些知识,其中也会对进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!
//创建cookie
Cookie cookie=new Cookie("键", "值");
//发送Cookie
响应.addCookie(cookie);获取Cookie后后续的每次浏览器请求都会携带Cookie数据,因此服务器可以从请求中获取Cookie数据。
//获取Cookie数组
Cookie[] cookies=request.getCookies();
//遍历每个cookie,获取每个cookie的key和value
对于(Cookie cookie : cookie){
//Cookie 密钥
字符串名称=cookie.getName();
//Cookie值
字符串值=cookie.getValue();
System.out.println("Cookie key=" + name + ", value=" + value);
}
Cookie的原理
Cookie基于HTTP协议实现
浏览器请求服务器,服务器生成cookie,并在响应头中设置响应头:set-cookie。浏览器从响应头中获取cookie。在后续请求中,它会设置一个cookie请求头并将其传递给服务器获取。 image-20221019193236615.png
在浏览器中,查看Cookie
image-20221019193318254.png
Cookie使用细节
Cookie的存活时间
默认情况下,Cookie 存储在浏览器内存中。当浏览器关闭时,Cookie会被销毁,但Cookie的生存时间也是可以设置的。控制cookie 的生存
cookie.setMaxAge(int Seconds);传入的参数为生存时间,单位为正数,单位为秒,表示该cookie会永久保存在浏览器所在磁盘中,并会自动删除当它到期时。负数,默认值,意味着cookie将存储在浏览器的内存中,关闭浏览器时零将被销毁,并且cookie将被设置为立即过期
Cookie存储问题
。如果需要在cookie中添加空格或汉字,则需要对URL进行编码。 Tomcat-7 Cookies 不能直接存储汉字,而Tomcat8 可以存储汉字,但不能存储空格,如果需要存储空格或者汉字,需要进行URL 编码,在检索String name=" 时进行URL 解码张三";
//URL编码
名称=URLEncoder.encode(名称, "UTF-8");
//创建cookie
Cookie cookie=new Cookie("名称", 名称);
//发送Cookie
响应.addCookie(cookie);
//获取cookies
Cookie[] cookies=request.getCookies();
对于(Cookie cookie : cookie){
//Cookie 密钥
字符串名称=cookie.getName();
//Cookie值
字符串值=cookie.getValue();
//URL解码,可能有空格和汉字
value=URLDecoder.decode(value, "UTF-8");
System.out.println("Cookie key=" + name + ", value=" + value);
}
Session
Session,服务器端会话技术,保存数据到服务器image-20221019193748204.pngJavaEE提供了HttpSession接口,实现一个会话中多个请求之间的数据共享功能
Session的使用
//获取Session
HttpSession 会话=request.getSession();
//将数据存储到Session中
session.setAttribute("sname", "lisi");
//从Session中获取数据
对象sname=session.getAttribute("sname");
//删除Session中指定名称的数据
session.removeAttribute("sname");
Session的原理
Session是基于Cookie实现的
image-20221019193840691.png 浏览器向服务器发送请求。服务器创建一个Session,并将Session的Id和JSESSIONID返回给浏览器。浏览器将ID 存储在cookie 中。浏览器后续发送的请求将使用这个JSESSIONID。它通过cookie发送到服务器。服务器根据这个id获取Session对象,通过该对象获取数据。
Session的使用细节
服务器重启后,Session中的数据还存在吗?
钝化。服务器关闭后,Tomcat会自动将Session数据持久化到磁盘并激活。当服务器再次启动时,Tomcat会恢复磁盘中的Session数据。笔记:
如果IDEA中集成了Tomcat,则需要勾选配置Preserve session across restarts和redeploysimage-20221019194156663.png。如果直接部署到Linux系统,则无需配置。 Tomcat 默认会启用钝化和激活。
会话销毁
默认情况下,如果30分钟没有操作,Session将自动销毁。如果需要更改,需要在web.xml中配置?xml version="1.0"encoding="UTF-8"?
好了,文章到此结束,希望可以帮助到大家。
【网站会话跟踪:深入了解Cookie与Session技术】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
终于开始学习web开发了!这个“Cookie和Session会话跟踪”的概念听起来很有意思。
有13位网友表示赞同!
前两天刚在项目里用过Cookie,感觉还挺方便的呀!
有7位网友表示赞同!
想了解Session如何实现用户登录功能?这篇文章应该能解答我的疑惑。
有7位网友表示赞同!
要是会cookie 和 Session就能开发出更复杂的网站了!
有17位网友表示赞同!
学习web开发真的需要不断的学习新的技术,比如这个Cookie和Session就很有用~
有16位网友表示赞同!
感觉Session比Cookie安全点,对吧?不知道是不是因为我理解的不全面。
有5位网友表示赞同!
我之前没太注意Cookie的作用,看完这篇文章应该能学到更多知识了。
有7位网友表示赞同!
搞得懂"Cookie和Session会话跟踪",那就离写出好网站更近了一步!
有14位网友表示赞同!
看标题就知道这篇文章要讲web开发的必备知识点了!
有6位网友表示赞同!
想知道什么样的情况下应该使用Cookie,什么时候应该使用Session? 希望能在这篇里找到答案!
有11位网友表示赞同!
Cookie和Session都是web应用的重要组成部分吗?
有8位网友表示赞同!
这篇文章会不会讲到一些常用的工具可以用来处理Cookie和Session呢?挺期待的。
有5位网友表示赞同!
我要开始写一个网站,看来学习“Cookie和Session会话跟踪”是必要的步骤!
有7位网友表示赞同!
希望这篇文章能解释清楚什么是"会话跟踪"。
有13位网友表示赞同!
之前听过“浏览器cookie”,这次准备好好了解一下。
有9位网友表示赞同!
感觉“Cookie和Session会话跟踪”这个概念很有深度,需要认真学习。
有11位网友表示赞同!
学习web开发真是不容易啊,这么多技术要掌握!
有8位网友表示赞同!
我已经读过了很多关于web开发的文章,但是还是没有接触到"Cookie和Session会话跟踪",感觉很有意思!
有10位网友表示赞同!