session是什么时候被销毁的
和Tomcat的配置有关系:tomcat/conf/context.xml配置中:
每次关闭tomcat的时候,都会将当前每个Session中的内容写到文件中,然后重新启动Tomcat的时候读取这个文件,并且验证Session是否超时。
。
然后,发挥你的想象力吧。
取消注释就ok了。
jsp中的失效的session能销毁吗?
失效的session是由Servlet容器管理的,当达到一定时间,此Session没有被访问过,Servlet容器会自动摧毁这个Session,摧毁之前会通知SessionLitsener
如果想要主动摧毁session,例如用户退出登录时,可以采用session.invalidate();
在JavaEE的Doc中针对HttpSession接口的invalidate方法描述是:使此会话无效,然后取消对任何绑定到它的对象的绑定。
java中Session针对单独对象的销毁
removeAttribute(String name),删除指定名字的session属性,若该属性不存在,则出现异常。
session对象的销毁的方法:手动销毁、配置文件设置时间销毁。
1 当需要在程序中手动设置Session失效时,可以手工调用方法,摧毁session。
removeAttribute(String name),删除指定名字的session属性,若该属性不存在,则出现异常。
public void invalidate(),使session失效。
可以立即使当前会话失效,原来会话中存储的所有对象都不能再被访问。
2 session对象默认30分钟没有使用,则服务器会自动销毁session,在web.xml文件中可以手工配置session的失效时间。
yii2.0 退出怎么销毁session
[译注:Session中文翻译为会话,Cookie有些翻译成小甜饼,不贴切,两个单词保留英文] Sessions 和 cookies 允许数据在多次请求中保持, 在纯PHP中,可以分别使用全局变量$_SESSION 和$_COOKIE 来访问,Yii将session和cookie封装成对象并增加一些功能, 可通过面向对象方式访问它们。
Sessions
和 请求 和 响应类似, 默认可通过为yiiwebSession 实例的session 应用组件 来访问sessions。
开启和关闭 Sessions
可使用以下代码来开启和关闭session。
$session = Yii::$app->session;
// 检查session是否开启
if ($session->isActive) ...
// 开启session
$session->open();
// 关闭session
$session->close();
// 销毁session中所有已注册的数据
$session->destroy();
多次调用yiiwebSession::open() 和yiiwebSession::close() 方法并不会产生错误, 因为方法内部会先检查session是否已经开启。
怎样销毁session中的各个变量求答案
HttpSession session = request.getSession();
for(Enumeration e = session.getAttributeNames(); e.hasMoreElements();){
String var = e.nextElement().toString();
if(session.getAttribute(var)!=null){
session.removeAttribute(var);}}
1.session.getAttributeNames(); 会得到一个enumeration类型数据,然后在使用上述格式进行遍历,为安全起见,先判断一下session.getAttribute(var)!=null,然后再进行清除,enumeration类型数据使用上述方法进行遍历
2.在一个hasMoreElements()方法后只能使用一次nextElement()方法,如果第二次调用的话将出现java.util.NoSuchElementException异常
3.有时将有一.apache.struts.action.LOCALE对象用于struts的国际化
待解决问题:如果一个页面点击链接打开了另外一个新的窗口,那么两个页面将共同使用一个session变量,在新打开的页面有可以打开更多页面,如果这样在后打开的页面中,点击退出的话,页面定位到重新登录页面,有以一个新的用户类型进行登录了,session中将重新注入新的变量,那么在其他没有关闭的窗口中将无法也公用新的session变量,那将会产生新的问题,如何把使用相同session变量的页面全部关闭?
PHP 如何通过链接销毁session
一般有两种情况:链接到另一个页面处理或者ajax处理
1、在另一个页面处理
<a href="logout.php">退出</a>
在logout.php中销毁session
2、Ajax处理
<a href="Javascript:void(0)" onclick="Logout()">退出</a>
Logout()函数是ajax请求处理来销毁session