<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # JSP Cookies 處理 Cookies是存儲在客戶機的文本文件,它們保存了大量軌跡信息。在servlet技術基礎上,JSP顯然能夠提供對HTTP cookies的支持。 通常有三個步驟來識別回頭客: * 服務器腳本發送一系列cookies至瀏覽器。比如名字,年齡,ID號碼等等。 * 瀏覽器在本地機中存儲這些信息,以備不時之需。 * 當下一次瀏覽器發送任何請求至服務器時,它會同時將這些cookies信息發送給服務器,然后服務器使用這些信息來識別用戶或者干些其它事情。 本章節將會傳授您如何去設置或重設cookie的方法,還有如何訪問它們及如何刪除它們。 ## Cookie剖析 Cookies通常在HTTP信息頭中設置(雖然JavaScript能夠直接在瀏覽器中設置cookies)。在JSP中,設置一個cookie需要發送如下的信息頭給服務器: ``` HTTP/1.1 200 OK Date: Fri, 04 Feb 2000 21:03:38 GMT Server: Apache/1.3.9 (UNIX) PHP/4.0b3 Set-Cookie: name=xyz; expires=Friday, 04-Feb-07 22:03:38 GMT; path=/; domain=tutorialspoint.com Connection: close Content-Type: text/html ``` 正如您所見,Set-Cookie信息頭包含一個鍵值對,一個GMT(格林尼治標準)時間,一個路徑,一個域名。鍵值對會被編碼為URL。有效期域是個指令,告訴瀏覽器在什么時候之后就可以清除這個cookie。 如果瀏覽器被配置成可存儲cookies,那么它將會保存這些信息直到過期。如果用戶訪問的任何頁面匹配了cookie中的路徑和域名,那么瀏覽器將會重新將這個cookie發回給服務器。瀏覽器端的信息頭長得就像下面這樣: ``` GET / HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/4.6 (X11; I; Linux 2.2.6-15apmac ppc) Host: zink.demon.co.uk:1126 Accept: image/gif, */* Accept-Encoding: gzip Accept-Language: en Accept-Charset: iso-8859-1,*,utf-8 Cookie: name=xyz ``` JSP腳本通過request對象中的getCookies()方法來訪問這些cookies,這個方法會返回一個Cookie對象的數組。 ## Servlet Cookies 方法 下表列出了Cookie對象中常用的方法: | **方法** | **描述** | | --- | --- | | **public void setDomain(String pattern)** |設置cookie的域名,比如w3cschool.cc | | **public String getDomain()** |獲取cookie的域名,比如w3cschool.cc | | **public void setMaxAge(int expiry)** |設置cookie有效期,以秒為單位,默認有效期為當前session的存活時間 | | **public int getMaxAge()** |獲取cookie有效期,以秒為單位,默認為-1 ,表明cookie會活到瀏覽器關閉為止 | | **public String getName()** |返回 cookie的名稱,名稱創建后將不能被修改 | | **public void setValue(String newValue)** |設置 cookie的值 | | **public String getValue()** |獲取cookie的值 | | **public void setPath(String uri)** |設置cookie 的路徑,默認為當前頁面目錄下的所有URL,還有此目錄下的所有子目錄 | | **public String getPath()** |獲取cookie 的路徑 | | **public void setSecure(boolean flag)** |指明cookie是否要加密傳輸 | | **public void setComment(String purpose)** |設置注釋描述 cookie的目的。當瀏覽器將cookie展現給用戶時,注釋將會變得非常有用 | | **public String getComment()** |返回描述cookie目的的注釋,若沒有則返回null | ## 使用JSP設置Cookies 使用JSP設置cookie包含三個步驟: **(1)創建一個Cookie對象:** 調用Cookie的構造函數,使用一個cookie名稱和值做參數,它們都是字符串。 ``` Cookie cookie = new Cookie("key","value"); ``` 請務必牢記,名稱和值中都不能包含空格或者如下的字符: ``` [ ] ( ) = , " / ? @ : ; ``` **(2) 設置有效期:**調用setMaxAge()函數表明cookie在多長時間(以秒為單位)內有效。下面的操作將有效期設為了24小時。 ``` cookie.setMaxAge(60*60*24); ``` **(3) 將cookie發送至HTTP響應頭中:**調用response.addCookie()函數來向HTTP響應頭中添加cookies。 ``` response.addCookie(cookie); ``` ### 實例演示 ``` <% // 為 first_name 和 last_name設置cookie Cookie firstName = new Cookie("first_name", request.getParameter("first_name")); Cookie lastName = new Cookie("last_name", request.getParameter("last_name")); // 設置cookie過期時間為24小時。 firstName.setMaxAge(60*60*24); lastName.setMaxAge(60*60*24); // 在響應頭部添加cookie response.addCookie( firstName ); response.addCookie( lastName ); %> <html> <head> <title>Setting Cookies</title> </head> <body> <center> <h1>Setting Cookies</h1> </center> <ul> <li><p><b>First Name:</b> <%= request.getParameter("first_name")%> </p></li> <li><p><b>Last Name:</b> <%= request.getParameter("last_name")%> </p></li> </ul> </body> </html> ``` 將上面兩個文件放在&lt;Tomcat安裝目錄&gt;/webapps/ROOT目錄下,然后訪問http://localhost:8080/hello.jsp,將會得到如下輸出結果: ![](https://box.kancloud.cn/2015-12-15_566fe70414bc1.jpg) 試著輸入First Name和Last Name,然后點擊提交按鈕,它將會在您的屏幕中顯示first name和last name,并且設置first name和last name兩個cookie,下一次點擊提交按鈕時會發給服務器。 ## 使用JSP讀取Cookies 想要讀取cookies,您就需要調用request.getCookies()方法來獲得一個javax.servlet.http.Cookie對象的數組,然后遍歷這個數組,使用getName()方法和getValue()方法來獲取每一個cookie的名稱和值。 <h3實例演示< h3=""> 讓我們來讀取上個例子中的cookies。 ``` <html> <head> <title>Reading Cookies</title> </head> <body> <center> <h1>Reading Cookies</h1> </center> <% Cookie cookie = null; Cookie[] cookies = null; // 獲取cookies的數據,是一個數組 cookies = request.getCookies(); if( cookies != null ){ out.println("<h2> Found Cookies Name and Value</h2>"); for (int i = 0; i < cookies.length; i++){ cookie = cookies[i]; out.print("Name : " + cookie.getName( ) + ", "); out.print("Value: " + cookie.getValue( )+" <br/>"); } }else{ out.println("<h2>No cookies founds</h2>"); } %> </body> </html> ``` 如果您把first name cookie設置成"John",last name設置成"Player",訪問 http://localhost:8080/main.jsp,將會得到如下輸出結果: ``` Found Cookies Name and Value Name : first_name, Value: John Name : last_name, Value: Player ``` ## 使用JSP刪除Cookies 刪除cookies非常簡單。如果您想要刪除一個cookie,按照下面給的步驟來做就行了: * 獲取一個已經存在的cookie然后存儲在Cookie對象中。 * 將cookie的有效期設置為0。 * 將這個cookie重新添加進響應頭中。 ### 實例演示 下面的程序刪除一個名為"first_name"的cookie,當您下次運行main.jsp時,first_name將會為null。 ``` <html> <head> <title>Reading Cookies</title> </head> <body> <center> <h1>Reading Cookies</h1> </center> <% Cookie cookie = null; Cookie[] cookies = null; // 獲取當前域名下的cookies,是一個數組 cookies = request.getCookies(); if( cookies != null ){ out.println("<h2> Found Cookies Name and Value</h2>"); for (int i = 0; i < cookies.length; i++){ cookie = cookies[i]; if((cookie.getName( )).compareTo("first_name") == 0 ){ cookie.setMaxAge(0); response.addCookie(cookie); out.print("Deleted cookie: " + cookie.getName( ) + "<br/>"); } out.print("Name : " + cookie.getName( ) + ", "); out.print("Value: " + cookie.getValue( )+" <br/>"); } }else{ out.println( "<h2>No cookies founds</h2>"); } %> </body> </html> ``` 訪問它,將會得到如下輸出結果: ``` Cookies Name and Value Deleted cookie : first_name Name : first_name, Value: John Name : last_name, Value: Player ``` 再次訪問http://localhost:8080/main.jsp,將會得到如下結果: ``` Found Cookies Name and Value Name : last_name, Value: Player ``` 您也可以手動在瀏覽器中刪除cookies。點擊Tools菜單項,然后選擇Internet Options,點擊Delete Cookies,就能刪除所有cookies了。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看