サーブレットの クッキー処理
クッキーは、上に格納されているクライアントコンピュータ上のテキストファイル、およびさまざまな保持情報を追跡します。どうやらJavaサーブレットサポートHTTPクッキー。
返しユーザ識別は、3つのステップを含みます:
- サーバーへのスクリプトブラウザはクッキーのグループを送信します。たとえば、次のように名前、年齢や識別番号。
- ブラウザーこの情報が保存されている上のローカル将来の使用のためのコンピュータ。
- 場合次回のWebサーバへのブラウザが送信するすべての要求は、ブラウザがあろうクッキー情報がサーバに送信される、サーバはこの情報を使用する特定ユーザを。
この章では、あなたを説明しますクッキーを設定またはリセットする方法、アクセスする方法にそれらを、そしてどのようにそれらがされて削除されました。
// 以下のようにサーブレットは、クッキーを中国語符号化及び復号化を処理する必要がある: 文字列STR = java.net.URLEncoder.encode(「中国」、「UTF-8」); // 符号エンコーダ 列STR = java.net.URLDecoder .decode( "エンコードされた文字列"、 "UTF-8"); // デコードデコーダ
クッキー解析
クッキーは、通常、設定されたHTTPヘッダ情報に(JavaScriptは、ブラウザクッキーに直接設定することができるが)。クッキーサーブレットは、次のヘッダー情報を送信します設定します。
<! - セットクッキーヘッダが含まれています。名前と値のペアを、GMT日;パス;ドメイン- > <! - 名前とURL値がエンコードされます。- > <! - フィールドには、クッキーを「忘れる」の日付と時刻の一定期間後にブラウザに指示命令で期限切れになります。- > HTTP / 1.1 200 OK 日:金、2000年2月4日午前21時03分38秒GMTの サーバー: Apacheの/ 1.3.9(UNIX)PHP / 4.0b3 のSet-Cookie:名前= XYZ;金曜日に=カタログ有効期限、04 - 2月- 07午後09時03分38秒GMT; パス= /;ドメインは= runoob.com 接続:閉じる使用 :Content-Typeのテキスト/ HTMLを
お使いのブラウザがクッキーを格納するように構成されている場合は、有効期限までにこの情報を保持します。
ユーザーのブラウザがいる場合指すようにクッキーのいずれかの試合にパスしてのドメインのページ、それはなり再送信サーバーにクッキーを。
ブラウザのヘッダ情報は、次のようにしてもよいです。
GET / HTTP / 1.0
接続:キープアライブ
のUser-Agent: Mozillaの/ 4.6(X11; I; Linuxの2.2.6-15apmac PPC)
ホスト: zink.demon.co.uk:1126
受け入れ:画像/ gif形式を、* / *
受け入れ-エンコード: gzipで
のAccept-言語:アン
のAccept-文字セット: ISO-8859-1、*、UTF-8
クッキー:名= XYZ
できサーブレット要求メソッド request.getCookies() にアクセスするためのクッキーは、この方法は、戻りクッキー オブジェクトの配列を。
サーブレットクッキー方法
以下は、サーブレットでのCookieの操作に使用すると便利メソッドのリスト。
序号 | 方法 & 描述 |
---|---|
1 | public void setDomain(String pattern) 该方法设置 cookie 适用的域,例如 runoob.com。 |
2 | public String getDomain() 该方法获取 cookie 适用的域,例如 runoob.com。 |
3 | public void setMaxAge(int expiry) 该方法设置 cookie 过期的时间(以秒为单位)。如果不这样设置,cookie 只会在当前 session 会话中持续有效。 |
4 | public int getMaxAge() 该方法返回 cookie 的最大生存周期(以秒为单位),默认情况下,-1 表示 cookie 将持续下去,直到浏览器关闭。 |
5 | public String getName() 该方法返回 cookie 的名称。名称在创建后不能改变。 |
6 | public void setValue(String newValue) 该方法设置与 cookie 关联的值。 |
7 | public String getValue() 该方法获取与 cookie 关联的值。 |
8 | public void setPath(String uri) 该方法设置 cookie 适用的路径。如果您不指定路径,与当前页面相同目录下的(包括子目录下的)所有 URL 都会返回 cookie。 |
9 | public String getPath() 该方法获取 cookie 适用的路径。 |
10 | public void setSecure(boolean flag) 该方法设置布尔值,表示 cookie 是否应该只在加密的(即 SSL)连接上发送。 |
11 | public void setComment(String purpose) 设置cookie的注释。该注释在浏览器向用户呈现 cookie 时非常有用。 |
12 | public String getComment() 获取 cookie 的注释,如果 cookie 没有注释则返回 null。 |
サーブレットによるCookieの設定
(1)クッキーオブジェクトを作成します。
// クッキー名とクッキー値とクッキーのコンストラクタを呼び出す // クッキー名とクッキー値文字列です。 クッキークッキー = 新しい新しいクッキー(「キー」、「値」);
(2)最大ライフサイクルを設定します。
// 時間(秒)の有効期間を維持することのできる、setMaxAgeクッキーを指定するメソッドを使用します。 // 以下は、24時間のクッキーの最大有効期間を設定します。 cookie.setMaxAge( 60 * 60 * 24)。
(3)HTTPクッキーヘッダに応答を送信します。
// クッキーresponse.addCookie用いてHTTPレスポンスヘッダを追加 response.addCookie(クッキー)。
サーブレットによって読み取らクッキー
サーブレットでのCookieを削除します。
削除クッキーは非常に簡単です。あなたはクッキーを削除したい場合は、あなただけの3つの手順に従ってくださいする必要があります。
- 読んで既存のクッキーを、そしてそれが保存されている Cookieオブジェクトに。
- 使用 setMaxAge() メソッドを設定するためにゼロのクッキーの年齢を既存の削除クッキーを。
- このクッキーは、追加のレスポンスヘッダ。