Java:session中的invalidate()的作用是什么呢?求解

手工杀会话。
会话失效有2种可能:超时和手工杀会话。手工杀方便省时间,程序员都爱用。

比如我做一个程序需要登录,中间访问的页面有会话控制,如果没有登录则跳转到登录页面,退出时清会话信息。

这是有两个选择:把session数据清空,或直接杀会话。建议直接杀会话,方便。
如果退出时不清会话,对方点浏览器后退,依然无需登录可以正常访问站点。

追问

就是说这个东西的最大用处是作退出功能时直接用session.invalidate()将session清空就行了以免有遗漏,如果想手动清空某项session,也可以赋null,是这样吗?

追答

session.invalidate()是杀掉会话

赋值null,是清空会话,很可能是一个陷阱。2者是不同的概念。session是一个容器,里面可以存数据。以在食堂吃饭为例:session是碗,赋值null想当于空碗,数据相当于碗里的饭,invalidate相当于把碗摔了()。

赋值null是个陷阱,开发不要用。

原文地址:https://www.cnblogs.com/shoshana-kong/p/11070033.html

时间: 2024-11-08 06:29:27

Java:session中的invalidate()的作用是什么呢?求解的相关文章

Java连接MySQL数据库实现用户名密码的验证方法 Java语句中sql查询语句'' ""作用

//方法一,可以验证登录,但方法不实用.package com.swift; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; public class Logi

Java IO中转换流的作用

在<Java网络编程>中,有这样一段话: "Reader和Writer最重要的子类是InputStreamReader和OutputStreamWriter类. InputStreamReader类包含了一个底层输入流,可以从中读取原始字节.它根据指定的编码方式,将这些字节转换为Unicode字符. OutputStreamWriter从运行的程序中接收Unicode字符,然后使用指定的编码方式将这些字符转换为字节,再将这些字节写入底层输出流中." 转换流的特点: 1. 其

java类中final方法的作用

不给子类复写这个方法.说明你已经知道这个方法提供的功能已经满足你要求,不需要进行扩展,并且也不允许任何从此类继承的类来覆写这个方法,但是继承仍然可以继承这个方法,也就是说可以直接使用 inline扩展.允许编译器将所有对此方法的调用转化为inline调用的机制,它会使你在调用final方法时,直接将方法主体插入到调用处,而不是进行例行的方法调用,例如保存断点,压栈等,这样可能会使你的程序效率有所提高,然而当你的方法主体非常庞大时,或你在多处调用此方法,那么你的调用主体代码便会迅速膨胀,可能反而会

Eclipse 中 Java 项目中 .settings 文件夹作用

今天工作时,因对 .settings 文件夹误操作,耗时 6 个多小时,才了解到原因就出在 .settings 文件夹.经查阅资料,对 .settings 做如下整理: 就如setting这个名字,就是存放存放各种插件的配置文件..有这些文件的约束你可以更好的利用IDE进行coding.所以呢,这些文件只是用来配置环境用的. 1. org.eclipse.jdt.core.prefs 该文件是与Compile相关的配置,一般情况下的内容如下: 可以手动修改该文件,添加一些其他的配置,然后重启Ec

java基础中导入包的作用

junit     单元测试需要导入的包 JAXP Oracle 官方提供的 API,同时支持 DOM 和 SAX 的开发JDOM   JDOM 是一个开源项目,它基于树型结构,利用纯 JAVA 的技术对 XML 文档实现解析.生成.    序列化以及多种操作.Dom4j   是 JDOM 的升级品,用来读写 XML 文件的.具有性能优异.功能强大和极其易使用的特点,它    的性能超过 sun 公司官方的 dom 技术,同时它也是一个开放源代码的软件,Hibernate 也用它   来读写配置

java中import、package作用和用法

  有些人写了一阵子 Java,可是对於 Java 的 package 跟 import 还是不 太了解很多人以為原始码 .java 档案中的 import 会让编译器把所 import 的程式通通写到编译好的 .class 档案中,或是认為 import 跟 C/C++ 的 #include 相似,实际上,这是错误的观念. 让我们先了解一下,Java 的 package 到底有何用处. 其实,package 名称就像是我们的姓,而 class 名称就像是我们的名字 .package 名称有很多

java中this关键字的作用

一.this关键字主要有三个应用: (1)this调用本类中的属性,也就是类中的成员变量: (2)this调用本类中的其他方法: (3)this调用本类中的其他构造方法,调用时要放在构造方法的首行. Public Class Student { String name; //定义一个成员变量name private void SetName(String name) { //定义一个参数(局部变量)name this.name=name; //将局部变量的值传递给成员变量 } } 应用一:引用成

Java和C++中final关键字的作用和区别

Java中final关键字的作用: a.作用于类:不允许扩展该类,即不能用该类来定义子类. b.作用于方法:子类不能覆盖这个方法,但是可以被继承. 早期Java中,有程序员利用final来避免动态绑定带来的系统开销.现在这个功能主要由编译器来实现. c.作用于域:构造对象之后不能改变该域的值. d.作用于函数参数:可以读取,但是不能改变该参数. 注意:final类的所有方法自动成为final的,不包括域. 将方法或类声明为final主要目的是确保它们在子类中不会改变语义. String类就是一个

MFC中的Invalidate、OnDraw、OnPaint函数的作用

MFC中的Invalidate.OnDraw.OnPaint函数的作用 CWnd::Invalidate voidInvalidate( BOOL bErase = TRUE ); 该函数的作用是使 整个窗口客户区无效.窗口的客户区无效意味着需要重绘,例如,如果一个被其它窗口遮住的窗口变成了前台窗口,那么原来被遮住的部分就是无效的,需要重绘. 这时Windows会在应用程序的消息队列中放置WM_PAINT消息.MFC为窗口类提供了WM_PAINT的消息处理函数 OnPaint,OnPaint负责