2012-05-12 23 views
0

如何讓ASP.NET在Java servlet中創建cookie?如何讓asp.net在Java servlet中創建cookie?

這是我的Cookie在ASP.NET

emid=11&eud=11&euid=33zU4Yq/p3k=&euseremail=F/zVoXtd4NoAd7yj6Z47gxFVaMCMYha/La6IzlC+xQo=&euserid=33zU4Yq/p3k=&emdn=testing 

但是,當我嘗試調用它的Servlet只打印:EMID [第一隻等於(=)符號之前打印的起始字符串]

我用下面的代碼在Servlet來打印餅乾..

 Cookie cookie = null; 
     Cookie[] cookies = null; 
     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()+" \n"); 
      } 
     }else{ 
      out.println(
       "<h2>No cookies founds</h2>"); 
     } 

請告訴我錯我的代碼?

+0

只是想知道,功能要求是什麼?發送一個像數據一樣的查詢字符串作爲一個cookie而不是一個查詢字符串是相當奇怪的。你確定你沒有混合一些基本概念嗎? – BalusC

回答

1

等號字符是cookie值中的保留字符。符合規範的解決方法是通過用雙引號括起來引用cookie值。但是,有些瀏覽器不能很好地處理這個問題。如果您使用的是Tomcat,則可以將系統屬性-Dorg.apache.tomcat.util.http.ServerCookie.ALLOW_EQUALS_IN_VALUE=true設置爲允許在Cookie值中等於。

+0

我是否爲我的網站專門添加了這個值,或者這將適用於該Apache系統下的所有網站? –

+0

它適用於整個Tomcat實例,因此在該實例上部署的所有Web應用程序都將受到影響。 –

+0

我如何使它僅用於我的網站或特定的servlet –