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. SVG动画实践篇-无中生有的线条动画

    git: https://github.com/rainnaZR/svg-animations/tree/master/src/pages/step2/path 说明 这个动画实现的是线条动画,主要用 ...

  2. Openlayers3 编辑要素

    参考文章 Openlayers之编辑要素 MAPZONE GIS SDK接入Openlayers3之五——图形编辑工具 [学习笔记之Openlayers3]要素保存篇(第四篇) openlayers实 ...

  3. Objc的底层并发API(转)

    本文由webfrogs译自objc.io,原文作者Daniel Eggert.   小引 本篇英文原文所发布的站点objc.io是一个专门为iOS和OS X开发者提供的深入讨论技术的平台,文章含金量很 ...

  4. [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. ...

  5. iOS 推送 获取手机设备的 deviceToken

    第一步:申请证书: 第二步:申请app ids,应用名字必须一致.然后再进入进行编辑.使其enable,绿灯. 第三步:申请provisioning profile,生成.mobileprovisio ...

  6. OI知识体系

  7. hdu4455 dp

    pid=4455">http://acm.hdu.edu.cn/showproblem.php?pid=4455 Substrings Time Limit: 10000/5000 M ...

  8. caffe配置Makefile.config----ubuntu16.04--重点是matlab的编译

    来源: http://blog.csdn.net/daaikuaichuan/article/details/61414219 配置Makefile.config(参考:http://blog.csd ...

  9. 阿里云 访问控制RAM

    https://help.aliyun.com/product/28625.html 为用户分配最小权限 别名主要用于 RAM 用户登录以及成功登录后的显示名. 强烈建议您给主账号绑定多因素认证. 设 ...

  10. iOS_高效开发之道

    iOS_高效开发之道 话不多说, 总结一下个人感觉有利于提高iOS开发效率的几个小技巧. 本文将从下面几方面介绍: Xcode经常使用快捷键 Xcode调试技巧 Objc经常使用代码片段 Xcode插 ...