1.理清概念

要明白这两个方法的区别,首先需要弄清楚这两个对象的概念。

1.1.关于session

session是一种保存在服务端的,用于记录用户状态的对象。
用户状态可能有很多种,如登录用户名,登录时间等等,每一种信息都可以以键值对的形式存储在session中。
每一种信息都是session的一个属性,即attribute。

session一般用于会话控制等。

session创建

//创建session   (HttpServletRequest request)
HttpSession session = request.getSession(true);

session的存活
session默认能够存活30分钟,可以通过中间件(如tomcat)或者在程序中对session的存活时间进行配置。
配置方式详见: Session设置失效时间的几种方式(tomcat、webapp)。

session的销毁
session的销毁有两种方式:过期和手动销毁。

  • 过期:超过了存活时间。
  • 手动销毁session.invalidate();

注意:关闭浏览器并不能销毁session。具体分析如下:

  1. session的创建和销毁只能在服务器端进行。
  2. 客户端访问session资源是通过浏览器创建的sessionid进行的,而sessionid只存活于浏览器运行期间。
  3. 关闭浏览器,然后再打开浏览器,对服务端的session来说,什么也没有发生。
  4. 关闭浏览器,然后再打开浏览器,客户端的sessionid会发生变化,因此无法再通过这个新产生的sessionid找到原来的session信息。
  5. 所以,关闭浏览器看上去是销毁了session。但是,那只是假象,session没有发生变化,只是你找不到了。

1.2.关于session.attribute

session.attribute只是某个session中以键值对存在的一条信息。

session.attribute的赋值

//设置session中的一条信息
request.getSession().setAttribute("message","hello world!");

session.attribute的使用

//过去session中的一条信息
String message = (String) request.getSession().getAttribute("message");

session.attribute的移除

//移除session中的一条信息
request.getSession().removeAttribute("message");

2.session和session.attribute的区别

当理清了session和session.attribute的概念后,很容易知道session.invalidate()和session.removeAttribute()的区别。

  1. session.removeAttribute():删除session中的某一个用户状态属性。
  2. session.invalidate():销毁session,此session中所有的用户状态属性都将不存在。

session.invalidate()和session.removeAttribute()的区别相关推荐

  1. 将登录等信息保存到session中和退出session

    做项目时,可能会将某些信息保存在session中,如登录等信息,这样方便在某些页面使用这些保存的信息. 要想保存这些信息,需要创建一个类,该类里面定义需要保存的变量等信息,当登录后就通过new一个该类 ...

  2. session.removeAttribute(“ “)和session.invalidate()的区别

    session.removeAttribute(" ")和session.invalidate()的区别 removeAttribute存在session里的值没有了,但sessi ...

  3. JavaWeb:request.getSession().invalidate()与request.getSession().removeAttribute()的区别

    一.Session是什么? Session对象存储特定用户会话所需的属性及配置信息. 当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个会话中一直存在下去.当 ...

  4. 服务器端Session和客户端Session, 以及cookie的区别

    Session其实分为客户端Session和服务器端Session. 当用户首次与Web服务器建立连接的时候,服务器会给用户分发一个 SessionID作为标识.SessionID是一个由24个字符组 ...

  5. 服务器端Session、客户端Session和Cookie的区别

    1.Session其实分为客户端Session和服务器端Session. 当用户首次与Web服务器建立连接的时候,服务器会给用户分发一个 SessionID作为标识.SessionID是一个由24个字 ...

  6. session.invalidate()

    当浏览器第一次请求时,服务器创建一个session对象,同时生成一个sessionId,并在此次响应中将sessionId 以响应报文的方式传回客户端浏览器内存或以重写url方式送回客户端,来保持整个 ...

  7. session 、cookie、token的区别

    session session的中文翻译是"会话",当用户打开某个web应用时,便与web服务器产生一次session.服务器使用session把用户的信息临时保存在了服务器上,用 ...

  8. SAP 中session和外部断点设置的区别

    1 Session Breakpoints:只在当前user session的所有main session中有效 2 External Breakpoints 在abap editor或事务SICF中 ...

  9. java 移动端session失效,Session is invalid

    场景,移动端重复登录,同一个设备(这里是用pc端浏览器模拟)第一个人登录后,第二个人登录. 实现,显示第二个人的数据信息,不能串号.类似顶下去了.所以我先把第一个人的session干掉,再创建新的se ...

最新文章

  1. mysql临时文件和临时表_理解mysql的临时表和文件排序
  2. LIS最长上升子序列
  3. java状态模式和策略模式_Java状态和策略设计模式之间的差异
  4. Could not autowire. No beans of 'DeptDao' type found
  5. 花了20分钟,给女朋友们写了一个web版群聊程序
  6. java cache教程_Java 中常用缓存Cache机制的实现
  7. java中异常抛出后代码还会继续执行吗
  8. Yii2学习笔记(一):Yii的安装和使用(base版)
  9. 偏最小二乘法 Partial Least Squares
  10. 计算机制图大赛,制图大赛简介
  11. linux开发板网口连接测试方法
  12. C++系列(关键字static)
  13. 这样去做信用贷款违约预测项目,效果提升明显
  14. IP地址分类/IP地址10开头和172开头和192开头的区别
  15. python生成exe启动很慢_python生成exe启动很慢|Win7电脑启动慢如何解决?Win7使用Msconfig.exe解决电脑启动慢的方法...
  16. fastadmin 获取表格选中列的id和值
  17. 递归回溯--数字分解java代码
  18. 支付宝RSA2公钥证书生成办法
  19. 太秀了!那个在 GitHub 用文言文编程的小哥,竟从 28 万行唐诗中找出了对称矩阵
  20. ITE IT986X系列build命令实现

热门文章

  1. SQL SERVER Alway-on 灾难恢复方案
  2. Java 文件压缩工具类(支持多级目录压缩)
  3. 练手项目之会议室预订
  4. 一致收敛函数列与函数项级数的性质
  5. 处理A4不能打印大图片
  6. Hack This Site Realistic 1
  7. maven依赖指定版本范围或者最新版本
  8. P2370 yyy2015c01的U盘
  9. php try catch 应用
  10. vscode远程连接服务器+上下传文件