servlet的cookie问题(cookie有效期问题)

两个文件,一个创建一个删除如下:CookieTest1.javapackagecom.test_servlet;importjavax.servlet.http.*;im... 两个文件,一个创建 一个删除
如下:
CookieTest1 .java
package com.test_servlet;

import javax.servlet.http.*;

import java.io.*;

public class CookieTest1 extends HttpServlet {

public void doGet(HttpServletRequest req,HttpServletResponse res){

try{

res.setContentType("text/html;charset=gbk");
PrintWriter pw=res.getWriter();

Cookie mycolor=new Cookie("Color","red");

mycolor.setMaxAge(20);

res.addCookie(mycolor);

pw.println("Cookie′′½¨3é1|");

}catch(Exception e){

e.printStackTrace();

}

}

public void doPost(HttpServletRequest req,HttpServletResponse res){

this.doGet(req,res);
}
}

CookieTest2 .java如下:
package com.test_servlet;

import javax.servlet.http.*;

import java.io.*;

public class CookieTest2 extends HttpServlet {

public void doGet(HttpServletRequest req,HttpServletResponse res){

try{

res.setContentType("text/html;charset=gbk");
PrintWriter pw=res.getWriter();

Cookie []allCookie=req.getCookies();
pw.println("lenth="+allCookie.length);
int i=0;
if(allCookie!=null)
{
for(i=0;i<allCookie.length;i++)
{
Cookie temp=allCookie[i];

if(temp.getName().equals("Color")){

temp.setMaxAge(0);
pw.println("é¾3y3é1|");

}
}

if(allCookie.length==i)
{
pw.println("Cookie 1yÆú");}

}

}catch(Exception e){

e.printStackTrace();

}

}

public void doPost(HttpServletRequest req,HttpServletResponse res){

this.doGet(req,res);
}
}
首先在C:\Documents and Settings\Administrator目录中(已经打开所有隐藏)见不到Cookies的目录,直接输入C:\Documents and Settings\Administrator\Cookies却能进去

打开第一个网页时
显示:Cookie创建成功
C:\Documents and Settings\Administrator\Cookies出现相应的cookie

setMaxAge(30)不是应该只保存30秒吗?
但在C:\Documents and Settings\Administrator\Cookies下
30秒后Cookie还在

执行第二个网页 显示
lenth=1 删除成功 Cookie过期
但在C:\Documents and Settings\Administrator\Cookies下cookie还是在
太奇怪了!删除不了呢?
那些乱码是中文,我在Jcreator中复制的,有点乱码
展开
 我来答
华迷洪
2011-03-05 · 超过24用户采纳过TA的回答
知道答主
回答量:97
采纳率:100%
帮助的人:61.6万
展开全部
1.在没有重新启动浏览器的情况下
解决方法为:C:\Documents and Settings\Administrator\Cookies下的cookie是记事本文件 虽然Cookie过期
但你没有删除该文件 File file =new File(你cookie所在位置); file.delete();
2 重新启动浏览器的情况下
过期的cookie会被浏览器在下次启动时删除
你试一试看看
ckt13231
2011-02-28 · TA获得超过1814个赞
知道小有建树答主
回答量:1185
采纳率:0%
帮助的人:1060万
展开全部
ll 和if(cookies[i].getName().equals("VisitTimes"))
如果cookie!=null 而且!cookies[i].getName().equals("VisitTimes")) 你没有判断 你应该设个全局boolean flag=false;
在if(cookies[i].getName().equals("VisitTimes")) 里
flag=true;

然后下面那个if(cookie==null)换成 if(flag){
}
else{
}
追问
语法没错的
temp.setMaxAge(0);下面还有个输出pw.println("删除成功");
网页有显示“删除成功” 证明有执行了 temp.setMaxAge(0);
但我刷新下还是显示“删除成功”
不断刷新20秒后才不会显示 就是说temp.setMaxAge(0)没有起到任何作用啊!!!
不是应该在执行temp.setMaxAge(0)的时候cookie就应该被删除吗
怎么还是等20秒后cookie过期呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机用户38731
2011-03-07
知道答主
回答量:17
采纳率:0%
帮助的人:10万
展开全部
setMaxAge(0);cookie删除
在代码中你把两个cookie的path都设置成相同!

或者setMaxAge(-1);
表示关闭浏览器后消失
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式