gpt4 book ai didi

java - 使用浏览器手动删除 cookie 后的请求

转载 作者:搜寻专家 更新时间:2023-11-01 03:52:57 25 4
gpt4 key购买 nike

今天我尝试了这个 kind of code ...登录后我用我的 FF 浏览器删除了所有 cookie,然后我刷新了网页,我得到了 NPE :P所以我一直在想是否有一种简单的方法可以“恢复” 或任何 session ,如果在客户端手动删除了 cookie,或者在这种情况下什么是最佳方法,特别是如果有一些数据(与 session 属性相关)仍在 servlet 上下文范围内?

例如,如果我在 session 中有一些 id 为

session.setAttribute("id","hello world");

...我有这样的代码

String userID=null;
Cookie []cookies=req.getCookies();

for(Cookie cookie:cookies)
{
if(cookie.getName().equals("id")){userID=cookie.getValue();}
}


String id=session.getAttribute("id");
User user=((MyUsers)context.getAttribute("Users")).getUser(id);

如果

我怎样才能删除用户(以避免重复)
  • A) 没有 cookie,因为它们已被手动删除
  • B) 和 session.getAttribute("id"); 抛出 NPE?

谢谢

最佳答案

Servlet 环境使用 URL 重写或 Cookies 来跟踪用户 session (这是 HTTP 的东西)。如果您删除浏览器上的 cookie,您(很可能)最终会失去用户浏览器和您的网络应用程序之间的所有连接。

如果你想记住用户,你需要cookies。您得到的 NPE 只是 cookie 缺失(以及程序中缺失的位)的反射(reflect)。

因此,您应该检查 cookie 和/或 session 是否存在(验证 NPE),如果您找不到任何一个,那么您将无法跟踪您的用户(并且应该将他重定向到您的登录页 - 如果适用)。

关于java - 使用浏览器手动删除 cookie 后的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19938982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com