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/");是更好的选择。


发布评论