session随笔
·由于cookie中不能保存很多信息,于是Session出现来完成这个功能。
·Session的作用就是在服务器保存一些保存一些用户的数据,然后传递给用户一个名字为JSESSIONID的Cookie,这个JESSIONID对应这个服务器中的一个Session对象,通过它就可以获取到保存用户信息的Session。
Session的创建
·Session的创建时机是在request.getSession()方法第一次被调用时。
Session被创建后,同时还会有一个名为JSESSIONID的Cookie被创建。
这个Cookie的默认时效就是当前会话。
Session的使用
·Session被创建后,对应的Cookie被保存到浏览器中,之后浏览器每次访问项目时都会携带该Cookie。
当我们再次调用时会根据该JSESSIONID获取已经存在的Cookie,而不是在创建一个新的Cookie。
如果Cookie中有JSESSIONID,但是JSESSIONID没有对应的Session存在,则会重新创建一个HttpSession对象,并重新设置JSESSIONID。
Session的时效(即存在时间)
·Session对象在服务器端不能长期保存,它是有时间限制的,超过一定时间没有被访问过的Session对象就应该释放掉,以节约内存。所以Session的有效时间并不是从创建对象开始计时,到指定时间后释放——而是从最后一次被访问开始计时,统计其“空闲”的时间。
在全局web.xml中能够找到如下配置:
<session-config>
<session-timeout>30</session-timeout>
</session-config>
( “30”表示30分钟;)
也可以手动设置:
session.setMaxInactiveInterval(int seconds)
Session对象的释放
·1 Session对象空闲时间达到了目标设置的最大值,自动释放
2 Session对象被强制失效( session.invalidate() )
3 Web应用卸载
4 服务器进程停止
Session的活化和钝化
`Session钝化:Session在一段时间内没有被使用时,会将当前存在的Session对象序列化到磁盘上,而不再占用内存空间。
Session活化:Session被钝化后,服务器再次调用Session对象时,将Session对象由磁盘中加载到内存中使用。
在Tomcat的配置文件conf/context.xml文件的根标签中加入如下代码
<Manager className="org.apache.catalina.session.PersistentManager" maxIdleSwap="1">
<StoreclassName="org.apache.catalina.session.FileStore"directory="mySession" />
</Manager>
maxIdleSwap属性:指的Session闲置时间,当闲置一定时间以后,会自动钝化到硬盘中。(里面是秒)
directory属性:Session钝化后的目标文件夹。
session随笔的更多相关文章
- 关于HTTP session随笔
1).访问*.html的静态资源因为不会被编译为Servlet,也就不涉及session的问题. 2).当JSP页面没有显式禁止session的时候,在打开浏览器第一次请求该jsp的时候,服务器会自动 ...
- Session Cookies随笔
1.对于Session而言 它是用来保存在服务端的信息,可以用来做登录验证,在后台保存有用信息. 一个浏览器访问一个网站,就是建立一个连接,连接信息是独立的,就是在该建立的连接内,保存到Session ...
- [Web][学习随笔]Session&cookie
Session 从登录建立连接到退出就是一次会话.Session数据就会在会话期间用户存在服务器端的数据.这样,当用户在Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会 ...
- Cookie和Session的总结
1.开篇 在之前学习这一段的时候我一直有点没弄清楚,其实对Session这块的理解还可以,但是Cookie感觉始终还是欠缺点火候.之后的很长一段时间都基本上很少用Cookie了,渐渐的也淡忘了这一块的 ...
- 理解Session的几种模式
一.写在前面 我们在使用ASP.NET开发的过程中,有时会进行数据存储以实现请求前后的状态保持(HTTP是无状态保持的协议),而Session作为一种快速简单易于实现的方式被我们经常使用,当然如果出于 ...
- 会话—session
这篇随笔是上一篇的姊妹篇@_@! session 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下) ...
- HTML5随笔
1 首先介绍一下html5,以及为什么用html5, HTML5是HTML最新的修订版本,2014年10月由万维网联盟(W3C)完成标准制定. HTML5的设计目的是为了在移动设备上支持多媒体.HTM ...
- MyBitis(iBitis)系列随笔之五:多表(一对多关联查询)
MyBitis(iBitis)系列随笔之一:MyBitis入门实例 MyBitis(iBitis)系列随笔之二:类型别名(typeAliases)与表-对象映射(ORM) MyBitis(iBitis ...
- MVC之Session State性能
ASP.NET MVC之Session State性能问题(七) 前言 这一节翻译一篇有关Session State性能问题的文章,非一字一句翻译. 话题 不知道我们在真实环境中是否用到了Sess ...
随机推荐
- 对抗生成网络-图像卷积-mnist数据生成(代码) 1.tf.layers.conv2d(卷积操作) 2.tf.layers.conv2d_transpose(反卷积操作) 3.tf.layers.batch_normalize(归一化操作) 4.tf.maximum(用于lrelu) 5.tf.train_variable(训练中所有参数) 6.np.random.uniform(生成正态数据
1. tf.layers.conv2d(input, filter, kernel_size, stride, padding) # 进行卷积操作 参数说明:input输入数据, filter特征图的 ...
- JAVA版本微信管家平台—JeeWx 捷微 4.1 微服务版本发布,微信砍价活动闪亮登场!
捷微 4.1 微服务版本发布,微信砍价活动闪亮登场 ^_^ JEEWX 从4.0版本开始,技术架构全新换代更名 “捷微H5”.这是一款开源免费的微信运营平台,是jeewx的新一代产品,平台涵盖了: ...
- Delphi 窗口操作
unit UnitWinUtils; interface uses Windows; Type TDWA128=Array [..] of LongWord; TDWA256=Array [..] o ...
- c++常见变量的极值
#include "numeric_limits.hpp"#include <limits>#include <iostream> //////////// ...
- 爬虫之Splash
Splash 是一个JavaScript渲染服务,是一个带有HTTP API 的轻量级浏览器,同时它对接了Python中Twisted和QT库. 1.功能介绍 1)异步方法处理多个网页渲染过程: 2) ...
- k8s Docker私有仓库认证
使用过K8s的小伙伴肯定会遇到一个问题,我们在使用自有的Docker仓库的时候都需要先登录用户名和密码,但是如果使用K8S怎么配置密码呢?在secret中有一个类型是docker-registry我们 ...
- 网页html格式导出Excel.xls
1.创建excel方法 /// <summary> /// 创建Excel表格 /// </summary> /// <param name="dt" ...
- python的django基础篇
一.Django基础 Django 是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站! Django的特点: 强大的数据库功能:拥有强大的数据库操作接口(QueryS ...
- springMVC设计模式和javaWeb三层框架
一.springMVC 设计模式 MVC模式是软件工程中的一种能够软件架构模式,把软件分为三个基本部分,模型(model).视图(view)和控制器(controller).使程序简化,更加直观. ...
- springmvc 跳转页面或者返回json
方法的返回使用ModelAndView,分别new两个modelAndView,返回json的 是ModelAndView mv = new ModelAndView(new MappingJacks ...