关于session的一点认识~

1.什么是Session

Session是服务器端的缓存技术,它是基于内存的,可以用来保存针对每个用户的相关数据。

换句话说:程序员可以通过session,把以后还会用到的数据放到服务器内存中。

这些数据可以按照不同的用户来分类,用户A和用户B的数据会放在不同的session对象中。

2.Session的生命周期

session由服务器创建,当后端程序调用getSession(true)的时候,session才可能会被创建(当请求中携带有JSessionId时,不会创建)。

当然,如果程序从头到尾都没有调用这句话,那么session就不会被创建。

比如:当用户访问web项目根目录下的一个静态html页面的时候(与web-info同级的页面),服务器是不会为用户创建session的。

这里面有两个问题需要说明一下:

一.getSession()、getSession(true)和getSession(false)的区别

getSession()和getSession(true)是一样的,意思是:若当前会话在服务器中没有对应session的时候,则为当前会话创建一个session,并返回新建的session对象的引用。

getSession(false)则不是这样:若当前会话在服务器中没有对应session,则返回null,并不会创建session对象。

直接上图:

二.当我们访问jsp页面的时候。

3.服务器如何区分不同用户的session

4.Session的操作

时间: 2024-10-09 09:26:26

关于session的一点认识~的相关文章

nginx 负载均衡、用数据库存储Session,来实现多站点共享Session[转]

多站点共享Session常见的作法有: 1.使用.net自动的状态服务(Asp.net State Service); 2.使用.net的Session数据库: 3.使用Memcached. 4.使用Cookie方式实现多个站点间的共享(这种方式只限于几个站点都在同一域名的情况下): 这里我们就 演练一下 以数据库的形来存储Session,来实现多站点共享Session. 首先我们 建好一下站点,如下图: Default.aspx 其中 有二个Button  ,SetSession 主要是用于给

转-Android客户端和服务端如何使用Token和Session

http://www.software8.co/wzjs/yidongkaifa/6407.html 对于初学者来说,对Token和Session的使用难免会限于困境,开发过程中知道有这个东西,但却不知道为什么要用他?更不知道其原理,今天我就带大家一起分析分析这东西.    一.我们先解释一下他的含义:    1.Token的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而

Hibernate面试问题集锦: 概述

ImportNew注: 本文是ImportNew编译整理的Java面试题系列文章之一.你可以从这里查看全部的Java面试系列. Q.怎么配置Hibernate? A.Configuration类使用配置hibernate.cfg.xml(或者hibernate.properties)以及映射文件*.hbm.xml来创建(例如,配置和引导hibernate)SessionFactory,然后SessionFactory创建Session的实例.Session的实例是持久层服务对外提供的主要接口.

【hibernate】Hibernate面试问题集锦: 概述

Q.怎么配置Hibernate? A.Configuration类使用配置hibernate.cfg.xml(或者hibernate.properties)以及映射文件*.hbm.xml来创建(例如,配置和引导hibernate)SessionFactory,然后SessionFactory创建Session的实例.Session的实例是持久层服务对外提供的主要接口. hibernate.cfg.xml(或者你也可以使用hibernate.properties):这两个文件都是用来配置hiber

HTTP问题整理

https://www.cnblogs.com/haonanZhang/p/6362233.html https://www.cnblogs.com/cbslock/p/10139160.html https://www.cnblogs.com/yoyoketang/p/10137927.html 一.一个页面从输入url到加载完成,中间经历了什么. 1.首先,在浏览器地址栏中输入url.解析url地址是否合法 2.浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页

mybatis使用的一点小结:session运行模式及批量提交(转)

mybatis的执行器有三种类型: ExecutorType.SIMPLE 这个类型不做特殊的事情,它只为每个语句创建一个PreparedStatement. ExecutorType.REUSE 这种类型将重复使用PreparedStatements. ExecutorType.BATCH 这个类型批量更新,且必要地区别开其中的select 语句,确保动作易于理解. 可以在配置sqlSession时指定相应的类型: [html] view plain copy <bean id="fsa

(apache+tomcat集群+memcached番外篇)单台tomcat的session信息的2种持久化方式

为什么要实现搭建tomcat集群环境呢?主要因为单个tomcat无论从吞吐量和并发数上,会达到一定的极限.如果访问量超过单个tomcat的承受能力的话,tomcat一般要么拒绝提供服务,要么直接宕掉.所以,必须要依靠tomcat集群技术.举个最简单的例子,拿"送快件"比喻,如果一个人,5分钟送一件,一小时之内,送10个,一个人完全能胜任这项工作.假设现在到了双十一,要求1小时,送100个, 那怎么办?只能安排更多的人加入"送快件"这项工作中来.这其实和集群一个道理.

web集群中常用的session同步解决方案及对比

随着网站的功能越来越多,用户量越来越庞大,单节点模式已经严重不能支撑整个系统的正常运作,轻则用户页面访问时间越来越慢,重则就会导致整个系统瘫痪.这时候 就需要优化或调整目前的架构,大部分人就会采用各种负载均衡软件例如nginx.hproxy.LVS等,也有的采用分布式的方式把系统根据功能拆分成很多系统,也有的根据地域 和网络不同来实现访问不同节点部署的系统,也有的大型高流量.高负载的系统把负载均衡.分布式及根据地域.网络等这些方式都整合在一起来实现系统的正常运行. 采用负载均衡软件是目前大家采取

Tomcat集群环境下session共享方案梳理(1)-通过memcached(MSM)方法实现

对于web应用集群的技术实现而言,最大的难点就是:如何能在集群中的多个节点之间保持数据的一致性,会话(Session)信息是这些数据中最重要的一块.要实现这一点, 大体上有两种方式: 一种是把所有Session数据放到一台服务器上或者数据库中,集群中的所有节点通过访问这台Session服务器来获取数据: 另一种就是在集群中的所有节点间进行Session数据的同步拷贝,任何一个节点均保存了所有的Session数据. Tomcat集群session同步方案有以下几种方式: 1)使用tomcat自带的