cookie级session的工作原理

本文详细介绍了Web应用中的会话管理技术,包括cookie和session的工作原理、实现机制及URL重写等高级主题。对于理解Web应用如何保持用户状态非常有用。

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

1.cookie的概念和作用

cookie是保存在客户端的,也就是说存在于我们客户端的一个文本文件;servlet提供了Cookie类,可以将文本信息封装成cookie对象;怎么放置呢?这里HttpServletResponse接口提供了addCookie方法,将cookie添加到响应中,然后保到文本信息里面;而HttpServletRequest接口提供了getCookie方法,从文本信息中取到cookie,也就是请求中获取cookie,也就是cookie是以文本的形式存在于客户端中,利用2个接口存取;

2.session

session是客户端对服务器的一次连续的访问过程,我们称之为会话,也就是说我们访问服务器。第一个页面连接成功后,服务器端就会创建一个session;这个session 首先会检查有没有sessionID,如果没有就会创建一个新的session,如果有,他将会维持原来的session;而这个sessionID是一个既不会重复,也不容易找到规律的以仿造的字符串;而这个会话对象我们用HttpSession这个接口来表示,它有setAttibute(存储整个会话期间需要保存的值)/getAttribute(当然就是把值取出来)/removeAttribute(移除某个值)方法;而getSession是通过请求获取会话的方法;

而JSP中也有一个内置对象session,是HttpSession的对象,默认情况下,JSP总是获得session对象,可以直接使用,因为他是内置的,不需要想servlet那样,需要request.getSession获取;

3.会话的实现机制

会话的实现依赖于容器;而会话的保存时间和cookie是不一样的,cookie我存的时候有一个时间;而session存的是一个会话范围,即为了有效使用内存,以及保证安全性,会话在一定时间不被使用(称之为会话超时),将被销毁;这个设置可以通过三种方式设置;

a.web.xml中配置会话超时时间(最小min);

b.setMaxInactiveInterval方法设置超时时间(单位s);

c.Invalidate将某会话设置为失效;

4.URL重写

现在大多数情况session都是根据cookie来写的,而有的时候客户端浏览器会禁止发送cookie;如果cookie被禁止那么基于cookie的session将会失效;所以此时我们可以通过URL重写的技术来实现;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值