session / cookie

本文深入讲解session的工作原理,包括session如何在浏览器和服务器间传递信息,其存储方式及生命周期管理。探讨了session与cookie的区别,如位置、大小、安全性及时间设置的不同,以及它们在实际应用中的选择依据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

session原理

session存取值

概论:(session本身是一个map集合)session是浏览器和服务器会话过程中,服务器分配的的一块存储空间。服务器会认为浏览器在cookie中设置sessionid,
浏览器在向服务器请求过程中传输cookie包含sessionid,服务器根据sessionid获取出会话中存储的信息。
通过cookie中的sessionid字段和服务器端的session关联,可以确定会话的身份信息。

session 跨请求存数据的两个条件:

1.客户浏览器不能关闭
2.请求不能超过session的过期时间

session 生命周期的操做方法

session.setMaxInactiveInterval(20 * 60);//设置session过期时间
session.invalidate();//销毁sessino 的方法
session.getCreationTime();//获得session 的创建时间
session.getLastAccessedTime();//获得session最后以一次被使用的时间
1.Java后台在session中存储一个键值对
例:public ModelAndView login(HttpServletRequest request,HttpServletResponse response){

String age= “123”;
request.getSession().setAttribute(“age”, age);
//request.getSession() 是取出session, setAttribute("1 ",1)是session存数据
//key、value形式存储
}

2.JSTL标签在Session中存储获取一个键值对,并展示出来
例:<% session.setAttribute("age","123");%>

//在页面放一个session存储,key、value形式存储

${sessionScope.age} 在页面上显示的就是123了

sessionScope指的是session的范围,
类似还有requestScope,pageScope,contextScope
然后后面的age表示的是set属性时的key值

3.Jsp在Session中存储和获取一个键值对:
例:session是jsp的内置对象,所以你可以直接写在jsp的  

<%
session.setAttribute(“age”, 123); //把123放到session里,命名为age,

String c= session.getAttribute("age").toString(); 

//从session里把a拿出来,并赋值给c
%>

4.在js中可以这样去获取:
例:var name = "<%=c %>";

session和cookie 的区别

1.位置不同:session 是位于服务器上面;cookie是位于浏览器上的
2.大小不同:cookie的大小相对而言要小一些,只允许4KB,而session是无限量的
3.安全性:cookie在浏览器上,容易修改,安全性比session低。
4.时间设置:cookie时间可以使cookie过期。但是使用session-destory(),销毁会话。
5.session会在一段时间内保存在服务器上,当访问增多时,会占用服务器内存,影响服务器性能;如果考虑到提高服务器性能的方面,应当使用cookie。

cookie/session机制详解 https://blog.youkuaiyun.com/fangaoxin/article/details/6952954/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值