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);

			//如果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 2017-08-16 20:39  John_Baker  阅读(164)  评论(0编辑  收藏  举报