<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國際加速解決方案。 廣告
                # Servlet 中的`Cookie` > 原文: [https://beginnersbook.com/2013/05/servlet-cookies/](https://beginnersbook.com/2013/05/servlet-cookies/) 在上一篇指南中,我介紹了 Servlet 中的[會話](https://beginnersbook.com/2013/05/http-session/)。在這里,我們將討論用于會話管理的`Cookie`。讓我們回顧一下上一篇教程中的一些內容,以便我們可以關聯會話和`cookie`。當用戶第一次訪問 Web 應用時,servlet 容器通過調用`request.getSession()`來創建新的`HttpSession`對象。為會話分配唯一??的 ID。Servlet 容器還在 HTTP 響應的標頭中設置`Cookie`,其中包含`cookie`名稱和唯一會話 ID 作為其值。 `cookie`存儲在用戶瀏覽器中,客戶端(用戶的瀏覽器)將此`cookie`發送回服務器以獲取所有后續請求,直到`cookie`有效。Servlet 容器檢查`cookie`的請求標頭,并從`cookie`獲取會話信息,并使用服務器內存中的關聯會話。 會話在`web.xml`中的標簽中指定的時間內保持活動狀態。如果未在`web.xml`中設置標記,則會話將保持活動狀態 30 分鐘。 **只要用戶的瀏覽器正在運行**,`Cookie`就會保持活動狀態,一旦瀏覽器關閉,`cookie`和相關的會話信息就會被破壞。因此,當用戶再次打開瀏覽器并向 Web 服務器發送請求時,將創建新會話。 ## `Cookie`的類型 我們可以根據`Cookie`的到期時間對`Cookie`進行分類: 1. 會話 2. 持久 **1)會話`Cookie`:** 會話`Cookie`沒有到期時間。它存在于瀏覽器內存中。一旦 Web 瀏覽器關閉,該`cookie`就會被破壞。 **2)持久性`Cookie`:** 與會話`Cookie`不同,它們具有到期時間,它們存儲在用戶硬盤中,并根據到期時間被銷毀。 ## 如何將`Cookie`發送給客戶 以下是向客戶端發送`cookie`的步驟: 1. 創建一個`Cookie`對象。 2. 設置最大年齡。 3. 將`Cookie`放在 HTTP 響應標頭中。 #### 1)創建一個`Cookie`對象: ```java Cookie c = new Cookie("userName","Chaitanya"); ``` #### 2)設置最大年齡: 通過使用`setMaxAge()`方法,我們可以設置特定`cookie`的最大年齡(以秒為單位)。 ```java c.setMaxAge(1800); ``` #### 3)將`Cookie`放在 HTTP 響應頭中: 我們可以通過`response.addCookie()`方法將`cookie`發送到客戶端瀏覽器。 ```java response.addCookie(c); ``` ## 如何閱讀`cookie` ```java Cookie c[]=request.getCookies(); //c.length gives the cookie count for(int i=0;i<c.length;i++){ out.print("Name: "+c[i].getName()+" & Value: "+c[i].getValue()); } ``` ## java servlet 中的`Cookie`示例 `index.html` ```java <form action="login"> User Name:<input type="text" name="userName"/><br/> Password:<input type="password" name="userPassword"/><br/> <input type="submit" value="submit"/> </form> ``` `MyServlet1.java` ```java import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class MyServlet1 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) { try{ response.setContentType("text/html"); PrintWriter pwriter = response.getWriter(); String name = request.getParameter("userName"); String password = request.getParameter("userPassword"); pwriter.print("Hello "+name); pwriter.print("Your Password is: "+password); //Creating two cookies Cookie c1=new Cookie("userName",name); Cookie c2=new Cookie("userPassword",password); //Adding the cookies to response header response.addCookie(c1); response.addCookie(c2); pwriter.print("<br><a href='welcome'>View Details</a>"); pwriter.close(); }catch(Exception exp){ System.out.println(exp); } } } ``` `MyServlet2.java` ```java import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class MyServlet2 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response){ try{ response.setContentType("text/html"); PrintWriter pwriter = response.getWriter(); //Reading cookies Cookie c[]=request.getCookies(); //Displaying User name value from cookie pwriter.print("Name: "+c[1].getValue()); //Displaying user password value from cookie pwriter.print("Password: "+c[2].getValue()); pwriter.close(); }catch(Exception exp){ System.out.println(exp); } } } ``` `web.xml` ```java <web-app> <display-name>BeginnersBookDemo</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> <servlet> <servlet-name>Servlet1</servlet-name> <servlet-class>MyServlet1</servlet-class> </servlet> <servlet-mapping> <servlet-name>Servlet1</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping> <servlet> <servlet-name>Servlet2</servlet-name> <servlet-class>MyServlet2</servlet-class> </servlet> <servlet-mapping> <servlet-name>Servlet2</servlet-name> <url-pattern>/welcome</url-pattern> </servlet-mapping> </web-app> ``` **輸出:** **歡迎畫面:** ![](https://img.kancloud.cn/73/7e/737eaf9448bfc1e057123354b4a7d712_700x137.jpg) **點擊提交后:** ![](https://img.kancloud.cn/8f/ec/8fec6ec41846806be61e47dc105108e7_700x109.jpg) **點擊查看詳情后:** ![](https://img.kancloud.cn/86/02/86026124d8f9fd65267249c34981d668_700x99.jpg) ## `Cookie`類的方法 `public void setComment(String purpose)`:此方法用于在`cookie`中設置注釋。這主要用于描述`cookie`的用途。 `public String getComment()`:返回描述此`cookie`用途的注釋,如果`cookie`沒有注釋,則返回`null`。 `public void setMaxAge(int expiry)`:以秒為單位設置`cookie`的最大年齡。 `public int getMaxAge()`:獲取此`Cookie`的最大年齡(以秒為單位)。默認情況下,返回 -1,表示`cookie`將持續到瀏覽器關閉。 `public String getName()`:返回`cookie`的名稱。創建后無法更改名稱。 `public void setValue(String newValue)`:為此`Cookie`指定一個新值。 `public String getValue()`:獲取此`Cookie`的當前值。 上面的列表只有常用的方法。要獲得`Cookie`類的完整方法列表,請參閱[官方文檔](https://docs.oracle.com/javaee/7/api/javax/servlet/http/Cookie.html)。
                  <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>

                              哎呀哎呀视频在线观看