Java,我做一个web项目的注销,怎么清除session里的值,

Java,我做一个web项目的注销,怎么清除session里的值,,第1张

java web 项目清楚session的方法是:继承SessionAware类来取得session,然后用invalidate()方法清理

  public class ExitAction extends ActionSupport implements SessionAware{
  
@Override
  
public String execute() throws Exception {
  
>PHP 代码为:
//Session_Start 30 minutes destroy
$lifeTime = 1800;//单位:秒
try
{
session_start();
setcookie( session_name(), session_id(), time() + $lifeTime, "/" );
}
catch ( Exception $e )
{
session_set_cookie_params( $lifeTime );
session_start();
}
$_SESSION["LOGIN"] = "OK";
相关说明:
Session 是如何来判断客户端用户的呢?它是通过 Session ID 来判断的,什么是 Session ID,就是那个 Session 文件的文件名,Session ID 是随机生成的,因此能保证唯一性和随机性,确保 Session 的安全。一般如果没有设置 Session 的生存周期,则 Session ID 存储在内存中,关闭浏览器后该 ID 自动注销,重新请求该页面后,重新注册一个 Session ID。
如果客户端没有禁用 Cookie,则 Cookie 在启动 Session 会话的时候扮演的是存储 Session ID 和 Session 生存期的角色。Session 还提供了一个函数 session_set_cookie_params(); 来设置 Session 的生存期的,该函数必须在 session_start() 函数调用之前调用:如上面的代码所示。

点击切换账号或退出的时候就要执行一段代码,
session_destroy(); //清空以创建的所有session
session_unset("session_name");//清空指定的session
unset($_session["name"]);//清空指定的session上面这些清空还会删除掉session所产生的文件

你可以通过session的getSessionContext()方法获取到SessionContext对象,然后通过SessionContext的getSession(String sessionId) 方法获取到其他的session,然后再执行你的invalidate()方法就行了,不过前提是你得先知道对应用户的sessionId,所以可能你需要通过一些手段维护一个用户和sessionId的映射关系才行。

简单的方法是,在第一次登陆的时候吧数值写到session。
$_SESSION['uname']= 'name';
再次登陆的时候,可以看这个$_SESSION['uname'] 是否为空,不为空就是之前已经登陆。
注销的话,$_SESSION['uname'] = ‘’ ;直接赋值为空


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10552751.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-09
下一篇 2023-05-09

发表评论

登录后才能评论

评论列表(0条)

保存