关于session的小结

session的原理

Session对象的原理在于,服务器可以为客户端创建并维护一个所谓的Session对象,用于存放数据。

在创建Session对象的同时,服务器将会为该Session对象产生一个唯一编号,这个编号称之为SessionID,服务器以Cookie的方式将SessionID存放在客户端。

当浏览器再次访问该服务器时,会将SessionID作为Cookie信息带到服务器,服务器可以通过该SessionID检索到以前的Session对象,并对其进行访问。

需要注意的是,此时的Cookie中仅仅保存了一个SessionID,而相对较多的会话数据保存在服务器端对应的Session对象中,由服务器来统一维护,

这样一定程度保证了会话数据安全性,但增加了服务器端的内存开销。

session对象的有效期

用户关闭当前正在使用的浏览器

关闭网页服务器

用户未向服务器提出请求超过预设的时间

运行程序结束 session。session. invalidate()

时间: 2024-12-17 15:18:08

关于session的小结的相关文章

详解PHP中cookie和session的区别及cookie和session用法小结

cookie 是通过扩展http协议实现的 cookie 主要包括 :名字,值,过期时间,路径和域:如果cookie不设置生命周期,则以浏览器关闭而关闭,这种cookie一般存储在内存而不是硬盘上.若设置了生命周期则相反,不随浏览器的关闭而消失,这些cookie仍然有效直到超过设定的过 期 时间.session 一种类似散列表的形式保存信息,当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求里是否已包含了一个session标识(称为session id),如果已

session知识点小结

Session: 1. 概念:服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象HttpSession中. 2. 快速入门: 1. 获取HttpSession对象: HttpSession session = request.getSession(); 2. 使用HttpSession对象: Object getAttribute(String name) void setAttribute(String name, Object value) void removeA

通过session实现增、删、查、改

测试项目:spring4_Struts2_Hibernate4 一.创建HibernateSessionFactory package com.chen.utils; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.boot.registry.StandardServiceRegistry

java-mybaits-00401-Mapper-输入输出

Mapper.xml映射文件中定义了操作数据库的sql,每个sql是一个statement,映射文件是mybatis的核心. 1.parameterType(输入类型) 1.1.#{}与${} #{} 实现的是向prepareStatement中的预处理语句中设置参数值,sql语句中#{}表示一个占位符即?. 使用占位符#{}可以有效防止sql注入 在使用时不需要关心参数值的类型,mybatis会自动进行java类型和jdbc类型的转换 可以接收简单类型值或pojo属性值,如果parameter

Hibernate中编程式事物的简单使用

一,openSessioin方式开启或者关闭事物 Session session = null; try { session = HibernateUtils.getSession(); session.beginTransaction();//开启事务 //TODO:各类CRUD操作 session.getTransaction().commit(); //提交事务 } catch (Exception e) { e.printStackTrace(); session.getTransact

mina 学习3-mina线程模型

Apache Mina 中关于线程模型的关键源代码: 在创建 NioSocketAcceptor acceptor = new NioSocketAcceptor(); 时刻, 创建一个SimpleIoProcessorPool 线程池,该线程池最小数量为1个, 默认数量为 /** The default pool size, when no size is provided. */ private static final int DEFAULT_SIZE = Runtime.getRunti

Flask ==> scoped_session

Flask  ==>   scoped_session from sqlalchemy.orm import sessionmaker from sqlalchemy import create_engine from sqlalchemy.orm import scoped_session engine = create_engine( "mysql+pymysql://root:[email protected]:3306/s6?charset=utf8", max_over

mybatis学习2

Mybatis解决jdbc编程的问题 1. 数据库连接创建.释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库连接池可解决此问题. 解决:在SqlMapConfig.xml中配置数据连接池,使用连接池管理数据库链接. 2. Sql语句写在代码中造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改变java代码. 解决:将Sql语句配置在XXXXmapper.xml文件中与java代码分离. 3. 向sql语句传参数麻烦,因为sql语句的where条件不一定,可能多也可能少,占位

会话跟踪技术--cookie和session 小结

学习过servlet的都知道,servlet是单例多线访问的,所以我们不能设置servlet成员变量来存放浏览器的访问数据.怎么解决浏览器的访问数据,让不同访问者能够访问到自己的数据呢? 相信学习完了cookie和session技术之后,读者会明白这个问题. 我们在浏览器上使用http协议在网络上传输数据的时候,服务器对于http的状态处理有两个方式,cookie和session. 笔者对于cookie设session的理解是这样的:当我们想要记录浏览器与服务器之间的交互的时候,通常的方法就是