扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
session的引入:
鉴于http是无状态的协议,当完成客户端和服务器的传递信息后,就断开之间的联系,这样就造成了怎么样在几个页面之间传递信息
比如客户端信息,或者假如是写一个购物程序,就要记得购物车里面的信息,jsp提供了四种方法来跟踪客户的状态
1:建立匿名的表格字段
2: 使用url传递
3 使用持久化的cookies
4:使用session 的会话机制
相对于安全级别来说第四种最高了,session是指在一段时间内客户端和服务器之间的一连串的相关的交互过程。
在一个session中客户可能会访问不同的服务器资源,也可能会多次访问同一个页面。
sevlet容器为httpsession分配一个唯一的标识,成为sessionid,容器会把sessionid放在客户端的cookies中,每次客户端发出http请求的时候,servlet可以把httdivquest对象中读取sessionid。然后更具sessionid找到对应的session对象,从而取得客户端状态信息。
session的方法:
getid()取得session的id号。
setattribuate(string name,object obj)保存一对name、value对象
getattribute(String name)获取name的属性
isnew()判断session时候是新建的。
废除sesion对象的方法"
1:setmaxinactival()通过设置最大不活动时间
2:关闭客户端浏览器
3:调用session的invalidate()方法
如果客户端不支持cookies时,那么session的id号就不能保存,那么在java API中提出了一种跟踪session的方法,容器可以重写客户请求的url,把sessionid添加倒url中response.encodeurl("**.jsp");
session的高级主题:session的持久化当一个session开始时,容器会为之创建一个session对象,但是如果又10000个人同时登录呢,这时就要把信息从内存中转移到文件系统中或者数据库中,当需要访问的时候再调用倒内存中,提高内存的利用率,也便于恢复数据(故障会丢失信息)。
从内存到文件系统活着数据库,采用了java语言的对象序列化技术,把对象从文件活着数据库中提取到内存中使用了java语言提供的对象反序列化技术。 |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者