Servlet Cookie取不到值原因

2021-09-07 09:12:51 字數 875 閱讀 8132

現象:

在測試帶cookie的http請求時發現,服務端用request.getheader("cookie")可以去到值; 但是用request.getcookies()卻不行

cookie mycookies = request.getcookies();中永遠獲取不到uid的值;

(80埠號除外)

原因:

查了瀏覽器的具體cookie值,發現

訪問的時候,cookie值放在localhost下,伺服器自動生成的sessionid也是存放在localhost路徑下。

訪問的時候,cookie uid值放在127.0.0.1:8080下,在127.0.0.1:8080下的cookie服務端的servlet永遠都獲取不到;而伺服器自動生成的sessionid則是在127.0.0.1下,與uid存放位置不同。

所以在服務端下發cookie的時候,

string host=request.getheader("host");

需要修改為

if(host.indexof(":")>-1)

或者放棄設定mycookie.setdomain(host);

這樣cookie值也是儲存在127.0.0.1下的,與埠號不關聯

當然是伺服器已經有網域名稱的就不會出現埠號下獲取不到cookie的值

解決辦法:

string cookie=request.getheader("cookie");

cookie mycookies = request.getcookies();

加上前面一行後面即可取到,還是有點莫名其妙。

Servlet,cookie,域物件知識點整理

2.新建的html action名稱必須跟url pattern一致,action名稱與對應的sevrlet類一致,ajax提交的的方式在url裡面填入對應的sevrlet類 四.httpservletrequest 物件 主要作用是用來接收客戶端傳送過來的請求資訊 1.主要方法 2.獲取請求頭 五...

K好數 不取模

題目 如果乙個自然數n的k進製表示中任意的相鄰的兩位都不是相鄰的數字,那麼我們就說這個數是k好數。求l位k進製數中k好數的數目。例如k 4,l 2的時候,所有k好數為11 13 20 22 30 31 33 共7個。給定k l,求l位k好數的數目。輸入格式 從檔案讀入資料,第一行為k 其中k 16,...

字串B在A出現的次數(不取模 取模的模板)

題目鏈結 給定乙個字串 a 和乙個字串 b,求 b 在 a 中的出現次數。a 中不同位置出現的 b 可重疊。input 輸入共兩行,分別是字串 a 和字串 b。output 輸出乙個整數,表示 b 在 a 中的出現次數。sample input zyzyzyz zyzsample output 3h...