Java web.xml session

Wesley13
• 阅读 555

在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设置

 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值代替),用于会话管理。

点赞
收藏
评论区
推荐文章
莎利亚 莎利亚
3年前
PHP Cookie与Session的使用与区别
Cookie与SessionCookie和session是目前使用的两种存储机制。cookie是从一个WEB页到下一个WEB页面的数据传送方法,cookie存储在客户端;Session是让数据在页面中持续有效的一个传递方法,session存储在服务器端。掌握了cookie与session这两个技术,在WEB网站页面间信息传递的安全性是
喷火龙 喷火龙
3年前
go语言web开发框架_Iris框架讲解(六):Session的使用和控制
在实际的项目开发中,我们会经常有业务场景使用到Session功能。在iris框架中,也为我们提供了方便使用,功能齐全的Session模块。Session模块的源码目录为kataras/iris/sessions包。Session与Cookie的区别在学习web开发过程中,我们总会和session和cookie打交道。本节课我们学习sesion相关的
喷火龙 喷火龙
3年前
cookie和session的详解与区别
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能用Session。1.1 C
Wesley13 Wesley13
2年前
Java Web学习总结(11)——Session使用示例教程
一、Session简单介绍  在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中
Wesley13 Wesley13
2年前
Java认证:对session和cookie的一些理解
Java认证:对session和cookie的一些理解博客分类:java这篇文章虽然说的是JAVA中的session和cookie的使用,但是对于其他语言也是适用的。一、cookie机制和session机制的区别具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。同时我们也看
Stella981 Stella981
2年前
JSP内置对象之session
      在实际开发中session主要用以完成用户的登陆以及注销等常见功能,每一个session都表示不同的访问用户,session对象是javax.servlet.http.HttpSession接口的实例化对象,所以session只能应用于HTTP协议中。      取得SessionId:当一个用户连接到一个服务器后,服务器会自动
Stella981 Stella981
2年前
Spring Boot 应用使用spring session+redis启用分布式session后,如何在配置文件里设置应用的cookiename、session超时时间、redis存储的nam...
现状项目在使用SpringCloud搭建微服务框架,其中分布式session采用springsessionredis模式需求希望可以在配置文件(application.yml)里设置应用的cookiename、session超时时间以及redis存储的namespace目前已知可以通过下面的方式设置session超时时间和
Stella981 Stella981
2年前
Django中的session的使用
一、Session的概念cookie是在浏览器端保存键值对数据,而session是在服务器端保存键值对数据session的使用依赖cookie:在使用Session后,会在Cookie中存储一个sessionid的数据,每次请求时浏览器都会将这个数据发给服务器,服务器在接收到sess
Stella981 Stella981
2年前
Laravel使用redis保存SESSION
Laravel使用redis保存SESSION首先确认服务器已经安装redis服务,php安装了redis扩展.1.打开config/database.php。在redis配置项中增加session的连接'session''host'
Stella981 Stella981
2年前
Django组件——cookie与session
Django组件——cookie与session<fontcolor00bff一、会话跟踪技术</font<fontcolorff7f501、什么是会话跟踪技术</font先了解一下什么是会话。可以把