<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    明天的明天的明天

    用鍵盤改變生活

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      17 Posts :: 0 Stories :: 19 Comments :: 0 Trackbacks
    這個(gè)問題今天也搞得我很郁悶,寫入cookie時(shí)因?yàn)槲覍懭霑r(shí)是在下級(jí)路徑寫入的,讀取是要在上級(jí)路徑讀取,可是來來回回就是不行,死活在上級(jí)路徑讀取不了,在網(wǎng)上搜了很多文章,最后終于解決了,最后轉(zhuǎn)前輩寫的一篇關(guān)于cookie的文章。
    /************************************************************/
    一、設(shè)置  
      Cookie是通過HttpServletResponse的addCookie方法加入到Set-Cookie應(yīng)答頭中的  
      例如:  
              Cookie   userCookie   =   new   Cookie("user",   "admin");    
              response.addCookie(userCookie);  
      和設(shè)置有關(guān)系的還有以下兩個(gè)重要方法  
      1.setMaxAge  
      設(shè)置Cookie過期之前的時(shí)間,以秒計(jì)。如果不設(shè)置該值,則Cookie只在當(dāng)前會(huì)話內(nèi)有效,而且這些Cookie不會(huì)保存到磁盤上。  
      注意:刪除cookie就是通過該方法實(shí)現(xiàn)的。將要?jiǎng)h除的cookie的過期之前的時(shí)間指定為0就可以達(dá)到刪除該cookie的目的。  
      2.setPath  
      設(shè)置Cookie適用的路徑。如果不指定路徑,Cookie將返回給當(dāng)前頁面(JSP頁面或者Servlet的映射)所在目錄及其子目錄下的所有頁面。  
      注意:  
      A:所有的cookie都是有路徑的  
      B:該方法設(shè)置的路徑為客戶端路徑,即“/”代表服務(wù)器根目錄,而不是WEB應(yīng)用根目錄  
      C:該方法設(shè)置路徑時(shí),“/myWeb/”與“/myWeb”是不同的,要特別注意;前者可以關(guān)聯(lián)到服務(wù)器的myWeb目錄下,而或者則不可以。  
      D:該方法設(shè)置路徑時(shí),沒有相對(duì)目錄可言,即不論在哪個(gè)目錄下設(shè)置setPath(“/myWeb/”),該cookie都將關(guān)聯(lián)到服務(wù)器的myWeb目錄下(setPath(“/myWeb”)則不可以),而不是當(dāng)前目錄的myWeb的子目錄下;同樣,設(shè)置setPath(“myWeb/”)和setPath(“myWeb”)也不能關(guān)聯(lián)到當(dāng)前目錄的myWeb的子目錄下  
      這里有個(gè)奇怪的例子,就是在一個(gè)web應(yīng)用下設(shè)置的cookie可以在另一個(gè)web應(yīng)用下獲得(兩個(gè)web應(yīng)用在同一個(gè)服務(wù)器下)  
      目錄結(jié)構(gòu):在服務(wù)器根目錄上有web1和web2兩個(gè)目錄,在web1下有setcookie.jsp和getcookie.jsp、在web2下有g(shù)etcookie.jsp  
      web1下的setcookie.jsp  
      <%  
              Cookie   userCookie   =   new   Cookie("user",   "admin");    
              userCookie.setMaxAge(24*60*60);  
              userCookie.setPath("/web2/");  
              response.addCookie(userCookie);  
      %>  
      web1下的getcookie.jsp  
      <%  
              Cookie[]   cookie   =   request.getCookies();  
              String   user   =   new   String();  
              if   (   cookie   !=   null   )   {  
                      for   (int   i   =   0;   i   <   cookie.length;   i++)   {  
                              Cookie   myCookie   =   cookie[i];  
                              if   (myCookie.getName().equals("user"))   {  
                                      user   =   myCookie.getValue();  
                              }  
                      }  
              }  
      out.println("user   =   "   +   user);  
      %>  
      web2下的getcookie.jsp  
      <%  
              Cookie[]   cookie   =   request.getCookies();  
              String   user   =   new   String();  
              if   (   cookie   !=   null   )   {  
                      for   (int   i   =   0;   i   <   cookie.length;   i++)   {  
                              Cookie   myCookie   =   cookie[i];  
                              if   (myCookie.getName().equals("user"))   {  
                                      user   =   myCookie.getValue();  
                              }  
                      }  
              }  
      out.println("user   =   "   +   user);  
      %>  
      先訪問web1下的setcookie.jsp,然后分別訪問web1和web2下面的getcookie.jsp文件,你會(huì)發(fā)現(xiàn)奇怪的現(xiàn)象,web1下的getcookie.jsp中user為空而web2下的getcookie.jsp中user卻有值,這就實(shí)現(xiàn)了從一個(gè)web應(yīng)用下設(shè)置的cookie在另一個(gè)web應(yīng)用下獲得。  
      大多數(shù)人刪除cookie不成功都是因?yàn)槟夸浽颉R粋€(gè)典型的原因是在某一個(gè)目錄中設(shè)置了cookie(沒有調(diào)用setPath方法)卻在另一個(gè)目錄中刪除該cookie(其實(shí)是調(diào)用setMaxAge方法)  
       
      二、讀取  
      從客戶端讀取Cookie時(shí)調(diào)用的是HttpServletRequest的getCookies方法。該方法返回一個(gè)與HTTP請(qǐng)求頭中的內(nèi)容對(duì)應(yīng)的Cookie對(duì)象數(shù)組。得到這個(gè)數(shù)組之后,一般是用循環(huán)訪問其中的各個(gè)元素,調(diào)用getName檢查各個(gè)Cookie的名字,直至找到目標(biāo)Cookie。然后對(duì)這個(gè)目標(biāo)Cookie調(diào)用getValue,根據(jù)獲得的結(jié)果進(jìn)行其他處理。  
      注意:若JSP和Servlet所在目錄(Servlet為其映射目錄)的父目錄中有同名cookie,則request.getCookie()方法得到的Cookie數(shù)組中保存的是其父目錄中的cookie的信息;一、設(shè)置  
      Cookie是通過HttpServletResponse的addCookie方法加入到Set-Cookie應(yīng)答頭中的  
      例如:  
              Cookie   userCookie   =   new   Cookie("user",   "admin");    
              response.addCookie(userCookie);  
      和設(shè)置有關(guān)系的還有以下兩個(gè)重要方法  
      1.setMaxAge  
      設(shè)置Cookie過期之前的時(shí)間,以秒計(jì)。如果不設(shè)置該值,則Cookie只在當(dāng)前會(huì)話內(nèi)有效,而且這些Cookie不會(huì)保存到磁盤上。  
      注意:刪除cookie就是通過該方法實(shí)現(xiàn)的。將要?jiǎng)h除的cookie的過期之前的時(shí)間指定為0就可以達(dá)到刪除該cookie的目的。  
      2.setPath  
      設(shè)置Cookie適用的路徑。如果不指定路徑,Cookie將返回給當(dāng)前頁面(JSP頁面或者Servlet的映射)所在目錄及其子目錄下的所有頁面。  
      注意:  
      A:所有的cookie都是有路徑的  
      B:該方法設(shè)置的路徑為客戶端路徑,即“/”代表服務(wù)器根目錄,而不是WEB應(yīng)用根目錄  
      C:該方法設(shè)置路徑時(shí),“/myWeb/”與“/myWeb”是不同的,要特別注意;前者可以關(guān)聯(lián)到服務(wù)器的myWeb目錄下,而或者則不可以。  
      D:該方法設(shè)置路徑時(shí),沒有相對(duì)目錄可言,即不論在哪個(gè)目錄下設(shè)置setPath(“/myWeb/”),該cookie都將關(guān)聯(lián)到服務(wù)器的myWeb目錄下(setPath(“/myWeb”)則不可以),而不是當(dāng)前目錄的myWeb的子目錄下;同樣,設(shè)置setPath(“myWeb/”)和setPath(“myWeb”)也不能關(guān)聯(lián)到當(dāng)前目錄的myWeb的子目錄下  
      這里有個(gè)奇怪的例子,就是在一個(gè)web應(yīng)用下設(shè)置的cookie可以在另一個(gè)web應(yīng)用下獲得(兩個(gè)web應(yīng)用在同一個(gè)服務(wù)器下)  
      目錄結(jié)構(gòu):在服務(wù)器根目錄上有web1和web2兩個(gè)目錄,在web1下有setcookie.jsp和getcookie.jsp、在web2下有g(shù)etcookie.jsp  
      web1下的setcookie.jsp  
      <%  
              Cookie   userCookie   =   new   Cookie("user",   "admin");    
              userCookie.setMaxAge(24*60*60);  
              userCookie.setPath("/web2/");  
              response.addCookie(userCookie);  
      %>  
      web1下的getcookie.jsp  
      <%  
              Cookie[]   cookie   =   request.getCookies();  
              String   user   =   new   String();  
              if   (   cookie   !=   null   )   {  
                      for   (int   i   =   0;   i   <   cookie.length;   i++)   {  
                              Cookie   myCookie   =   cookie[i];  
                              if   (myCookie.getName().equals("user"))   {  
                                      user   =   myCookie.getValue();  
                              }  
                      }  
              }  
      out.println("user   =   "   +   user);  
      %>  
      web2下的getcookie.jsp  
      <%  
              Cookie[]   cookie   =   request.getCookies();  
              String   user   =   new   String();  
              if   (   cookie   !=   null   )   {  
                      for   (int   i   =   0;   i   <   cookie.length;   i++)   {  
                              Cookie   myCookie   =   cookie[i];  
                              if   (myCookie.getName().equals("user"))   {  
                                      user   =   myCookie.getValue();  
                              }  
                      }  
              }  
      out.println("user   =   "   +   user);  
      %>  
      先訪問web1下的setcookie.jsp,然后分別訪問web1和web2下面的getcookie.jsp文件,你會(huì)發(fā)現(xiàn)奇怪的現(xiàn)象,web1下的getcookie.jsp中user為空而web2下的getcookie.jsp中user卻有值,這就實(shí)現(xiàn)了從一個(gè)web應(yīng)用下設(shè)置的cookie在另一個(gè)web應(yīng)用下獲得。  
      大多數(shù)人刪除cookie不成功都是因?yàn)槟夸浽颉R粋€(gè)典型的原因是在某一個(gè)目錄中設(shè)置了cookie(沒有調(diào)用setPath方法)卻在另一個(gè)目錄中刪除該cookie(其實(shí)是調(diào)用setMaxAge方法)  
       
      二、讀取  
      從客戶端讀取Cookie時(shí)調(diào)用的是HttpServletRequest的getCookies方法。該方法返回一個(gè)與HTTP請(qǐng)求頭中的內(nèi)容對(duì)應(yīng)的Cookie對(duì)象數(shù)組。得到這個(gè)數(shù)組之后,一般是用循環(huán)訪問其中的各個(gè)元素,調(diào)用getName檢查各個(gè)Cookie的名字,直至找到目標(biāo)Cookie。然后對(duì)這個(gè)目標(biāo)Cookie調(diào)用getValue,根據(jù)獲得的結(jié)果進(jìn)行其他處理。  
      注意:若JSP和Servlet所在目錄(Servlet為其映射目錄)的父目錄中有同名cookie,則request.getCookie()方法得到的Cookie數(shù)組中保存的是其父目錄中的cookie的信息;
    posted on 2007-09-17 12:37 Endless 閱讀(1427) 評(píng)論(1)  編輯  收藏

    Feedback

    # re: 關(guān)于jsp cookie的上級(jí)路徑問題 2011-01-20 23:00 wq
    主樓的,你是如何搞定的?  回復(fù)  更多評(píng)論
      


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲日韩精品国产3区 | 哒哒哒免费视频观看在线www| 亚洲国产综合精品中文第一区| 在线播放免费人成毛片乱码| 亚洲自偷自偷在线制服| 97无码人妻福利免费公开在线视频| 国产亚洲AV无码AV男人的天堂| 91精品成人免费国产| 亚洲av永久无码精品漫画 | 中文字幕在线观看免费视频| 亚洲一本综合久久| 久久WWW免费人成一看片| 亚洲国产成人手机在线电影bd| aa级一级天堂片免费观看| 亚洲视频在线观看2018| 国产成人精品免费直播| 一级黄色片免费观看| 亚洲精品无码专区久久久| 足恋玩丝袜脚视频免费网站| 亚洲1区1区3区4区产品乱码芒果| 成人超污免费网站在线看| 国产亚洲男人的天堂在线观看| 在线观看亚洲精品福利片| **一级毛片免费完整视| 亚洲国产精华液2020| 亚洲欧洲一区二区三区| 无码人妻精品中文字幕免费| 亚洲香蕉在线观看| 中文字幕亚洲电影| 67194国产精品免费观看| 亚洲欧美在线x视频| 久久精品国产精品亚洲精品| 97在线线免费观看视频在线观看| 青青青亚洲精品国产| 亚洲另类激情综合偷自拍图| 波多野结衣在线免费观看| 一级特黄aaa大片免费看| 亚洲啪啪免费视频| 亚洲欧洲精品成人久久奇米网| 19禁啪啪无遮挡免费网站| 国产精品亚洲色图|