简述Session
Session的原理
1.session技术的概述
* session是服务器端技术
* 服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象
* 由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中
* 当用户再去访问服务器中的其它web资源时,其它web资源再从用户各自的session中取出数据为用户服务
* session也是基于cookie技术的,传递是session的id值
Session对象的API
1.session对象的方法
* void setAttribute(String name, Object value)
* Object getAttribute(String name)
* void removeAttribute(String name)
* String getId() -- session的空间有唯一的id值,获取该id值的。
* void invalidate() -- 销毁session对象
* ServletContext getServletContext() -- 获取ServletContext域对象
2.使用request对象来获取到session的对象
* request.getSession() -- 返回HttpSession对象,第一次调用,为你创建session对象(空间)
Session的创建和销毁
1.session对象的创建
* 针对是每个用户的浏览器,为每一个浏览器都创建一个独享的session的对象。
* request.getSession() -- 该方法可以创建session的对象,但是也可以来获取到session对象
* 根据cookie对象中是否有jsessionid的cookie,如果有,通过id值查找,找到了不用创建了,返回。如果没有找到,创建一个新的session对象。
2.session对象的销毁
* 关闭服务器销毁session
* 非正常的原因关闭服务器,销毁session
* 如果正常关闭服务器,session会被序列化到磁盘上。
* 配置session的默认销毁时间,默认值是30分钟
* 在tomcat/conf/web.xml文件中设置了session默认超时时间
<session-config>
<session-timeout>30</session-timeout>
</session-config>
* 设置session最大的存活的时间
* void setMaxInactiveInterval(int interval)
* 直接使用方法,销毁session
* invalidate();
Session域对象
1.session的域对象
* 作用:用来传递数据
* 区别:每个域对象的存活时间不同!!
2.方法
* void setAttribute(String name, Object value)
* Object getAttribute(String name)
* void removeAttribute(String name)
3.域对象(3个域对象最重要的)
* request -- 真是对象HttpServletRequest
* 代表的是一次请求的范围
* 在服务器端给客户度传递一些提示的信息和查询的数据
* session -- 真实对象HttpSession
* 代表的是一次会话的范围(可以发送多次请求和得到多次响应)
* 保存的都是和每个用户相关的数据(登录后需要把用户的信息,购买商品需要保存起来)
* application -- 真实对象ServletContext
* 代表的是一个WEB应用
* 保存全局共享的数据
简述Session的更多相关文章
- 简述Session 、Cookie、cache 区别
区别: 1.session是把数据保存在服务器上,每一个用户都有自己的session. 2.cookie是保存在客户端(也就是本机电脑). 3.cache是保存在服务器上,每个用户都可以访问的对象. ...
- cookie和session笔记
1.http协议是无连接的,即每一次http请求都是新的,和上一次没有联系,这不利于和用户的交互.针对这一缺点产生了cookie. 2.cookie是一段保存在客户端上的验证信息,同一个域使用同一个c ...
- Java面试必备知识2
1 .三个Statment区别,用法 Statement,基本的:PreparedStatement是可编译的,提高效率,callablestatement,存储过程 2 .Cookie 答:临时co ...
- Webfrom基础知识
MyBeNASP.NET内置对象 (1)简述ASP.NET内置对象. 答:ASP.NET提供了内置对象有Page.Request.Response.Application.Session.Server ...
- PHP 常识
PHP常识 1.谈谈你对MVC的认识,介绍几种目前比较流行的框架 由Model(M),View(V),Cntroller(C) 组成的一种设计模式,Model 主要处理一些业务处理类,View是页面显 ...
- django入门基础
首先要说的是django与其他的框架不同,django是一个封装的及其完善的框架,我们使用django也不会像之前写学生系统那样,django操作数据库使用自带的ORM来进行操作,Torando与Fl ...
- php面试题,百度答案
一公司: 1.@当将其放置在一个PHP表达式之前有什么作用? 2.用foreach把$arr=array(1,2,3,4)每个values值乘2输出: 3.PHP定界符如何使用? 4.说出mysql_ ...
- SSH面试题目
一简答 spring工作原理 为什么要用spring 3.请你谈谈SSH整合 4.介绍一下Spring的事务管理 5.Struct2基本流程 6.在Hibernate应用中Java对象的状态有哪些? ...
- .NET面试题(三)
第1讲:面试前期准备 1.了解相关技术职务需要的技术人才 2.准备一份出色的个人简历 第2讲:面试前期准备 ...
随机推荐
- Java和eclipse常用操作
eclipse: ctrl+F10 显示行号 ctrl+shift+F 自动对齐 ctrl+/ 注释 java: jar包: Manifest-Version - 指定清单文件的版本号 Main-Cl ...
- Hadoop原理介绍
Hadoop核心之HDFS 架构设计 老嗨 2015-09-18 16:55:00 浏览225 评论0 摘要: 概述:HDFS即Hadoop Distributed File System分布式文 ...
- 通过本地IIS服务器+路由器==实现本地局域网WIFI覆盖
这是一张手机连接wifi局域网下载视频的图片,速度可以达到10M/S左右,下面让我们来看一下,本地服务器是如何建立的. 1.启动本地IIS服务 步骤如下 一.电脑右键-属性-控制面板-程序和功能-打开 ...
- setTimeout用于取消多次执行mouseover或者mouseenter事件,间接实现hover的悬停加载的效果.
Mouseenter在鼠标滑上去不会对其子元素也发生监听, Mouseover在鼠标滑上去会对其子元素发生监听. 所以对于事件的监听,我们要看需求,这里是对父元素的监听,不需要对子元素做监听.就用mo ...
- SQL Server 2005 处理交叉表
假设有一个表如下: 日期 时间 售货金额 2006-01-02 早上 50 2006-01-02 中午 20 2006-01-02 晚上 30 2006-01-02 零晨 40 2006-01-03 ...
- Java记事本编译
配置环境: 在“系统变量”栏下执行三项操作:①新建“Java_Home”,设置其值为 JDK所在的绝对路径,如果你的事刚才的默认路径,那值为:C:\Program Files\Java\jdk1.7. ...
- java异步式Socket响应数据获取方案
项目中存在 云中央控制器需要使用多个Socket连接多个云终端控制器的需求. 由于终端数量大,就对整个中央控制器提出了并发的要求,然而获取Socket响应的过程是一个持续阻塞的过程,存在性能风险.而常 ...
- BZOJ3669 (动态树)
Problem 魔法森林 (NOI2014) 题目大意 给n个点,m条边的无向图,每条边有两个权值a,b. 求一条从1-->n的路径,使得这条路径上max(a)+max(b)最小.输出最小值即可 ...
- Excel中如何过滤复选框 How to filter checkbox column in Excel
有个笨笨的小伙伴最近老跟Excel过不去. 她新加了一列checkbox,还想filter别人有没有选.写代码又不会,怎么办. 1. 首先,加这个checkbox 2. 然后新建一列,把这个check ...
- Amd64 and Va_arg
Made of Bugs Blog Archives Author Amd64 and Va_arg OCT 3RD, 2010 A while back, I was poking around L ...