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)的更多相关文章

  1. session机制,浏览器禁用cookie后,怎么使用session

    sessionid是存储在cookie中的,解决方案如下: Session URL重写,保证在客户端禁用或不支持COOKIE时,仍然可以使用Session session机制.session机制是一种 ...

  2. Session机制(是对cookie的作用的提升,使用较多)

    1.Session作用类似于购物车,第一次,放入物品,可以获得Session的id,并可以设置id失效的时间,这样便于多次将物品放在购物车里面,使用的就是获取的Session的id: 2.Sessio ...

  3. 理解Cookie和Session机制(转)

    目录[-] Cookie机制 什么是Cookie 记录用户访问次数 Cookie的不可跨域名性 Unicode编码:保存中文 BASE64编码:保存二进制图片 设置Cookie的所有属性 Cookie ...

  4. 理解Cookie和Session机制

    转载: 理解Cookie和Session机制 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录 ...

  5. cookie,Session机制的本质,跨应用程序的session共享

    目录:一.术语session二.HTTP协议与状态保持三.理解cookie机制四.理解session机制五.理解javax.servlet.http.HttpSession六.HttpSession常 ...

  6. 深入理解Cookie和Session机制

    转载理解Cookie和Session机制 目录 Cookie机制什么是CookieCookie的不可跨域名性Unicode编码:保存中文BASE64编码:保存二进制图片设置Cookie的所有属性Coo ...

  7. C#基础知识之理解Cookie和Session机制

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...

  8. cookie机制、session机制

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...

  9. 转:理解Cookie和Session机制

    原文: 理解Cookie和Session机制 摘要: Cookie工作原理 由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份.怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论 ...

随机推荐

  1. Android:MVC模式(下)

    在上一篇文章中,我们将 View 类单独出来并完成了设计和编写.这次我们将完成 Model 类,并通过 Controller 将两者连接起来,完成这个计算器程序. 模型(Model)就是程序中封装了数 ...

  2. tensorflow搭建神经网络基本流程

    定义添加神经层的函数 1.训练的数据2.定义节点准备接收数据3.定义神经层:隐藏层和预测层4.定义 loss 表达式5.选择 optimizer 使 loss 达到最小 然后对所有变量进行初始化,通过 ...

  3. OpenGL - Tessellation Shader 【转】

    http://blog.sina.com.cn/s/blog_8c7d49f20102v4qm.html Patch is just an ordered list of vertices (在tes ...

  4. 使用c#訪问Access数据库时,提示找不到可安装的 ISAM

    使用c#訪问Access数据库时,提示找不到可安装的 ISAM.例如以下图: 代码例如以下: connectionString = "Provider=Microsoft.Jet.OLEDB ...

  5. Spin.js-CSS动画进度载入器

    spin.js是一款很easy的CSS载入器,他是一款使用了VML(Vector Makeup Language)的CSS动画效果. spin.js的特性 他有着很强大的适应性.有着下面几个特性: 1 ...

  6. Android 大众点评的接入

    这里介绍的是大众点评的团购中的一个接口.就是全部团购信息,其它的接口的实现是大同小异的. 首先,登录大众点评的开发平台->大众点评 . 然后获取到自己的应用的appkey和secret.这个是 ...

  7. sql quer

    SELECT (SELECT COUNT (sysid) FROM FwInvConsumable WHERE parentref = g.sysid AND (ns.state = 'Invento ...

  8. kubernetes高级之创建只读文件系统以及只读asp.net core容器

    系列目录 使用docker创建只读文件系统 容器化部署对应用的运维带来了极大的方便,同时也带来一些新的安全问题需要考虑.比如黑客入侵到容器内,对容器内的系统级别或者应用级别文件进行修改,会造成难以估量 ...

  9. java arraylist源码记录

    1. ArrayList 实现了RandomAccess接口, RandomAccess接口用于标记是否可以随机访问 2. 继承了AbstractList类, 因此获取了modcount , modc ...

  10. React_Redux_Router

    一.react_redux 比较好的blog: blog1, blog2, blog3 主要根据前两个blog总结如下: 1. React在组件内部(包括子组件)为单向数据流且自上向下通过props传 ...