首页 > 代码库 > jsp操作Cookie

jsp操作Cookie

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的创建,写入到客户端,客户端访问的过程了。

jsp操作Cookie