Cookie通常用于网站记录客户的某些信息,比如客户的用户名,客户的喜好等。一旦用户下次登录,网站就可以得到客户端的信息,根据这些客户信息,网站可以为客户提供更好的服务了。Cookie与session的不同之处在于:session会随浏览器的关闭而失效,cookie会一直存在客户端的机器上,除非超出的Cookie的生存周期。
关于Cookie与session请看这个博客,讲的很详细:http://blog.csdn.net/fangaoxin/article/details/6952954
向客户端增加Cookie使用一下步奏:
1、首先创建Cookie实例,Cookie的构造函数为Cookie(String name,String value)
2、设置cookie 的生命周期
3、向客户端写Cookie,使用response的addCookie();方法。
下面是一个例子:
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>取钱的表单页</title> </head> <body> <form method= "post" action="first.jsp"> 取钱: <input type="text" name="name"> <input type="submit" value="提交"> </form> </body> </html>
上面是一个客户端的请求,下面是服务器接到客户端的请求处理后返回给客户端的页面
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <% String str = request.getParameter("name"); // 创建一个Cookie对象 Cookie ce = new Cookie("user","name"); // 设置Cookie的生存时间 ce.setMaxAge(24*3600); // 向客户端增加Cookie对象 response.addCookie(ce); %> </body> </html>
执行上面的代码服务端会向客户端机器写入一个user的Cookie,该Cookie会在客户端的硬盘上一直存在,知道超过生存周期。。
访问客户端的Cookie使用request对象,他提供了getCookies的方法,该方法会返回客户端上所有Cookie组成的数组,遍历这个数组找到想要的Cookie即可。
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <% Cookie[] ceArr = request.getCookies(); for(Cookie ce:ceArr) { if(ce.getName().equals("user")) { out.println(ce.getValue()); } } %> </body> </html>
这样就完成了Cookie的创建,写入到客户端,客户端访问的过程了。
时间: 2024-10-27 13:13:10