HTTP会话的使用与管理

HTTP会话的使用与管理

一、会话简介

http是无状态协议,需要在http请求中添加一些额外的用于跟踪客户状态的数据来区分不同的用户。

会话机制是用来跟踪客户状态的普遍解决方案。会话是指在一段时间内单位客户与web应用的一连串相关的交互过程。

在购物网上,一个用户从开始购物到最后结账,整个过程为一个会话。

二、javax.servlet.http.HttpSession接口

会话开始,servlet创建一个HttpSession对象,该对象存放客户状态信息。每个HttpSession对象有一个唯一的标志符。SessionID

会话运作流程

三、生命周期与会话范围

注意区别一下三个范围:

web应用范围:共享数据作为ServletContext对象的属性而存在

请求范围:共享数据作为ServletRequest对象的属性存在

会话范围:浏览器端与一个web应用进行一次会话的过程,共享数据作为HttpSession对象的属性存在

HttpSession接口常见方法

getId():返回sessionID

invalidate():销毁当前的会话,Servlet容器会释放HttpSession对象占用的资源

setAttribute(String name,Object value):将一对name/value属性保存在httpSession对象中

getAttribute(String name):根据Name参数返回保存在HttpSession对象里面的属性值

getAttributeNames():以数组的方式返回HttpSession里面的所有的属性名

四、会话持久化

把内存中的HttpSession对象保存到文件系统或数据库中。

  好处:

    节约内存空间---把处于不活动状态的HttpSession对象转移到文件系统或数据库中,提高对内存资源的利用率。

    确保服务器在重启或单个web应用重启后,能恢复重启前的会话。

servelt对所有可以序列化的属性进行持久化,确保存放在会话范围内的共享数据不会丢失。----可序列化的属性是指属性所属的类实现了java.io.Seralizable接口。

原文地址:https://www.cnblogs.com/taoHongFei/p/8568189.html

时间: 2024-10-20 19:43:40

HTTP会话的使用与管理的相关文章

Java会话(session)管理

会话概述 什么是会话 简单的理解:用户打开浏览器,点击多个超链接,访问Web服务器上多个资源,然后关闭浏览器,整个过程称之为一次会话. 需要解决的问题 每个用户在使用浏览器与服务器会话的过程中,会产生一些用户数据,如用户登陆标记,WEB应用程序必须要为每个用户在一次或多次会话过程中保存这些数据. 两种技术 CookieCookie是客户端技术,WEB应用程序把每个用户数据以Cookie的形式发送给各自的的浏览器,当用户使用浏览器再次访问WEB应用时,就会带上这些Cookie,这样,WEB应用可以

基于hi-nginx的web开发(python篇)——cookie和会话管理

hi-nginx通过redis管理会话. 要开启管理,需要做三件事. 第一件开启userid: userid on; userid_name SESSIONID; userid_domain localhost; userid_path /; userid_expires 300s; 这个功能是nginx内建的,可以直接使用.需要注意的是,hi-nginx只认识SESSIONID的userid_name. 第二件是配置redis服务器: hi_redis_host 127.0.0.1; hi_r

Shiro 简介(认证、授权、加密、会话管理、与 Web 集成、缓存等)

https://www.w3cschool.cn/shiro/ Shiro 简介 简介 Apache Shiro 是 Java 的一个安全框架.目前,使用 Apache Shiro 的人越来越多,因为它相当简单,对比 Spring Security,可能没有 Spring Security 做的功能强大,但是在实际工作时可能并不需要那么复杂的东西,所以使用小而简单的 Shiro 就足够了.对于它俩到底哪个好,这个不必纠结,能更简单的解决项目问题就好了. 本教程只介绍基本的 Shiro 使用,不会

【分布式】Zookeeper会话

一.前言 前面分析了Zookeeper客户端的细节,接着继续学习Zookeeper中的一个非常重要的概念:会话. 二.会话 客户端与服务端之间任何交互操作都与会话息息相关,如临时节点的生命周期.客户端请求的顺序执行.Watcher通知机制等.Zookeeper的连接与会话就是客户端通过实例化Zookeeper对象来实现客户端与服务端创建并保持TCP连接的过程. 2.1 会话状态 在Zookeeper客户端与服务端成功完成连接创建后,就创建了一个会话,Zookeeper会话在整个运行期间的生命周期

Tomcat源码分析——Session管理分析(上)

前言 对于广大java开发者而已,对于J2EE规范中的Session应该并不陌生,我们可以使用Session管理用户的会话信息,最常见的就是拿Session用来存放用户登录.身份.权限及状态等信息.对于使用Tomcat作为Web容器的大部分开发人员而言,Tomcat是如何实现Session标记用户和管理Session信息的呢? 概要 Session Tomcat内部定义了Session和HttpSession这两个会话相关的接口,其类继承体系如图1所示. 图1 Session类继承体系 图1中额

Oracle 11G R2的内存管理

基本知识点 基本的内存结构:SGA+PGA+UGA+Software code area(软件代码区) 了解SGA内存的组件与一些常用的功能 了解oracle 11G地自动内存管理功能 具体介绍 oracle数据库实例是由一些列的系统全局区域与后台进程组成. 一个客户端访问数据库的方式是客户端进程---->Program global are----->Database buffer cache,同时在Redo log buffer重写一份 oracle 内存管理的方式:自动内存管理与手动内存

express 会话验证

之前不知道了,现在整理一下. 三个阶段: 1.cookie-session  实现会话 需要cookie-parse router.get('/restricted', function(req, res, next) { // 会话 req.session.restricted = true; if(!req.session.restrictedCount){ req.session.restrictedCount = 1; }else{ req.session.restrictedCount

Tomcat7.0源码分析——Session管理分析(上)

前言 对于广大java开发者而已,对于J2EE规范中的Session应该并不陌生,我们可以使用Session管理用户的会话信息,最常见的就是拿Session用来存放用户登录.身份.权限及状态等信息.对于使用Tomcat作为Web容器的大部分开发人员而言,Tomcat是如何实现Session标记用户和管理Session信息的呢? 概述 Session Tomcat内部定义了Session和HttpSession这两个会话相关的接口,其类继承体系如图1所示. 图1 Session类继承体系图1中额外

Shiro权限管理详解<转载>

1 权限管理1.1 什么是权限管理 基本上涉及到用户参与的系统都要进行权限管理,权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源. 权限管理包括用户身份认证和授权两部分,简称认证授权.对于需要访问控制的资源用户首先经过身份认证,认证通过后用户具有该资源的访问权限方可访问. 1.2 用户身份认证1.2.1 概念 身份认证,就是判断一个用户是否为合法用户的处理过程.最常用的简单身份认证方式是系统通过核对用户输入的用户名