CookieをJSPで操作する


そういえば、Cookieはもっと長い技術を応用するべきです。以前HTMLが現れたばかりの時には、個々のページの間で、異なるユーザーを記録したり、識別したりすることができませんでした。その後、人々はCookie技術を発明しました。ユーザーがウェブページにアクセスすると、訪問者のマシンでファイルを作成することができます。私たちはそれをCookieといいます。次回ユーザーがこのページにアクセスすると、またこのファイルの内容を読み取ることができます。このようにして、前回このユーザーがこのページに訪問したことを知ることができます。今はホームページの制作技術は数年前よりずいぶん発展しましたが。でも、時々、Cookieは私たちをたくさん助けてくれます。次に、どのようにJSPファイルを書く時に、CookieをJSPで操作するかを見てみます。二、Cookieを書き込むのは実用的なJSPでCookieを操作するのはとても簡単です。次のJSPプログラムを見に来ました。Cookie cookie=new Cookie(cookie Name)「Test_コンテント");cookie.setMaxAge(10)レスポンス.addCookie(%)他の内容)これでCookieをセットしました。簡単ですよね?このコードを詳しく調べてみます。Cookie cookie=new Cookie(cookie Name)「Test_」コンテント");この行はCookieオブジェクトを確立し、初期化には二つのパラメータがあり、最初のパラメータcookie NameはCookieの名前を定義し、後のパラメータも文字列であり、Cookieの内容を定義しています。つまり、私たちはホームページがユーザーのマシンに表示されるファイルの内容を望んでいます。次の行:cookie.setMaxAge(10)は、CookieのsetMaxAge方法を呼び出し、Cookieがユーザ機器のハードディスク上での生存期間を10秒とする。一つのCookieがユーザーのハードディスクに存在する時間は無期限ではなく、Cookieオブジェクトを作る時、Cookieの生存期間を制定しなければなりません。この生存期間を超えたら、Cookieファイルはもう機能しなくなり、ユーザーのブラウザによって自ら削除されます。もし私たちはユーザーがこのページを訪問する時に、Cookieファイルがまだ有効であり、ウェブページで読めるようになったら、Cookieの生存期間を少し長く設定することができます。例えば、cookie.set MaxAge(365*24*60*60)はCookieファイルを1年間有効にすることができます。Cookie Cookieファイルを読み出して作成した後、自然にまた私達がそれを読んでいかなければなりません。次に、ユーザーのハードディスク上のCookieをどうやって読み出しますか?中間略)Name value<%Cookie cookies[]=request.get Cookies();Cookie s Cookie=null;String svalue=nullString sname=null;for(int i=0;i{s Cookie=cookies[i];svalue=s Cookie.getValue()sname=sCookie.getName();><%>name value<%=name%><%=svalue%>….(その他の内容)この短いJSPファイルは、ユーザのハードディスク上の有効なCookieをすべて読み出すことができます。つまり、生存期間内のCookieファイルです。各Cookieの名前と内容を表形式で列挙します。このコードをプログレッシブに分析します。Cookie cookies==request.get Cookies()はrequest.get Cookiesでユーザーハードディスク上のCookieを読み出して、すべてのCookieをクッキーの対象配列に入れます。次に私達は一つの循環語句で先ほど確立したCookieオブジェクト配列を巡り、sCookie=cookie[i]を用いて配列の一つのCookieオブジェクトを取り出して、sCookie.getValue()とsCookie.getName()の二つの方法でこのCookieの名前と内容を取得します。取り出したCookieの名前と内容を文字列変数に入れることで、いろいろな操作ができます。上記の例では、循環文のエルゴードにより、すべてのCookieを一枚の表に置いて表示することができます。四、注意すべき問題のいくつかは上の二つの簡単な例を通して、JSPでCookieの操作を行うのはとても簡単です。しかし、実際の操作では、いくつかの問題に注意したいです。1.Cookieの互換性問題Cookieのフォーマットは2つの異なるバージョンがあります。最初のバージョンはCookie Verssion 0といいます。最初はNetscape社が制定したもので、ほとんどのブラウザに支持されています。新しいバージョンでは、Cookie Verssion 1は、RFC 2109文書に基づいて作成されます。互換性を確保するために、JAVAでは前述のCookieに関する動作はすべて旧バージョンのCookieに対して行われると規定しています。新しいバージョンのCookieはまだJavax.servlet.http.Cookieに支持されていません。2.Cookieの内容は同じCookieの内容の文字制限は、異なるCookieバージョンに対しても異なる。Cookie Version 0には、スペース、大かっこ、丸かっこ、イコール記号(=)、カンマ、二重引用符、斜め棒、疑問符、@記号、コロン、コロンなどの特殊な文字があります。これは、なぜ私たちが例でCookieの内容を「Test_」に設定したのですか?コンテント「の原因。Cookie Version 1では規制が緩和され、これらの文字を使用することができますが、新しいバージョンのCookie仕様はまだすべてのブラウザにサポートされていませんので、セキュリティのために、Cookieの内容でこれらの文字を使用することは避けなければなりません。カリー/フォルクスワーゲン・ネット紙)