你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:技术专栏 / Web开发
深入体验JavaWeb开发内幕——由创建Cookie到Cookie的简单应用
 
[java] 
<pre name="code" class="java">MakeCookie .java</pre><br> 
package net.csdn.cookie;import java.io.IOException;<br> 
import java.io.PrintWriter;import java.util.Date;<br> 
import javax.servlet.ServletException;import javax.servlet.http.Cookie;<br> 
import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;<br> 
import javax.servlet.http.HttpServletResponse;<br> 
public class MakeCookie extends HttpServlet <br> 
{<br> 
public void doGet(HttpServletRequest request, HttpServletResponse response)<br> 
throws ServletException, IOException {<br> 
 makeCookie(response);}private void makeCookie(HttpServletResponse response) <br> 
throws IOException {<br> 
//为客户端指定显示编码<br> 
  response.setContentType("text/html;charset=utf-8");PrintWriter out = response.getWriter();<br> 
//创建一个Cookie实例名字为"username",值为"lijizh1013"Cookie cookie = new Cookie("username","lijizh1013");<br> 
//为Cookie设置存活时间,默认的为到该浏览器关闭<br> 
 cookie.setMaxAge(24*3600);<br> 
//为Cookie设置路径<br> 
 cookie.setPath("/Cookie/MakeCookie");<br> 
//向浏览器写入Cookie<br> 
 response.addCookie(cookie);out.println("Cookie已经写入到客户端!");<br> 
}<br> 
public void doPost(HttpServletRequest request, HttpServletResponse response<br> 
)throws ServletException, IOException {doGet(request, response);}} 
<pre></pre> 
<p>效果:</p> 
<p>在浏览器发送请求前没有任何cookie文件</p> 
<p><img src=http://www.2cto.com/uploadfile/2012/1030/20121030100654484.png" alt="" height="112" width="734"></p> 
<p>发送请求后:</p> 
<p><img src=http://www.2cto.com/uploadfile/2012/1030/20121030100654100.png" alt=""></p> 
<p><img src=http://www.2cto.com/uploadfile/2012/1030/20121030100654917.png" alt=""></p> 
<p>获取Cookie的值:</p> 
<p></p> 
<pre name="code" class="java">getCookie(request, response);</pre><br> 
具体如下: 
<p></p> 
<p></p> 
<pre name="code" class="java">private void getCookie(HttpServletRequest request, 
            HttpServletResponse response) throws IOException { 
              为浏览器设置显示编码 
               response.setContentType("text/html;charset=utf-8"); 
        PrintWriter out = response.getWriter(); 
           //通过  request.getCookies()返回一个Cookie数组对数组进行遍历得到具体的Cookie后,通过Cookie对象的getName()和getValue()方法得到Cookie的 
          //名和值 
                Cookie [] cookies = request.getCookies(); 
        for(int i=0;cookies!=null && i<cookies.length;i++){ 
            String cname = cookies[i].getName(); 
            String cvalue = cookies[i].getValue(); 
            out.println("获取Cookie"+cname+"——"+cvalue); 
        }</pre>效果如图: 
<p></p> 
<p><img src=http://www.2cto.com/uploadfile/2012/1030/20121030100654152.png" alt=""></p> 
<p>一个关于获取用户访问时间的实例:</p> 
<p></p> 
<pre name="code" class="java">response.setContentType("text/html;charset=utf-8"); 
        PrintWriter out = response.getWriter(); 
        out.println("你上次访问的时间是:"); 
        Cookie [] cookies = request.getCookies(); 
        for(int i=0;cookies!=null && i<cookies.length;i++){ 
            if(cookies[i].getName().equals("LastAccessName")){ 
                long time  = Long.valueOf(cookies[i].getValue()); 
                Date date = new Date (time); 
                out.println(date.toLocaleString()); 
            } 
         
             
        } 
        Cookie cok = new Cookie("LastAccessName",System.currentTimeMillis()+""); 
        cok.setMaxAge(1*3600); 
        response.addCookie(cok);</pre><br> 
效果如图: 
<p></p> 
<p>当用户第一访问时:</p> 
<p><img src=http://www.2cto.com/uploadfile/2012/1030/20121030100654315.png" alt=""></p> 
<p>下一次再访问时:</p> 
<p><img src=http://www.2cto.com/uploadfile/2012/1030/20121030100654606.png" alt=""></p> 
<p>再次访问时:</p> 
<p><img src=http://www.2cto.com/uploadfile/2012/1030/20121030100654284.png" alt=""></p> 
<p>这样就可以通过Cookie得知浏览器上次访问的时间了,赶快自己试一试吧!<br> 
</p> 
<br> 
<pre></pre> 
<pre></pre> 
<pre></pre>
  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089