2024年3月14日发(作者:)

哇哇~~先抓狂下~~就这个小应用让我整了两天了,今天问老师老师也没解决

~~

功夫不负有心人哈,我现在搞定啦,小小总结下下~~

问题描述:

我想实现的功能是在 登录验证页面 验证成功 的时候就添加一个Cookie,有效

时间设置为5分钟,就是在五分钟内可以自动登录。代码段如下:

......

Cookie cookie=new Cookie("guest","123456");

Age(60*5);

kie(cookie);

......

在登录页面接收并验证用户名密码,如果验证通过,就直接跳转到登录页面。

代码如下:

<%

Cookie[] cookie=kies();

int i;

if(cookie!=null)//验证Cookie是否为空

{

for(i=0;i<;i++)

{

if(cookie[i].getName().equals("guest")

&&cookie[i] .getValue().equals("123456"))

{

direct("pages/");//验证通过,直接进入登陆后的

界面

}else continue;

}

}else

{

%>

............

遇到的问题:第一次登录正常,但是第二次进入登录界面不能实现登录,但是Cookie

不是空的,if(cookie!=null)这个验证可以通过。但是就是读不出正确的内容“guest”和

"123456"。

恨哪!

分析:Cookie不为空,说明已经添加成功,那么问题就出在读取上了。可怜刚开始没

经验,后来读文档偶然瞥见一句关于Cookie路径设置的话:setPath();这个方法可以设置

Cookie的允许使用路径。我就想,是不是因为没有设置Cookie的路径,所以那个页面读

不到啊?于是试了一下,成功了!我在添加Cookie哪段代码里加了一句:

h("/");意思是允许本服务器上所有的页面使用该Cookie!耶,成功了

~~~

补充:建议在登录页面实现跳转的时候不要使用forword,因为它是转向,容易会出现

路径不对的问题。使用 direct("pages/");是更好的选择。