Java Web开发Session超时设置
原文链接:http://zmx.iteye.com/blog/1846181
在Java Web开发中,Session为我们提供了很多方便,Session是由浏览器和服务器之间维护的。Session超时理解为:浏览器和服务器之间创建了一个Session,由于客户端长时间(休眠时间)没有与服务器交互,服务器将此Session销毁,客户端再一次与服务器交互时之前的Session就不存在了。
设置Session超时时间方式:
- 方式一:
在web.xml中设置session-config如下:
<session-config><session-timeout>2</session-timeout></session-config>
即客户端连续两次与服务器交互间隔时间最长为2分钟,2分钟后session.getAttribute()获取的值为空
API信息:
session.getCreationTime() 获取session的创建时间session.getLastAccessedTime() 获取上次与服务器交互时间session.getMaxInactiveInterval() 获取session最大的不活动的间隔时间,以秒为单位120秒。
方式二:
在Tomcat的/conf/web.xml中session-config,默认值为:30分钟
<session-config><session-timeout>30</session-timeout></session-config>
方式三:
在Servlet中设置
HttpSession session = request.getSession();session.setMaxInactiveInterval(60);//单位为秒
说明:
1.优先级:Servlet中API设置 > 程序/web.xml设置 > Tomcat/conf/web.xml设置
实际应用:
项目中,在web.xml中设置超时时间为30min。开发过程中,需要修改超时时间为20秒,比如为了测试超时。只需要在代码中加入下面这一句话就可以了,不需要时删掉即可:
@RequestMapping("login")public ModelAndView login(String account, String password, String checkcode, HttpSession session) {session.setMaxInactiveInterval(20);//设置20秒超时......//登录业务代码}
2.若访问服务器session超时(本次访问与上次访问时间间隔大于session最大的不活动的间隔时间)了,即上次会话结束,但服务器与客户端会产生一个新的会话,之前的session里的属性值全部丢失,产生新的sesssionId
3.客户端与服务器一次有效会话(session没有超时),每次访问sessionId相同,若代码中设置了session.setMaxInactiveInterval()值,那么这个session的最大不活动间隔时间将被修改,并被应用为新值。
4.Session的销毁(代表会话周期的结束):在某个请求周期内调用了Session.invalidate()方法,此请求周期结束后,session被销毁;或者是session超时后自动销毁;或者客户端关掉浏览器
5.对于JSP,如果指定了<%@ page session=”false”%>,则在JSP中无法直接访问内置的session变量,同时也不会主动创建session,因为此时JSP未自动执行request.getSession()操作获取session。
总结:
在程序开发过程中,我们可以在客户端每次与服务器交互时检查SessionID(Session中属性值,非HttpServlet环境开发中也可以用其它的Key值代替),用于会话管理。
Java Web开发Session超时设置相关推荐
- java session原理_java web开发—session的工作原理总结
session的工作原理总结 一.什么是session session是一次浏览器和服务器交互的会话,在jsp中,作为一个内置对象存在.我的理解,就是当用户打开网页时,程序会在浏览器中开辟一段空间来存 ...
- java sessionstate_在Java Web开发中自定义Session
Session在存储安全性要求较高的会话信息方面是必不可少的,对于分布式Web应用自定义Session支持独立的状态服务器或集群是必须的.本文就来教大家如何在Java Web开发中自定义Session ...
- Java Web开发API Boy如何进阶?
导语 | Java Web后台开发基本都离不开Spring生态这一套,Spring框架功能极其强大,会帮忙做许多工作,我们通常只需要在一个函数(包含request和response两个入参)中写处理逻 ...
- JAVA WEB开发实战-张晨光-专题视频课程
JAVA WEB开发实战-379人已学习 课程介绍 走进JSP.掌握JSP语法.JSP内置对象.Servlet技术.综合实验(一)--JSP使用Model2实现登录模块.EL表达式语言 ...
- java web开发学习总结
java web 开发基础内容理解 解决中文乱码问题 请求参数乱码 输出乱码 jsp的运行原理 GET请求和POST请求的区别 静态包含和动态包含 静态包含 动态包含 两者的区别 Cookie和Ses ...
- java web开发实战经典 源码_李兴华 java_web开发实战经典 源码 完整版收集共享
李兴华 java_web开发实战经典 源码 完整版收集共享 01f8a7 在 2018-11-07 20:41:33 上传 10.92 MB 第1章 JAVA WEB开发简介 1.1.WEB发 ...
- Java Web开发实战经典 李兴华版 读书笔记(一)
有的时候总感觉读书没有效率,或是记不住,或是不能专注.所以,把读的书都做一个笔记.贴上来.方便日后回顾. 本人java后端开发,大概算个中级程序员.所以笔记中的难易程度都是根据我自身水平的判断. 看完 ...
- 视频教程-JAVA WEB开发实战-Java
JAVA WEB开发实战 主要研究方向为J2EE..net .数据库 .前端.Android,曾经服务过大型上市国企IT部门,软件企业联合创始人,对软件研发管理.市场营销有自己独特思想体系! 张晨光 ...
- 名师讲坛——Java Web开发实战经典基础篇(JSP、Servlet、Struts、Ajax)
[书名]<名师讲坛--Java Web开发实战经典基础篇(JSP.Servlet.Struts.Ajax)> [作者]李兴华.王月清 [ISBN]9787302231585 }:YKf: ...
- session存在哪里?如何实现以及session超时设置
sessionid是一个会话的key,浏览器第一次访问服务器会在服务器端生成一个session,有一个sessionid和它对应.tomcat生成的sessionid叫做jsessionid. ses ...
最新文章
- Nginx问题定位之监控进程异常退出
- chromedp网络监听_动态爬虫三:监听网络事件 + 监听js事件
- C++large fibonacci大斐波那契数列的实现(附完整源码)
- jni c向java传递数组_通过jni将jint数组从c返回到java
- 快速实现一个分布式定时器
- VC中海量文件读写类设计与应用(转)
- tomcat 开启远程debug
- js中split,splice,slice方法之间的差异。
- java中对时间的操作
- android主题切换框架,Android主题切换日夜间模式与换肤框架小结
- jqueryui手风琴_jQueryUI手风琴插件
- 转:应用级集群系统的设计(下)
- js requestAnimationFrame
- 扫盲篇:数字签名、数字证书、域名劫持、域名欺骗
- 计算机考证要考PS吗
- 没有apihost什么意思_热文:2021年没有立春什么意思
- 跑PIN码破解无线网络WIFI密码的原理分析(转)
- 卧底软件:帮助公司找出“内奸”
- The Things Network LoRaWAN Stack V3 学习笔记 2.2 使用 CLI 进行 OAuth 登录
- 页面滑动与锚点的“完美交互”
热门文章
- 频段、信道带宽、EARFCN、频段和EARFCN之间的换算
- 快速搭建一个前端模板
- 领存工业级 3U VPX 8TB 存储模块性能参数
- ezcad旋转轴标刻参数_激光打标机软件ezcad中地球仪标刻使用方法教程详解
- 教师管理系统java_基于jsp的教师管理系统-JavaEE实现教师管理系统 - java项目源码...
- 微波天线及各种天线概念解析
- python笔记:python中 | ^表示什么意思
- SpringBoot框架理解
- 微信小程序-colorUI组件库
- 栈基本操作的java代码实现(建栈,初始化栈、进栈、出栈)