Cookies
Cookies是存储在客户机的文本文件,它们保存了大量轨迹信息。在servlet技术基础上,JSP显然能够提供对HTTP cookies的支持。
使用Cookies的几个步骤:
1、设置Cookies
设置Cookies有三个步骤:
(1)、创建一个Cookie对象:调用Cookie函数
(2)、设置有效期:调用setMaxAge()函数
(3)、将Cookies发送至HTTP响应头中:调用response.addCookie()函数
示例代码:
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//设置请求编码格式
req.setCharacterEncoding("utf-8");
//设置响应编码格式
resp.setContentType("text/html;charset=utf-8");
//创建Cookie
Cookie front = new Cookie("front", "frontCookie");
Cookie last = new Cookie("last", "lastCookie");
//设置Cookie的有效期
last.setMaxAge(24*60*60);//以秒为单位
//调用addCookie函数把Cookie发送至HTTP响应头中
resp.addCookie(front);
resp.addCookie(last);
resp.getWriter().write("设置Cookie成功");
}
页面效果:
2、获取Cookies
获取Cookies有二个步骤:
(1)、声明一个Cookie集合来接收Cookie信息:调用getCookies()函数获取Cookie的信息。
(2)、遍历Cookie集合获取Cookie信息。
示例代码:
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//设置请求编码格式
req.setCharacterEncoding("utf-8");
//设置响应编码格式
resp.setContentType("text/html;charset=utf-8");
//调用getCookies()函数获取Cookie的集合
Cookie[] cks = req.getCookies();
if(cks != null){//判断集合是否为空
//遍历Cookie集合
for(Cookie c:cks){
String name = c.getName();//获取Cookie的名称
String value = c.getValue();//获取Cookie的值
System.out.println(name+":"+value);//输出
}
}
}
运行效果:
3、删除Cookies
删除Cookies有三个步骤:
(1)、声明一个Cookie集合来接收Cookie信息:调用getCookies()函数获取Cookie的信息。
(2)、遍历Cookie集合获取Cookie信息。
(3)、通过条件判断找出需要删除的Cookie,设置有效期为0
示例代码:
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//设置请求编码格式
req.setCharacterEncoding("utf-8");
//设置响应编码格式
resp.setContentType("text/html;charset=utf-8");
//调用getCookies()函数获取Cookie的集合
Cookie[] cookies = req.getCookies();
if(cookies != null){//判断集合是否为空
System.out.println("找到Cookie");
//遍历Cookie集合
for(Cookie cookie:cookies){
if(cookie.getName().compareTo("last")==0){
//设置Cookie的有效期
cookie.setMaxAge(0);
//调用addCookie函数把Cookie发送至HTTP响应头中
resp.addCookie(cookie);
System.out.println("删除last cookie");
}
}
}else{
System.out.println("没有Cookie");
}
}
运行结果:
页面效果: