session对象

【Spring】1、Spring 中的监听器 Listener

二次信任 提交于 2020-01-25 00:01:19
一、接口 1、EventListener 2、HttpSessionAttributeListener 继承EventListener接口 HttpSessionAttributeListener是“属性改变监听器”,当在会话对象中加入属性、移除属性或替换属性时,相对应的attributeAdded()、attributeRemoved()与 attributeReplaced()方法就会被调用,并分别传入HttpSessionBindingEvent。 package javax.servlet.http; import java.util.EventListener; public interface HttpSessionAttributeListener extends EventListener { public void attributeAdded ( HttpSessionBindingEvent se ); public void attributeRemoved ( HttpSessionBindingEvent se ); public void attributeReplaced ( HttpSessionBindingEvent se ); } 如果希望容器在部署应用程序时

session和cookie

时光毁灭记忆、已成空白 提交于 2020-01-24 15:18:18
通常情况下,当我们关闭浏览器再重新打开后,我们就需要再次进行登陆(如果没有进行下次自动登录之类的设置)。在Jav中(Session是通用的,这里以Java为例)有一种叫做Session机制(会话机制)来记录用户的登录信息。浏览器关闭之后,Session会被清除吗?Session是一种服务器端的对象,保存在服务器中。 每个Session 有一个唯一的Session id。 Session的超时也是由服务器来控制。我们一般都会把Session和Cookie放在一起来说。Cookie分为内存中Cookie(也可以说是进程中Cookie)和硬盘中Cookie。大部分的Session机制都使用进程中Cookie来保存Session id的,关闭浏览器后这个进程也就自动消失了,进程中的Cookie自然就消失了,那么Session id也跟着消失了,再次连接到服务器时也就无法找到原来的Session了。其实服务器是不会知道浏览器关闭了没有(当然,你可以在关闭的时候去通知服务器,但一般都不会这样做),所以关闭浏览器时服务器是不会删除Session的,也正是这个原因服务器才会设置一个Session失效时间的,不然服务器早晚会被撑爆的。等距离上一次使用该Session的时间达到设置的失效时间时,服务器就会认为客户端已停止活动,便会将相应的Session删除。当然,我们可以在登陆时点击下次自动登录

编写一篇博文介绍COOKIE和Session的原理及异同

余生长醉 提交于 2020-01-24 15:05:50
Cookie Cookie 是在 HTTP 协议下,服务器或脚本可以维护客户工作站上信息的一种方式。Cookie 是由 Web 服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web 站点都可以访问 Cookie 信息 。 目前有些 Cookie 是临时的,有些则是持续的。临时的 Cookie 只在浏览器上保存一段规定的时间,一旦超过规定的时间,该 Cookie 就会被系统清除 。 持续的 Cookie 则保存在用户的 Cookie 文件中,下一次用户返回时,仍然可以对它进行调用。在 Cookie 文件中保存 Cookie,有些用户担心 Cookie 中的用户信息被一些别有用心的人窃取,而造成一定的损害。其实,网站以外的用户无法跨过网站来获得 Cookie 信息。如果因为这种担心而屏蔽 Cookie,肯定会因此拒绝访问许多站点页面。因为,当今有许多 Web 站点开发人员使用 Cookie 技术,例如 Session 对象的使用就离不开 Cookie 的支持 Session Session直接翻译成中文比较困难,一般都译成时域。在计算机专业术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。以及如果需要的话,可能还有一定的操作空间。 需要注意的是

Http协议无状态的理解

ぐ巨炮叔叔 提交于 2020-01-24 15:03:25
Http是一个无状态协议,同一个会话的连续两个请求互相不了解,他们由最新实例化的环境进行解析,除了应用本身可能已经存储在全局对象中的所有信息外,该环境不保存与会话有关的任何信息。 自己的理解,在asp.net里:每次提交服务器的页面没有任何关系,每次记录在页面的信息下次提交是记不住的,(除了应用本身可能已经存储在全局对象中的所有信息外)在.net里实际就是ViewState,ViewState是asp.net中保存页面信息的基本单位,应用时就是保存在控件隐藏域等中的数据 协议的状态是指下一次传输可以“记住”这次传输信息的能力. http是不会为了下一次连接而维护这次连接所传输的信息的. 无状态是指,当浏览器发送请求给服务器的时候,服务器响应,但是同一个浏览器再发送请求给服务器的时候,他会响应,但是他不知道你就是刚才那个浏览器,简单地说,就是服务器不会去记得你,所以是无状态协议。 而DNS是有状态协议 。 HTTP是一个属于应用层的面向对象的协议,HTTP协议一共有五大特点,1、支持客户/服务器模式;2、简单快速;3、灵活;4、无连接;5、无状态;“无状态”是HTTP协议的主要特点之一,以下为“无状态”的解释。 无状态:是指 协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面

session和cookie有什么区别?

孤人 提交于 2020-01-24 15:00:25
session: sessionid是一个会话的key,浏览器第一次访问服务器会在服务器端生成一个session,有一个sessionid和它对应。 存储在服务器的内存中,tomcat的StandardManager类将session存储在内存中,也可以持久化到file,数据库,memcache,redis等。客户端只保存sessionid到cookie中,而不会保存session,session销毁只能通过invalidate或超时,关掉浏览器并不会关闭session) 那么Session在何时创建呢?当然还是在服务器端程序运行的过程中创建的,不同语言实现的应用程序有不同创建Session的方法,而在Java中是通过调用HttpServletRequest的getSession方法(使用true作为参数)创建的。在创建了Session的同时,服务器会为该Session生成唯一的Session id,而这个Session id在随后的请求中会被用来重新获得已经创建的Session;在Session被创建之后,就可以调用Session相关的方法往Session中增加内容了,而这些内容只会保存在服务器中, 发到客户端的只有Session id ;当客户端再次发送请求的时候,会将这个Session id带上,服务器接受到请求之后就会依据Session id找到相应的Session

练习:Cookie和Session相关

∥☆過路亽.° 提交于 2020-01-24 14:51:22
文章目录 一、简答题 (1)什么是状态管理 (2)简述什么是Cookie (3)简述Session的工作原理。 (4)简述什么是Session超时,如何修改缺省的时间限制? 二、选择题 三、代码阅读题 (1)阅读代码,说明序号处代码的含义 四、编码题 (1)使用Cookie (2)Session编码题 一、简答题 (1)什么是状态管理 状态管理是 将浏览器和服务器之间的多次交互当做一个整体 ,并将多次交互之间涉及的数据保存下来,提供给后续的交互进行数据的管理。 (2)简述什么是Cookie Cookie是一种客户端会话技术,将数据保存在客户端。 (3)简述Session的工作原理。 ① Session是依赖Cookie的 ,而Cookie是由请求头和相应头来实现的。② 创建Session对象,并用SessionID标注 :第一次获得Session时,会在内存中创建一个新的Session对象,并标注ID,存入Cookie中,并发送给浏览器。③ 通过SessionID匹配 ,下一次请求时,通过Cookie请求头中的SessionID与服务器中的对象匹配。 (4)简述什么是Session超时,如何修改缺省的时间限制? web服务器会将空闲时间过长的Session对象删除掉 ,以节省服务器内存空间资源。超时时间限制一般是30分钟。 修改Session的缺省时间限制,有两种方式:①通过

2018年5月13日笔记

余生长醉 提交于 2020-01-24 04:55:57
SQL语句复习 创建一个库 create database DB_name; 授权一个用户 grant all privileges on *.* to 'user1'@'%' identified by 'qwe123'; 创建表 create table table_name(column_name type not null); 查询 select * from tabel_name where condition1 and condition2; 增加 insert into table_name (id, name, age, sex, grander) values (1, 'ling', 25, 'M', 99), (2, 'ajing', 45, 'F', 88); 改 update table_name set column_name=xx where condition 删除 delete from table_name where condition drop table table_name 联合查询 select a.id, b.name from A a join B b on a.id=b.tid 创建索引 create index idx_库名_表名_列名1_列名2 (列名1, 列名2) 查看sql是否走索引 explain select *

[网络收集]利用Session对象实现购物车

戏子无情 提交于 2020-01-24 00:26:27
来自森大科技官方博客 http://www.cnsendblog.com/index.php/?p=338 GPS平台、网站建设、软件开发、系统运维,找森大网络科技! http://cnsendnet.taobao.com //shopcart.aspx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.SqlClient; using System.Text.RegularExpressions; public partial class shopCart : System.Web.UI.Page { CommonClass ccObj = new CommonClass(); DBClass dbObj = new DBClass(); string strSql;

sgg_4_session

最后都变了- 提交于 2020-01-23 01:54:37
一、session接口   Session接口是Hibernate向应用程序提供的操纵数据库的最主要的接口,它提供了基本的保存,观念更新,删除和加载Java对象的方法。   Session具有一个缓存,位于缓存中的对象称为持久化对象,它和数据库中的相关记录对应,Session能够在某些时间点,按照缓存中对象的变化来执行相关的SQL语句,来同步更新数据库,这一过程被称为刷新缓存(flush) 站在持久化的角度,Hibernate把对象分为4中状态:持久化状态,临时状态,游离状态,删除状态,Session的特定方法能使对象从一个状态转换到另一个状态。   Session被称为Hibernate的一级缓存。   在Session接口的实现中包含一系列的Java集合,这些Java集合构成了Session缓存,只要Session实现没有结束生命周期,且没有清理缓存,则存放在它中的对象也不会结束生命周期。   Session缓存可减少Hibernate应用程序访问数据库的频率,这也是提高程序查询效率的主要方式。 二、session测试环境搭建   2.1新建java项目导入所需jar包   2.2编写持久化类 package edu.aeon.hibernate.bean; /** * [说明]:学生实体类 * @author aeon(qq:1584875179) */ import

Session(数据)共享的前后端分离Shiro实战

半腔热情 提交于 2020-01-22 19:04:29
1,前言 本文期望描述如何使用Shiro构建基本的安全登录和权限验证。本文实战场景有如下特殊需求:1,在集群和分布式环境实现session共享;2,前端只使用HTML/CSS/JS。因此无法直接使用Shiro提供的SessionManager,以及Shiro针对web应用提供的Filter拦截方式。当然,除非是一定要通过共享缓存的方式共享session,否则还是使用Shiro默认的session管理,毕竟增加独立缓存就意味着维护成本的提高和可用性的下降。 2, Shiro架构 首先一睹官方给出的Shiro架构图,如图1所示。刨除最右侧的加密工具类,主要围绕SercurityManager来阐述。SercurityManager是Shiro安全框架里的顶层安全管理中心,所有安全控制相关逻辑都是在SercurityManager里面通过delegate的方式,调用到真正的动作执行者。从图1可以清楚看到主要管理的组件:authentication管理,authorization管理,session管理,session缓存管理,cache管理,realms管理。(本文不想重复已有的文字,想要更好的了解Shiro,详见官方推荐的Shiro full intro: https://www.infoq.com/articles/apache-shiro ) 1