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

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。