Cookie常用API
*cookie的构造方式 Cookie(String name,String value);
*String getName(); 获取cookie的名称
*String getValue() 获取cookie的值
*void setMaxAge(int expiry);
会话级别的cookie:默认保存到浏览器的内存中。
持久的cookie:把cookie保存到磁盘上。通过setMaxAge()进行设置。
*不设置,cookie也有一个默认的路径
*void setPath(String uri);
*void setDomain(String pattern);
先封装根据名称获取cookie方法
public static Cookie getCookieByName(Cookie[]cookies ,String name)
{
//如果cookies数组为null ,则返回null
if(cookies== null)
return null;
else
{
//循环cookies数组,如果它的name和进行匹配,如果匹配成功则 返回
for(Cookie cookie:cookies)
{
//获取cookie的名称,和name进行匹配
if(cookie.getName().equals(name))
return cookie;
}
}
return null;
}
/**
* 1.获取所有的cookie,判断是否是第一次访问
*2.如果是第一次访问
*输出欢迎,记录当前的时间,回写到浏览器
*3.如果不是第一次访问
*获取时间,输出到浏览器,记录当前的时间,回写到浏览器。
*/
response.setContentType( "text/html;charset=UTF-8");
//获取所有的cookies
Cookie[] cookies=request.getCookies();
//通过指定cookie名称来查找cookie ,
Cookie cookie=MyUtils.getCookieByName(cookies, "last");
//判断如果cookie为null ,则是第一次访问,否则是再次访问。
if(cookie== null)
{
response. getWriter().write("<h3>亲,欢迎再来吽!!!</h3>" );
}
else
{
String time=cookie.getValue();
response. getWriter().write("<h3>亲,您上次登录时间为" +time+"</h3>" );
}
Date date= new Date();
SimpleDateFormat sdf= new SimpleDateFormat( "yyyy-MM-dd HH:mm ss");
String sDate=sdf.format(date);
Cookie c= new Cookie( "last", sDate);
response.addCookie(c);