クッキー遇到java.lang.IllegalArgumentExceptionが:クッキーの値や属性で制御文字

java.lang.IllegalArgumentExceptionが:クッキーの値や属性で制御文字。

クッキーの値またはプロパティの制御文字で例外の説明が、私は値と特殊文字を設定します。
最初にBASE64を有する第1の文字列を符号化された前に、中国の符号化問題を疑われるCookie cookie = new Cookie("name", URLEncoder.encode(str, "UTF-8"));元の文字列のUTF-8エンコーディングであることが、結果は、例外のようになります。
元の文字列ではなく、結果をしようとする、または障害の、ない文字列が符号化問題と思われ、中国語、英語を削除します。

次のようにインターネットから関連情報を検索
クッキーの長さの制限は:
各ドメインのクッキーの最大数(1)ブラウザは、このような状況についての情報を見つけるために、インターネットから、可能 
IE:元は20であり、後の50にアップグレード 
Firefoxの:50番目の 
オペラ:30ヶ月 
クローム:180ヶ月 
サファリ:無制限 

クッキーは、ブラウザの制限動作を超えた場合:IEとOperaは使用頻度の低い、Firefoxの動作がクッキーの特定の値のうち、ランダムに蹴られを取り除く古いクッキーにLRUアルゴリズムを使用します。もちろん、どんなに戦略の種類、または可能にクッキーブラウザの数を超えないようにしてみてください。

(2)ブラウザは、各クッキーの最大長許容 
のFirefox、サファリ:4079バイト 
オペラ:4096バイト 
IE:4095のバイト 

当社は、4095バイトにクッキーの最大長、最大長IE Cookieサポートまでであるが、これは不明で計算する方法、クッキーオブジェクトの全体の長さのサイズである必要があり、ここで心配しています。
私はここにIE9のテスト結果だ、最大の長さの値は、コーディングがこれより小さくなる前に、これは、base65エンコード後の文字列の元の長さで、76文字です。
また、固定値である必要があり、まだ変更されていないサポートの最大の長さの値を見つけ、クッキー名の長さを短くしてみてください。
あなたはより多くのデータを保存するか、または複数のクッキーを使用するか、または、そのようなデータベースIDなどの重要な情報を保存するために、アウト次回、その後、データベースを照会したり、ファイルを読みたい場合。

ソリューション上記のシステムが正常に動作しているものの、クッキーにも保存され、パスワードを覚えているし、正常にログオンすることができ、試されます。しかし、舞台裏やクッキーの値や属性に誤り制御文字

しかし、それはテストサーバー環境とローカルの開発環境は同じではありませんが、テストサーバーのTomcat 7.0バージョン、ローカルのTomcat 6.0の開発環境ながら、環境は皆の開発環境を思い出させるために、異例のすべての方法一様ではありません、テスト、公式を発見しました環境ソフトウェアのバージョンが統一されなければなりません!

 

おすすめ

転載: www.cnblogs.com/zhangliang88/p/11670822.html