原文链接: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超时设置相关推荐

  1. java session原理_java web开发—session的工作原理总结

    session的工作原理总结 一.什么是session session是一次浏览器和服务器交互的会话,在jsp中,作为一个内置对象存在.我的理解,就是当用户打开网页时,程序会在浏览器中开辟一段空间来存 ...

  2. java sessionstate_在Java Web开发中自定义Session

    Session在存储安全性要求较高的会话信息方面是必不可少的,对于分布式Web应用自定义Session支持独立的状态服务器或集群是必须的.本文就来教大家如何在Java Web开发中自定义Session ...

  3. Java Web开发API Boy如何进阶?

    导语 | Java Web后台开发基本都离不开Spring生态这一套,Spring框架功能极其强大,会帮忙做许多工作,我们通常只需要在一个函数(包含request和response两个入参)中写处理逻 ...

  4. JAVA WEB开发实战-张晨光-专题视频课程

    JAVA WEB开发实战-379人已学习 课程介绍         走进JSP.掌握JSP语法.JSP内置对象.Servlet技术.综合实验(一)--JSP使用Model2实现登录模块.EL表达式语言 ...

  5. java web开发学习总结

    java web 开发基础内容理解 解决中文乱码问题 请求参数乱码 输出乱码 jsp的运行原理 GET请求和POST请求的区别 静态包含和动态包含 静态包含 动态包含 两者的区别 Cookie和Ses ...

  6. java web开发实战经典 源码_李兴华 java_web开发实战经典 源码 完整版收集共享

    李兴华 java_web开发实战经典 源码 完整版收集共享 01f8a7  在  2018-11-07 20:41:33  上传  10.92 MB 第1章 JAVA WEB开发简介 1.1.WEB发 ...

  7. Java Web开发实战经典 李兴华版 读书笔记(一)

    有的时候总感觉读书没有效率,或是记不住,或是不能专注.所以,把读的书都做一个笔记.贴上来.方便日后回顾. 本人java后端开发,大概算个中级程序员.所以笔记中的难易程度都是根据我自身水平的判断. 看完 ...

  8. 视频教程-JAVA WEB开发实战-Java

    JAVA WEB开发实战 主要研究方向为J2EE..net .数据库 .前端.Android,曾经服务过大型上市国企IT部门,软件企业联合创始人,对软件研发管理.市场营销有自己独特思想体系! 张晨光 ...

  9. 名师讲坛——Java Web开发实战经典基础篇(JSP、Servlet、Struts、Ajax)

    [书名]<名师讲坛--Java Web开发实战经典基础篇(JSP.Servlet.Struts.Ajax)> [作者]李兴华.王月清 [ISBN]9787302231585 ­}:YKf: ...

  10. session存在哪里?如何实现以及session超时设置

    sessionid是一个会话的key,浏览器第一次访问服务器会在服务器端生成一个session,有一个sessionid和它对应.tomcat生成的sessionid叫做jsessionid. ses ...

最新文章

  1. Nginx问题定位之监控进程异常退出
  2. chromedp网络监听_动态爬虫三:监听网络事件 + 监听js事件
  3. C++large fibonacci大斐波那契数列的实现(附完整源码)
  4. jni c向java传递数组_通过jni将jint数组从c返回到java
  5. 快速实现一个分布式定时器
  6. VC中海量文件读写类设计与应用(转)
  7. tomcat 开启远程debug
  8. js中split,splice,slice方法之间的差异。
  9. java中对时间的操作
  10. android主题切换框架,Android主题切换日夜间模式与换肤框架小结
  11. jqueryui手风琴_jQueryUI手风琴插件
  12. 转:应用级集群系统的设计(下)
  13. js requestAnimationFrame
  14. 扫盲篇:数字签名、数字证书、域名劫持、域名欺骗
  15. 计算机考证要考PS吗
  16. 没有apihost什么意思_热文:2021年没有立春什么意思
  17. 跑PIN码破解无线网络WIFI密码的原理分析(转)
  18. 卧底软件:帮助公司找出“内奸”
  19. The Things Network LoRaWAN Stack V3 学习笔记 2.2 使用 CLI 进行 OAuth 登录
  20. 页面滑动与锚点的“完美交互”

热门文章

  1. 频段、信道带宽、EARFCN、频段和EARFCN之间的换算
  2. 快速搭建一个前端模板
  3. 领存工业级 3U VPX 8TB 存储模块性能参数
  4. ezcad旋转轴标刻参数_激光打标机软件ezcad中地球仪标刻使用方法教程详解
  5. 教师管理系统java_基于jsp的教师管理系统-JavaEE实现教师管理系统 - java项目源码...
  6. 微波天线及各种天线概念解析
  7. python笔记:python中 | ^表示什么意思
  8. SpringBoot框架理解
  9. 微信小程序-colorUI组件库
  10. 栈基本操作的java代码实现(建栈,初始化栈、进栈、出栈)