內(nèi)容來(lái)源于網(wǎng)絡(luò),并結(jié)合自己的整理 Cookie 使用說(shuō)明 用到的類 javax.servlet.http.Cookie 構(gòu)造cookie 的方法 : new Cookie(鍵,值) 構(gòu)造函數(shù)如下: Cookie(java.lang.String name, java.lang.String value) 把cookie發(fā)送給客戶端 HttpServletResponse.addCookie(javax.servlet.http.Cookie) 取得客戶瀏覽器的cookie,返回的是數(shù)組 HttpServletRequest.getCookies() getComment/setComment 獲取/設(shè)置Cookie的注釋。 getDomain/setDomain 獲取/設(shè)置Cookie適用的域。一般地,Cookie只返回給與發(fā)送它的服務(wù)器名字完全相同的服務(wù)器。使用這里的方法可以指示瀏覽器把Cookie返回給同一域內(nèi)的其他服務(wù)器。注意域必須以點(diǎn)開(kāi)始(例如.sitename.com),非國(guó)家類的域(如.com,.edu,.gov)必須包含兩個(gè)點(diǎn),國(guó)家類的域(如.com.cn,.edu.uk)必須包含三個(gè)點(diǎn)。 getMaxAge/setMaxAge 獲取/設(shè)置Cookie過(guò)期之前的時(shí)間,以秒計(jì)。如果不設(shè)置該值,則Cookie只在當(dāng)前會(huì)話內(nèi)有效,即在用戶關(guān)閉瀏覽器之前有效,而且這些Cookie不會(huì)保存到磁盤(pán)上。 若生存時(shí)間為負(fù)值,代表瀏覽器關(guān)閉Cookie即消失。生存時(shí)間為0,代表刪除Cookie,生存時(shí)間為正數(shù),代表Cookie存在多少秒。 getName/setName 獲取/設(shè)置Cookie的名字。本質(zhì)上,名字和值是我們始終關(guān)心的兩個(gè)部分。由于HttpServletRequest的getCookies方法返回的是一個(gè)Cookie對(duì)象的數(shù)組,因此通常要用循環(huán)來(lái)訪問(wèn)這個(gè)數(shù)組查找特定名字,然后用getValue檢查它的值。 getPath/setPath 獲取/設(shè)置Cookie適用的路徑。如果不指定路徑,Cookie將返回給當(dāng)前頁(yè)面所在目錄及其子目錄下的所有頁(yè)面。這里的方法可以用來(lái)設(shè)定一些更一般的條件。例如,someCookie.setPath("/"),此時(shí)服務(wù)器上的所有頁(yè)面都可以接收到該Cookie。
getSecure/setSecure 獲取/設(shè)置一個(gè)boolean值,該值表示是否Cookie只能通過(guò)加密的連接(即SSL)發(fā)送。 getValue/setValue 獲取/設(shè)置Cookie的值。如前所述,名字和值實(shí)際上是我們始終關(guān)心的兩個(gè)方面。不過(guò)也有一些例外情況,比如把名字作為邏輯標(biāo)記(也就是說(shuō),如果名字存在,則表示true)。 getVersion/setVersion 獲取/設(shè)置Cookie所遵從的協(xié)議版本。默認(rèn)版本0(遵從原先的Netscape規(guī)范);版本1遵從RFC 2109 , 但尚未得到廣泛的支持。 幾個(gè)Cookie工具函數(shù),獲取指定名字的Cookie值 該函數(shù)是ServletUtilities.java的一部分。getCookieValue通過(guò)循環(huán)依次訪問(wèn)Cookie對(duì)象數(shù)組的各個(gè)元素,尋找是否有指定名字的Cookie,如找到,則返回該Cookie的值;否則,返回參數(shù)中給出的默認(rèn)值。getCookieValue能夠在一定程度上簡(jiǎn)化Cookie值的提取。 --------------- cookie保存在哪里 在Windows 9X系統(tǒng)計(jì)算機(jī)中,Cookie文件的存放位置為C:\Windows\Cookies,在Windows NT/2000/ XP的計(jì)算機(jī)中,Cookie文件的存放位置為C:\Documents and Settings\用戶名\Cookie文件夾。
---------------- 下面是代碼,是直接從項(xiàng)目中實(shí)際代碼 -
-
-
-
-
-
-
-
-
-
- public static void setReffer(final HttpServletResponse response, final String userName, final String password)
- {
- final String sSession = password + userName;
- Cookie oItem;
-
- oItem = new Cookie("SSO", CookieUtil.encode(sSession));
- oItem.setDomain(.google.com);
- oItem.setMaxAge(-1);
- oItem.setPath("/");
- response.addCookie(oItem);
- }
-
-
-
-
-
-
- public static String[] checkReffer(final HttpServletRequest request)
- {
- final Cookie[] oCookies = request.getCookies();
- if (oCookies != null)
- {
- for (final Cookie oItem : oCookies)
- {
- final String sName = oItem.getName();
-
- if (sName.equals("SSO"))
- {
- final String sSession = CookieUtil.decode(oItem.getValue());
- if (sSession.length() > 40)
- {
-
- final String sUser = sSession.substring(40);
- final String sPass = sSession.substring(0, 40);
- final String[] strArr =
- { sUser, sPass };
- return strArr;
- }
- }
- }
- }
- return null;
- }
|