yxhxj2006

          常用鏈接

          統(tǒng)計

          最新評論

          Java中Cookie的使用

          1、Cookie的來歷與作用

          Cookie是WEB服務(wù)器通過瀏覽器保存在WWW用戶端硬盤上的一個文本文件,這個文本文件中包含了文本信息。
          文本信息的內(nèi)容以“名/值”對(key/value)的形式進(jìn)行存儲。
          可以讓W(xué)EB開發(fā)者通過程序讀寫這個文本文件。
          XP中保存Cookie的目錄是“C://Documents and Settings\用戶名\Cookies”
          Cookie的作用
          解決瀏覽器用戶與Web服務(wù)器之間無狀態(tài)通信。
          2Cookie編程

          //創(chuàng)建對象
          Date date = new Date() ;
          Cookie c = new Cookie("lastVisited",date.toString()) ;
          //設(shè)定有效時間  以s為單位
          c.setMaxAge(60) ;
          //設(shè)置Cookie路徑和域名
          c.setPath("/") ;
          c.setDomain(".zl.org") ;  //域名要以“.”開頭
          //發(fā)送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的有效時間設(shè)為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的大小和數(shù)量是有限制的。
          ·Cookie在個人硬盤上所保存的文本信息是以明文格式進(jìn)行保存的,沒有任何的加密措施。
          ·瀏覽器用戶可以設(shè)定不使用Cookie。
          5、實例:Servlet中的Cookie編程

           cookieInput.html頁面
           
          SetCookie.java
           
          GetCookie.java
           
           
          cookieInput.html頁面中的參數(shù)提交到SetCookie.java中,由SetCookie.java保存在瀏覽器的Cookie中,在SerCookie.java中鏈接到GetCookie.java從而讀取剛剛保存的Cookie。

          SetCookie.java :
          public void 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:
          public void 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();
              }

          posted on 2013-11-25 22:15 奮斗成就男人 閱讀(174) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 盘锦市| 宝鸡市| 遂平县| 阿克苏市| 天水市| 喜德县| 鹿泉市| 广州市| 凤冈县| 牟定县| 建湖县| 洮南市| 体育| 临夏市| 嘉荫县| 长宁区| 台东县| 西乌| 郁南县| 沈丘县| 定南县| 时尚| 中方县| 天长市| 郁南县| 河间市| 孝昌县| 时尚| 嘉祥县| 青海省| 灯塔市| 龙州县| 尼玛县| 乐亭县| 伊金霍洛旗| 桦川县| 鄢陵县| 永春县| 中江县| 图木舒克市| 忻州市|