session知识总结
0.什么是会话?
- 简单理解:打开浏览器到关闭浏览器过程中的操作、请求。
1.Session是什么?
- session是HttpSession的简称;
- 用于保存会话状态;
- 将会话状态保存在服务器端;
- Tomcat实现HttpSession的完整类名及引用:org.apache.catalina.session.StandardSessionFacade@1524e17
2.Session是用户级别的对象。
- 在一次会话过程中,web服务器为用户维护着一个会话对象。
- 在web容器中,存储着一个session列表。
3.为什么当前会话中的每一次请求都可以拿到自己的会话对象?
- 服务器响应浏览器第一次请求的时候,会创建一个session对象,同事向浏览器发送一个Cookie;
- 浏览器再次发出请求的时候,当服务器接收到该Cookie,则判断为是同一次会话。
- Set-Cookie:"JSESSIONID=B6416390E900458658B696659B5CD92B; Path=/prj-session/; HttpOnly"
- Cookie的关联路径:Path=/prj-session/;
- 这个特殊的Cookie名字是JSESSIONID,value是一个32位长度的字符串;
- 当浏览器再次发送请求,将缓存中的Cookie发送到服务器,服务器端获取Cookie后进行验证;
- 当浏览器关闭之后,这个session对象将被销毁。
4.Cookie被禁用之后怎么办?
- 重写URL:URL;JSESSIONID=B6416390E900458658B696659B5CD92B
5.Seesion对象在什么时候被销毁?
- web服务器中引入session超时的概念;
- 当很长一段时间(这个时间可以设置)session不再被使用时,session将自动销毁
- 设置方法如下:
6.一次会话的含义:
- session对象的创建到session对象的销毁,是一次完整意义的会话。
7.HttpSession中常用的方法:
- Object getAttribute(String name)
- void removeAttribute(String name)
- void setAttribute(String name, Object value)
- void invalidate()
8.范围对象对比:
- ServletContext、HttpSession、HttpServletRequest接口
- ServletContext是应用级别对象;
- HttpSession是会话级别对象;
- HttpServletRequest是请求级别的对象;
- ServletContext在整个应用程序级别共享数据,HttpSession跨请求共享数据,HttpServletRequest
跨Servlet共享数据。
session知识总结的更多相关文章
- Django实现cookie&session以及认证系统
COOKIE&SESSION 知识储备 由于http协议无法保持状态,但实际情况,我们却又需要“保持状态”,因此cookie就是在这样一个场景下诞生. cookie的工作原理是:由服务器产生内 ...
- haproxy有关session的问题
在实验的时候遇到一个问题就是当我登录网站的时候,然后我再刷新一下,用户的状态就退出了 我现在的框架是这样的,前面有一台haproxy作为反向代理,后面有两台服务器跑的是java应用.后面两台服务器做的 ...
- cookie和session的介绍
1.cookie和session cookie不属于http协议范围,由于http协议无法保持状态,但实际情况,我们却又需要“保持状态”,因此产生cookie. cookie的工作原理是:由服务器产生 ...
- session的两个小案例
学完了session,写两个小案例加深一下对session的巩固. 1. 用户登陆案例 登陆html页面提交后,将参数带给处理登陆的servlet,该servlet将获得登陆的用户名和密码,并将这些信 ...
- Flask框架【七】—session组件详解
一.flask session简介 flask中session组件可分为内置的session组件还有第三方flask-session组件,内置的session组件缺点: 功能单一 session是保存 ...
- centos之Haproxy 负载均衡学习笔记
HAProxy的特点是:1.支持两种代理模式:TCP(四层)和HTTP(七层),支持虚拟主机:2.能够补充Nginx的一些缺点比如Session的保持,Cookie的引导等工作3.支持url检测后端的 ...
- PythonWEB框架之Tornado
前言 Tornado(龙卷风)和Django一样是Python中比较主流的web框架,Tornado 和现在的主流 Web 服务器框架也有着明显的区别:Tornado自带socket,并且实现了异步非 ...
- Haproxy的三种保持客户端会话保持方式
2017-03-25 15:41:41 haproxy 三种保持客户端Seesion; 一.源地址hash(用户IP识别) haroxy 将用户IP经过hash计算后 指定到固定的真实服务器上(类 ...
- haproxy 安装与配置
一. Haproxy 介绍 HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.根据官方数据,其最高极限支持10G的并发.HAP ...
随机推荐
- SqlServer转换为Mysql
昨天顺利把MySQL成功安装后,正准备着手把原来项目中的SQL SERVER数据库改为MYSQL数据库,可大量的表结构和表数据如要手动写,那就...... 接下来就是各种百度.谷歌.问先驱等,可得到的 ...
- Redis构建分布式锁
1.前言 为什么要构建锁呢?因为构建合适的锁可以在高并发下能够保持数据的一致性,即客户端在执行连贯的命令时上锁的数据不会被别的客户端的更改而发生错误.同时还能够保证命令执行的成功率. 看到这里你不禁要 ...
- Akamai在内容分发网络中的算法研究(翻译总结)
作者 | 钱坤 钱坤,腾讯后台开发工程师,从事领域为流媒体CDN相关,参与腾讯TVideo平台开发维护. 原文是<Algorithmic Nuggets in Content Delivery& ...
- ReentrantLock源码分析与理解
在上面一篇分析ThreadExecutedPool的文章中我们看到线程池实现源码中大量使用了ReentrantLock锁,那么ReentrantLock锁的优势是什么?它又是怎么实现的呢? Reent ...
- 转载linux c语言程序的Makefile编写
对于程序设计员来说,makefile是我们绕不过去的一个坎.可能对于习惯Visual C++的用户来说,是否会编写makefile无所谓.毕竟工具本身已经帮我们做好了全部的编译流程.但是在Linux上 ...
- ajax VS websocket
一. ajax VS websocket总结 http://blog.csdn.net/qiuhuanmin/article/details/50719114 二.用Websocket代替Ajax来开 ...
- poptest老李谈数据库优化总结
poptest老李谈数据库优化总结 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:9088 ...
- Linux之shell编程函数使用
linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.下面说说它的定义方法,以及调用需要注意那些事项. 原文和作者一起讨论:http://www.cnblogs.com/int ...
- IOS设备型号(原创)
以下是我收集的ios目前为止移动设备型号,ipad air不知道,本人没有这款设备,求指导的给个回复,在这谢谢了 ///** //////////////////// 设备类型 字符串 /// ...
- Springboot在IDEA中执行,开启热部署
仅适用IDEA中,eclipse中不需要设置 一.开启idea自动make功能 1 - Enable Automake from the compiler PRESS: CTRL + SHIFT + ...