网站会话跟踪:深入了解Cookie与Session技术

更新:11-21 民间故事 我要投稿 纠错 投诉

大家好,今天给各位分享网站会话跟踪:深入了解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"?

好了,文章到此结束,希望可以帮助到大家。

用户评论

?亡梦爱人

终于开始学习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位网友表示赞同!

【网站会话跟踪:深入了解Cookie与Session技术】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活

上一篇:火乐园官方版:免费注册、下载与安装指引,首码注册专属通道 下一篇:卡巴杨家湾青少年科技活动课程评价