Cookie技术随笔

Cookie是什么呢,它像一张表,保存用户信息到客户端,有名字和值两部分组成,一般保存在C://Documents and Settings目录下

如何创建一个Cookie呢?Cookie c = new Cookie(String name,String value);

如何将Cookie添加到客户端呢?  response.addCookie(c);

服务器如何读取Cookie呢?  request.getCookies();

Cookie存在时间用setMaxAge()方法设置,如果没有设置时间,Cookie是不会被保存的,单位是秒,如果是负数,表示不保存Cookie,如果是0,表示该Cookie会被删除

 

应用:用cookie保存用户名密码

复制代码
1 //创建Cookie
2                             Cookie name = new Cookie("myname", username);
3                             Cookie pass = new Cookie("mypass", password);
4                             //设置时间
5                             name.setMaxAge(14*24*3600);
6                             pass.setMaxAge(14*24*3600);
7                             //回写到客户端
8                             res.addCookie(name);
9                             res.addCookie(pass);

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//如果Session中没有用户信息,再看看有没有Cookie信息
//从客户端读取Cookie信息
Cookie[] allCookies = req.getCookies();
int i=0;
 
 
//如果allCookies不为空
if(allCookies!=null)
{
    //从中取出Cookie
    for(i=0;i<allCookies.length;i++)
    {
        //依次取出Cookie
        Cookie tempCookie = allCookies[i];
        if(tempCookie.getName().equals("myname"))
        {
            name=tempCookie.getValue();
        }else if(tempCookie.getName().equals("mypass"))
        {
            passwd =tempCookie.getValue();
        }
    }
    if(!name.equals("")&&!passwd.equals(""))
    {
        try {
            System.out.println("准备跳转logincl页面,username="+name+",password="+passwd);
            res.sendRedirect("logincl?username="+name+"&password="+passwd);
            return ;
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
try {
    res.sendRedirect("login?info=error1");
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

 

posted on   John_Baker  阅读(165)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示