什么是Cookie
Cookie是web服务器保存在客户端一系列文本信息
典型应用1:判定用户是否已经登录网站
典型应用2:“购物车”的处理
为什么需要Cookie
因为Http的无状态性:Http的无状态性无状态是指,当浏览器发送请求给服务器的时候,服务器响应客户端请求。但是当一个浏览器再次发送请求给服务器的时候,服务器并不知道它就是刚才那个服务器。
JSP中创建和使用Cookie
- 创建Cookie对象
Cookie newCookie=new Cookie(String key,Object value);
- 写入Cookie对象
response.addCookie(newCookie);
- 读取Cookie对象
Cookie[] cookies=request.getCookies;
常用的方法:
- 设置cookie的有效期,以秒为单位:void setMaxAge(int expiry)
- 在cookie创建后,对cookie进行赋值:void setValue(String value)
- 获取cookie的名称:String getName()
- 获取cookie的值:String getValue()
- 获取cookie的有效时间,以秒为单位:int getMaxAge()
应用程序:
String[] useCookie=request.getParameterValues("check");
if(useCookie!=null&&useCookie.length>0)
{
String username=URLEncoder.encode(request.getParameter("username"),"utf-8");
String password=URLEncoder.encode(request.getParameter("password"),"utf-8");
Cookie usernameCookie=new Cookie("username",username);
Cookie passwordCookie=new Cookie("password",password);
usernameCookie.setMaxAge(864000);
passwordCookie.setMaxAge(864000);//设置最大生存期限为七天
response.addCookie(usernameCookie);
response.addCookie(passwordCookie);
}
else
{
Cookie[] cookies=request.getCookies();
if(cookies!=null&&cookies.length>0)
{
for(Cookie c:cookies)
{
if(c.getName().equals("username")||c.getName().equals("password"))
{
c.setMaxAge(0);//设置cookie失效
response.addCookie(c);//重新保存
}
}
}
}