cookie需要客户端浏览器支持,你要确保客户端获取了cookie,并携带在>
public void doGet(>
有可能你漏了关键的一步,就是设置完时间后要重新转发的,调用resp的addcookie重新把时间写进去
Cookie[] cookies = reqgetCookies();
for (Cookie cookie : cookies) {
if(cookiegetName()equals("userName")||cookiegetName()equals("password")){
Systemoutprintln("销毁该cookie"+cookiegetName());
cookiesetMaxAge(-1);
respaddCookie(cookie);
}
}
登录后复制
另外cookie时间存在时间最少是回话结束前,如果设置为负数与0,则会根据浏览器关闭直接被销毁,浏览器未关闭,除非手动清理cookie,无法通过服务端代码销毁cookie
1新建loginjsp和indexjsp。
2在loginjsp中新建表单,跳转到indexjsp并提交name。
3在indexjsp中新建如下代码:
4访问loginjsp页面。
5登录之后,现在cookie已经写入浏览器中,等待30秒之后再次刷新,会跳转到loginjsp。
6直接在IE浏览器中访问indexjsp。
7由于没有用户名也没有cookie直接重定向到了loginjsp。
8正常登录,cookie已经保存在了客户端cookie文件中。
9在浏览器,工具-Internet选项中,选择设置,文件。
12这个是存储在客户端的cookie文件。
13打开如下,name存储的就是sjzjava。
服务器给客户端浏览器返回响应的时候可以附带cookie保存在客户端硬盘或者内存中,服务器可以向客户端发送多个cookie让客户端保存。cookie的本质其实就是一个name/value对,用于保存服务器需要客户端保存的信息(如验证信息等)。这句话的意思是服务器从客户端浏览器取回它保存在浏览器的所有cookie,并且遍历每一个cookie,看看是否有一个cookie的name是"SimpleServlet"。
以上就是关于为什么每次都显示的是 首次访问全部的内容,包括:为什么每次都显示的是 首次访问、java的cookie问题: java.lang.NullPointerException、使用Cookie技术实现显示用户上次访问时间。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)