java鐘cookie的操作

來源:互聯網
上載者:User
zhuanzi __

http://www.java3z.com/cwbwebhome/article/article8/8113.html
1、Cookie的來曆與作用

Cookie是WEB伺服器通過瀏覽器儲存在WWW使用者端硬碟上的一個文字檔,這個文字檔中包含了文本資訊。

   文本資訊的內容以“名/值”對(key/value)的形式進行儲存。

   可以讓WEB開發人員通過程式讀寫這個文字檔。

   XP中儲存Cookie的目錄是“C://Documents and Settings\使用者名稱\Cookies”

Cookie的作用

   解決瀏覽器使用者與Web伺服器之間無狀態通訊。

2Cookie編程

//建立對象

        Date date = new Date() ;

        Cookie c = new Cookie("lastVisited",date.toString()) ;

//設定有效時間 
以s為單位

        c.setMaxAge(60) ;

//設定Cookie路徑和網域名稱

        c.setPath("/") ;

        c.setDomain(".zl.org") ; 
//網域名稱要以“.”開頭

//發送Cookie檔案

        response.addCookie(c) ;

//讀取Cookie

        Cookie cookies[] = request.getCookies() ;

        Cookie c1 = null ;

        if(cookies !=
null){

            for(int i=0;i<cookies.length;i++){

               c1 = cookies[i] ;

               out.println("cookie name : " + c1.getName() +
"   ") ;

               out.println("cookie value :" + c1.getValue() +
"<br>");

            }

        }

  //修改Cookie

       Cookie cookies[] = request.getCookies() ;

       Cookie
c = null ;

       for(int i=0;i<cookies.length;i++){

           c = cookies[i] ;

           if(c.getName().equals("lastVisited")){

              c.setValue("2010-04-3-28") ;

              c.setMaxAge(60*60*12) ;

              response.addCookie(c) ;     //修改後,要更新到瀏覽器中    

           }

       }

 

//刪除Cookie,(將Cookie的有效時間設為0)

       Cookie cookies[] = request.getCookies() ;

       Cookie c = null ;

       for(int i=0;i<cookies.length;i++){

           c = cookies[i] ;

           if(c.getName().equals("lastVisited")){

              c.setMaxAge(0);

              response.addCookie(c) ;

           }

       }

 

4、使用Cookie的注意事項

·Cookie的大小和數量是有限制的。

·Cookie在個人硬碟上所儲存的文本資訊是以明文格式進行儲存的,沒有任何的加密措施。

·瀏覽器使用者可以設定不使用Cookie。

5、執行個體:Servlet中的Cookie編程

 cookieInput.html頁面

 

SetCookie.java

 

GetCookie.java

 

 

cookieInput.html頁面中的參數提交到SetCookie.java中,由SetCookie.java儲存在瀏覽器的Cookie中,在SerCookie.java中連結到GetCookie.java從而讀取剛剛儲存的Cookie。

 

 

SetCookie.java :

publicvoid doPost(HttpServletRequest request, HttpServletResponse
response)

            throws ServletException, IOException {

 

        response.setContentType("text/html;charset=utf-8");

        PrintWriter out =
response.getWriter();

        String username = request.getParameter("username") ;

        //儲存Cookie

        if(username !=""){

            Cookie c1 =
new
Cookie("username",username) ;

            SimpleDateFormat sdf =
new SimpleDateFormat("yyyy-MM-dd") ;

            Cookie c2 =
new
Cookie("lastVisited",sdf.format(new
java.util.Date())) ;

            c1.setMaxAge(60*60*60*12*30) ;

            c2.setMaxAge(60*60*60*12*30) ;

            response.addCookie(c1) ;

            response.addCookie(c2) ;

            out.println("Cookie儲存成功!");

            out.println("<br><br>") ;

            out.println("<a href=GetCookie02>讀取Cookie</a>") ;

        }else{

            response.sendRedirect("../cookieInput.html") ;

        }

       

       

        out.flush();

        out.close();

    }

 

GetCookie.java:

publicvoid doPost(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

 

        response.setContentType("text/html;charset=utf-8");

        PrintWriter out = response.getWriter();

        out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");

        out.println("<HTML>");

        out.println(" 
<HEAD><TITLE>A Servlet</TITLE></HEAD>");

        out.println(" 
<BODY>");

       

        //讀取Cookie

        Cookie cookies[] = request.getCookies() ;

        Cookie c = null ;

        if(cookies !=
null){

            for(int i=0;i<cookies.length;i++){

                c = cookies[i] ;

                if(c.getName().equals("username")){

                    out.println("使用者名稱: "+c.getValue());

                    out.println("<br>");

                }

                if(c.getName().equals("lastVisited")){

                    out.println("上次登入的時間: "+c.getValue());

                }

            }

        }else{

            out.println("No cookie !");

        }

       

        out.println(" 
</BODY>");

        out.println("</HTML>");

        out.flush();

        out.close();

    }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.