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. RuntimeError: Expected object of device type cuda but got device type cpu for argument pytorch数据位置
  2. 一个教务系统多少钱_销售管理系统报价多少钱
  3. ML之回归预测:利用FSR/RiR/BasisExpand/ Lasso/DT/RF/GB算法对红酒品质wine数据集实现红酒口感评分预测(实数值评分预测)
  4. sap信贷管理的操作流程
  5. ios 点击出现另外一套tabbar_iOS开发中TabBar再次点击实现刷新效果
  6. 前端工程师面经——概述及面试技巧加考点篇(一)
  7. 飞鸽传书确保服务数据的安全可靠
  8. 终于等到了!新一代AirPods正式发布:新增无线充电盒
  9. 麦咭萌app送智伴机器人_国内儿童陪伴机器人品牌盘点
  10. gcc下载地址(Linux/windows安装)
  11. 一些鼠标指针图案大全和美化 20+
  12. BI项目中ETL设计与思考
  13. PDFium使用分享
  14. 浅谈电弧光保护在10kV变电站高压室的应用方案
  15. 响应式布局的实现方法
  16. 内核文件管理-IRP(一)创建或打开文件
  17. 直播带货中被禁播,我是触犯了哪些直播规则丨国仁网络资讯
  18. arduino控制超声波传感器
  19. 乐高 计算机泡泡龙教案,泡泡龙
  20. 无锡有哪些高中有计算机专业,无锡19所重点高中大盘点!

热门文章

  1. Druid数据库连接池
  2. UVa1586 Molar Mass
  3. 关于html5的PostMessage的用法总结
  4. 2019-06-18-关于outlook日历和手机同步的方法?
  5. 移植和使用ucOSII
  6. BLE4.0教程一 蓝牙协议连接过程与广播分析
  7. 作文提升~老师整理的夸张句,太实用了,赶快收藏
  8. IPv6协议的技术分析
  9. 本杰明.富兰克林的13条修身计划(中英文对照)
  10. wu2198:难得的波段抄底机会