1. 程式人生 > >cookie存儲userID所遇到的問題

cookie存儲userID所遇到的問題

inf ttr sci ont tro con 分享圖片 lin java.net

*)問題:control charater in cookie value or attribute

轉自:https://blog.csdn.net/weixin_36380516/article/details/53905737

Cookie中只能包含ASCII的編碼。當中文寫入cookie時,會亂碼報錯。

##)解決方法:

存入cookie之前,使用java.net.URLEncoder編碼

技術分享圖片

讀取cookie的時候,使用java.net.URLDecoder解碼

技術分享圖片

##)或者自己寫一種編碼方式,在存入的時候編碼、取出的時候解碼。


*)問題:在本地Windows+tomcat環境下,cookie的存取正常。但項目放到Linux+tomcat環境下時,存入的cookie(鍵-值),取的時候取不到鍵對應的值,取出為null,或者取出的值不是存進去的。為了解決這個問題,for循環cookie中的鍵,打印出的value也沒有存進去的那一個。

問題原因:項目中的編碼、解碼方式不是java.net.URLDecoder和Encoder。而是自己寫的一套編碼、解碼方式。這種方式在Windows下可正常運轉,但在Linux下編碼解碼有問題。所以造成了上面奇怪的問題。

解決方法:非中文的值,存入cookie時,不再進行編碼、解碼,直接存入cookie。

    中文的值,存入cookie時,使用其他編碼、解碼方式。

cookie存儲userID所遇到的問題