session机制大揭秘(结合cookie)
session运行机制
当一个session开始时,servlet容器将创建一个httpSession对象,在HttpSession对象中可以存放客户状态信息。
servlet容器为HttpSession分配唯一一个标识符,成为sessionID,servlet容器把session id 作为cookie保存在客户端浏览器中,每次客户发送http请求时,servlet容器可以从HTTPServletRequest对象中读取session ID,然后根据session ID找到相应的HttpSession对象,从而获取客户的状态信息。
理解图:
它通过getID的方式产生一个sessionID,通过cookie的方式写入客户端,客户端再通过请求,再将该ID返回给服务器端,这样,一来一去,服务器就知道与客户端对应的session对象是什么了,所以产生服务器端多个session对象之间不会出现干扰。他们之间是相互独立的。
HttpSession接口
1.getID():获取session值
2.isNew():判断是否创建新的sessin
3.SetMaxInactiveInterval() 设置一个session可以处于不活动状态的最大时间间隔,以秒为单位,如果为负数,表不限制session处于不活动状态的时间,默认值为30分钟
设置sessin失效时间(在xml中)
<session-config>
<session-timeout>10</session-timeout>
</session-config>
默认页面都对session支持,因为
<%@page session="true">为默认的
sessin生命周期
当客户第一次访问web应用中支持session的某个页面时,就会开始一个新的sessin。
接下来当客户浏览这个web应用的不同网页时,始终处于同一个session中。
结束:在以下情况中,session将会结束生命周期,servlet容器会将session所占用的资源释放掉
1.客户端关闭浏览器(正常关闭)
2.sessin过期
3.服务器端调用了HttpSession的invalidation()方法。
严格的讲:关闭浏览器不一定删除sessin,有时候用以下几种方法可以强制关闭
1.可以在所有页面中js的window.onclose来见识浏览器是否关闭
但是对于浏览器崩溃或者强行杀死进程,这些非常规手段无能为力,所以在实际项目中,我们让sessin过期时,释放删除。
sessinID对应的cookie是存在于浏览器进程上得,当浏览器关闭时,对应的进程消失,cookie也随之消失、。
session对应的cookie是存在于浏览器进程上面的,所以我们称之为会话cookie,所以,当关闭浏览器时,客户端不会向服务器发送任何请求,也不会收到任何响应,服务器端的session依然存活着,当新开一个浏览器时,就会新开一个sessionID。
session过期,是指当session开始后,在一段时间内,客户没有和web服务器交互,这个session会话会失效,我们可以通过HttpSession的setMaxInactiveInterval()方法设置允许session保持不活动的时间(以秒为单位)
练习题:
哪一个说法正确:
A.对于每个请求访问mailLogin.jsp的Http请求,servlet容器都会创建一个HttpSession对象。
B.每个HttpSession对象都有唯一的ID
C.javaWeb应用程序必须负责为HttpSession分配唯一的ID
session机制大揭秘(结合cookie)的更多相关文章
- session机制,浏览器禁用cookie后,怎么使用session
sessionid是存储在cookie中的,解决方案如下: Session URL重写,保证在客户端禁用或不支持COOKIE时,仍然可以使用Session session机制.session机制是一种 ...
- Session机制(是对cookie的作用的提升,使用较多)
1.Session作用类似于购物车,第一次,放入物品,可以获得Session的id,并可以设置id失效的时间,这样便于多次将物品放在购物车里面,使用的就是获取的Session的id: 2.Sessio ...
- 理解Cookie和Session机制(转)
目录[-] Cookie机制 什么是Cookie 记录用户访问次数 Cookie的不可跨域名性 Unicode编码:保存中文 BASE64编码:保存二进制图片 设置Cookie的所有属性 Cookie ...
- 理解Cookie和Session机制
转载: 理解Cookie和Session机制 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录 ...
- cookie,Session机制的本质,跨应用程序的session共享
目录:一.术语session二.HTTP协议与状态保持三.理解cookie机制四.理解session机制五.理解javax.servlet.http.HttpSession六.HttpSession常 ...
- 深入理解Cookie和Session机制
转载理解Cookie和Session机制 目录 Cookie机制什么是CookieCookie的不可跨域名性Unicode编码:保存中文BASE64编码:保存二进制图片设置Cookie的所有属性Coo ...
- C#基础知识之理解Cookie和Session机制
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...
- cookie机制、session机制
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...
- 转:理解Cookie和Session机制
原文: 理解Cookie和Session机制 摘要: Cookie工作原理 由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份.怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论 ...
随机推荐
- SVG动画实践篇-无中生有的线条动画
git: https://github.com/rainnaZR/svg-animations/tree/master/src/pages/step2/path 说明 这个动画实现的是线条动画,主要用 ...
- Openlayers3 编辑要素
参考文章 Openlayers之编辑要素 MAPZONE GIS SDK接入Openlayers3之五——图形编辑工具 [学习笔记之Openlayers3]要素保存篇(第四篇) openlayers实 ...
- Objc的底层并发API(转)
本文由webfrogs译自objc.io,原文作者Daniel Eggert. 小引 本篇英文原文所发布的站点objc.io是一个专门为iOS和OS X开发者提供的深入讨论技术的平台,文章含金量很 ...
- [Algorithm] JavaScript Graph Data Structure
A graph is a data structure comprised of a set of nodes, also known as vertices, and a set of edges. ...
- iOS 推送 获取手机设备的 deviceToken
第一步:申请证书: 第二步:申请app ids,应用名字必须一致.然后再进入进行编辑.使其enable,绿灯. 第三步:申请provisioning profile,生成.mobileprovisio ...
- OI知识体系
- hdu4455 dp
pid=4455">http://acm.hdu.edu.cn/showproblem.php?pid=4455 Substrings Time Limit: 10000/5000 M ...
- caffe配置Makefile.config----ubuntu16.04--重点是matlab的编译
来源: http://blog.csdn.net/daaikuaichuan/article/details/61414219 配置Makefile.config(参考:http://blog.csd ...
- 阿里云 访问控制RAM
https://help.aliyun.com/product/28625.html 为用户分配最小权限 别名主要用于 RAM 用户登录以及成功登录后的显示名. 强烈建议您给主账号绑定多因素认证. 设 ...
- iOS_高效开发之道
iOS_高效开发之道 话不多说, 总结一下个人感觉有利于提高iOS开发效率的几个小技巧. 本文将从下面几方面介绍: Xcode经常使用快捷键 Xcode调试技巧 Objc经常使用代码片段 Xcode插 ...