yxhxj2006

          常用鏈接

          統計

          最新評論

          Java中Cookie的使用

          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 :
          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)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 临猗县| 承德县| 九龙坡区| 潢川县| 晴隆县| 仙桃市| 托克托县| 唐山市| 兴化市| 咸宁市| 黑水县| 韩城市| 苏尼特右旗| 鄯善县| 福海县| 神池县| 扎兰屯市| 滦南县| 阳城县| 耿马| 同心县| 西林县| 乡宁县| 子长县| 屏南县| 陵川县| 稻城县| 巴林右旗| 桑日县| 凌海市| 双桥区| 景泰县| 东阿县| 合水县| 兰西县| 芦溪县| 漯河市| 高州市| 嘉峪关市| 林周县| 应用必备|