<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # JSPCookie 處理 Cookie 是存儲在客戶機的文本文件,它們保存了大量軌跡信息。在 Servlet 技術基礎上,JSP 顯然能夠提供對 HTTP cookie 的支持。 通常有三個步驟來識別回頭客: * 服務器腳本發送一系列 cookie 至瀏覽器。比如名字,年齡,ID 號碼等等。 * 瀏覽器在本地機中存儲這些信息,以備不時之需。 * 當下一次瀏覽器發送任何請求至服務器時,它會同時將這些 cookie 信息發送給服務器,然后服務器使用這些信息來識別用戶或者干些其它事情。 本章節將會傳授您如何去設置或重設 cookie 的方法,還有如何訪問它們及如何刪除它們。 > JSP Cookie 處理需要對中文進行編碼與解碼,方法如下: > > ~~~ > String str = java.net.URLEncoder.encode("中文", "UTF-8"); //編碼 > String str = java.net.URLDecoder.decode("編碼后的字符串","UTF-8"); // 解碼 > ~~~ * * * ## Cookie 剖析 Cookie 通常在 HTTP 信息頭中設置(雖然 JavaScript 能夠直接在瀏覽器中設置 cookie)。在 JSP 中,設置一個 cookie 需要發送如下的信息頭給服務器: ~~~ HTTP/1.1 200 OK Date: Fri, 04 Feb 2015 21:03:38 GMT Server: Apache/1.3.9 (UNIX) PHP/4.0b3 Set-Cookie: name=runoob; expires=Friday, 04-Feb-17 22:03:38 GMT; path=/; domain=cms.yiniuedu.com Connection: close Content-Type: text/html ~~~ 正如您所見,Set-Cookie 信息頭包含一個鍵值對,一個 GMT(格林尼治標準)時間,一個路徑,一個域名。鍵值對會被編碼為URL。有效期域是個指令,告訴瀏覽器在什么時候之后就可以清除這個 cookie。 如果瀏覽器被配置成可存儲 cookie,那么它將會保存這些信息直到過期。如果用戶訪問的任何頁面匹配了 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() 方法來訪問這些 cookie,這個方法會返回一個 Cookie 對象的數組。 * * * ## Servlet Cookie 方法 下表列出了 Cookie 對象中常用的方法: | **序號** | **方法****&****描述** | | --- | --- | | 1 | **public void setDomain(String pattern)** 設置 cookie 的域名,比如 cms.yiniuedu.com | | 2 | **public String getDomain()** 獲取 cookie 的域名,比如 cms.yiniuedu.com | | 3 | **public void setMaxAge(int expiry)** 設置 cookie 有效期,以秒為單位,默認有效期為當前session的存活時間 | | 4 | **public int getMaxAge()** 獲取 cookie 有效期,以秒為單位,默認為-1 ,表明cookie會活到瀏覽器關閉為止 | | 5 | **public String getName()** 返回 cookie 的名稱,名稱創建后將不能被修改 | | 6 | **public void setValue(String newValue)** 設置 cookie 的值 | | 7 | **public String getValue()** 獲取cookie的值 | | 8 | **public void setPath(String uri)** 設置 cookie 的路徑,默認為當前頁面目錄下的所有 URL,還有此目錄下的所有子目錄 | | 9 | **public String getPath()** 獲取 cookie 的路徑 | | 10 | **public void setSecure(boolean flag)** 指明 cookie 是否要加密傳輸 | | 11 | **public void setComment(String purpose)** 設置注釋描述 cookie 的目的。當瀏覽器將 cookie 展現給用戶時,注釋將會變得非常有用 | | 12 | **public String getComment()** 返回描述 cookie 目的的注釋,若沒有則返回 null | * * * ## 使用 JSP 設置 cookie 使用 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 響應頭中添加 cookie。 ~~~ response.addCookie(cookie); ~~~ * * * ### 實例演示 main.jsp 文件代碼如下所示: ~~~ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.net.*" %> <% // 編碼,解決中文亂碼 String str = URLEncoder.encode(request.getParameter("name"),"utf-8"); // 設置 name 和 url cookie Cookie name = new Cookie("name", ???????? str); Cookie url = new Cookie("url", ???????????? request.getParameter("url")); // 設置cookie過期時間為24小時。 name.setMaxAge(60*60*24); url.setMaxAge(60*60*24); // 在響應頭部添加cookie response.addCookie( name ); response.addCookie( url ); %> <html> <head> <title>設置 Cookie</title> </head> <body> <h1>設置 Cookie</h1> <ul> <li><p><b>網站名:</b> <%= request.getParameter("name")%> </p></li> <li><p><b>網址:</b> <%= request.getParameter("url")%> </p></li> </ul> </body> </html> ~~~ 以下是一個簡單的 HTML 表單通過 GET 方法將客戶端數據提交到 main.jsp 文件中,并設置 cookie: ~~~ <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>JSP教程</title> </head> <body> <form action="main.jsp" method=GET> 站點名: <input type="text" name="name"> <br /> 網址: <input type="text" name="url" /> <input type="submit" value="提交" /> </form> </body> </html> ~~~ 將以上 HTML 代碼保存到 test.htm 文件中。 將該文件放置于當前 jsp 項目的 WebContent 目錄下(與 main.jsp 同一個目錄)。 通過訪問 http://localhost:8080/testjsp/test.html 提交表單數據到 main.jsp 文件,演示 Gif 圖如下所示: 試著輸入 "站點名" 和 "網址",然后點擊提交按鈕,它將會在您的屏幕中顯示 "站點名" 和 "網址",并且設置 "站點名" 和 "網址" 的兩個 cookie。 * * * ## 使用 JSP 讀取 Cookie 想要讀取 cookie,您就需要調用 request.getCookies() 方法來獲得一個 javax.servlet.http.Cookie 對象的數組,然后遍歷這個數組,使用 getName() 方法和 getValue() 方法來獲取每一個 cookie 的名稱和值。 讓我們來讀取上個例子中的cookie, 以下為 cookie.jsp 文件代碼: ~~~ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.net.*" %> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>獲取 Cookie</title> </head> <body> <% Cookie cookie = null; Cookie[] cookies = null; // 獲取 cookies 的數據,是一個數組 cookies = request.getCookies(); if( cookies != null ){ out.println("<h2> 查找 Cookie 名與值</h2>"); for (int i = 0; i < cookies.length; i++){ cookie = cookies[i]; out.print("參數名 : " + cookie.getName()); out.print("<br>"); out.print("參數值: " + URLDecoder.decode(cookie.getValue(), "utf-8") +" <br>"); out.print("------------------------------------<br>"); } }else{ out.println("<h2>沒有發現 Cookie</h2>"); } %> </body> </html> ~~~ 瀏覽器訪問后,輸出結果為: ![](https://www.runoob.com/wp-content/uploads/2014/01/C6A7341F-029A-4244-8B38-BE010E391091.jpg) * * * ## 使用 JSP 刪除 cookie 刪除 cookie 非常簡單。如果您想要刪除一個 cookie,按照下面給的步驟來做就行了: * 獲取一個已經存在的 cookie 然后存儲在 Cookie 對象中。 * 將 cookie 的有效期設置為 0。 * 將這個 cookie 重新添加進響應頭中。 * * * ### 實例演示 下面的程序刪除一個名為 "name" 的 cookie,當您第二次運行 cookie.jsp時,name 將會為 null。 ~~~ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.net.*" %> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>獲取 Cookie</title> </head> <body> <% Cookie cookie = null; Cookie[] cookies = null; // 獲取當前域名下的cookies,是一個數組 cookies = request.getCookies(); if( cookies != null ){ ???? out.println("<h2> 查找 Cookie 名與值</h2>"); for (int i = 0; i < cookies.length; i++){ cookie = cookies[i]; if((cookie.getName( )).compareTo("name") == 0 ){ cookie.setMaxAge(0); response.addCookie(cookie); out.print("刪除 Cookie: " + cookie.getName( ) + "<br/>"); } out.print("參數名 : " + cookie.getName()); out.print("<br>"); out.print("參數值: " + URLDecoder.decode(cookie.getValue(), "utf-8") +" <br>"); out.print("------------------------------------<br>"); } }else{ ???? out.println("<h2>沒有發現 Cookie</h2>"); } %> </body> </html> ~~~ 通過瀏覽器訪問,輸出結果為: ![](https://www.runoob.com/wp-content/uploads/2014/01/C6A7341F-029A-4244-8B38-BE010E391091.jpg) 再次訪問**http://localhost:8080/testjsp/cookie.jsp**,將會得到如下結果: ![](https://www.runoob.com/wp-content/uploads/2014/01/7BF1C669-F7A4-4245-B7B0-B79BBB272604.jpg) 可以看到名為 "name" 的 cookie 已經不見了。 您也可以手動在瀏覽器中刪除 cookie。IE 瀏覽器通過點擊 Tools 菜單項,然后選擇 Internet Options,點擊 Delete Cookies,就能刪除所有 cookie 。
                  <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>

                              哎呀哎呀视频在线观看