JSP の Cookie の例
⚡ スマートサマリー
JSP Cookie は、JSP アプリケーションの動作を支援するためにクライアント ブラウザに保存される小さなテキスト ファイルです。 track セッション、ユーザー設定の記憶、javax.servlet.http.Cookie API と標準レスポンス ヘッダーを使用した複数の HTTP リクエストにわたるレスポンスのパーソナライズ。
JSPクッキーとは何ですか?
JSP Cookieとは、JSPベースのWebサーバーがクライアントブラウザにユーザーデバイスへの保存を要求する小さなテキストファイルです。HTTPはステートレスプロトコルであるため、JSP Cookieは、ログイン状態、言語選択、テーマ、ショップなどの情報をリクエスト間で記憶するためのシンプルで標準ベースの方法を提供します。ping カート識別子。
- JSPクッキーは、ブラウザによってクライアントマシンに保存されるプレーンテキストファイルです。
- 彼らは慣れている tracセッション管理、パーソナライゼーション、および分析のためのk情報。
- JSP は、基盤となるサーブレット技術と javax.servlet.http.Cookie クラスを通じて HTTP Cookie をサポートしています。
- JSPクッキーは transmit一致するすべてのリクエストの HTTP リクエストおよびレスポンス ヘッダー内に ted が含まれます。
- ブラウザがCookieを受け入れるように設定されている場合、setMaxAgeで設定された有効期限までCookieをディスクに保存します。
JSPクッキーを使用する理由とは?
JSP開発者は、HTTPリクエストが互いに独立しているため、Cookieに依存しています。JSP Cookieがなければ、サーバーは2つのリクエストが同じ訪問者からのものであることを認識できません。JSPのCookieは、サーバー側の状態を最小限に抑えながらこの問題を解決します。
- セッション trac王: JSESSIONIDクッキーは、複数のページビューを1つの論理セッションに関連付けます。
- パーソナライゼーション: JSP Cookieは、言語、テーマ、レイアウトなどの設定を保存できます。
- 認証ヘルパー: ログイン状態や「ログイン状態を保持する」トークンは、多くの場合、HttpOnlyおよびSecureフラグが有効になっているCookieに保存されます。
- アナリティクス: JSPにおけるCookieは、リピーター、参照元、およびコンバージョン経路を記録します。
JSPクッキーの種類
- 永続的なCookie: 永続的なJSP Cookieは、setMaxAgeで設定された期間、デバイスに保存されます。これにより、ブラウザを再起動しても、アプリケーションが設定やログイン情報を記憶しておくことができます。
- 非永続クッキー: セッションクッキーとも呼ばれる非永続的なJSPクッキーは、ブラウザのメモリにのみ存在し、ユーザーがブラウザを閉じると削除されます。これは主に短期間のセッションに使用されます。 tracキング。
JSP Cookie メソッド
javax.servlet.http.Cookie クラスは、JSP Cookie を扱う際に最もよく使用される以下のメソッドを公開しています。
-
public void setDomain(String domain)
このJSPのsetcookieメソッドは、JSP Cookieが適用されるドメインを設定します。
-
public String getDomain()
このJSPのgetcookieメソッドは、JSP Cookieが適用されるドメインを返します。
-
public void setMaxAge(int expiry)
これは、JSP Cookieの有効期限が切れるまでの最大時間を秒単位で設定します。値がゼロの場合はCookieが削除され、負の値の場合はセッションCookieになります。
-
public int getMaxAge()
JSP Cookieの最大有効期間を秒単位で返します。
-
public String getName()
JSP Cookieの名前を返します。
-
public void setValue(String value)
JSP Cookieに関連付けられた値を設定します。
-
public String getValue()
JSP Cookieに関連付けられた値を返します。
-
public void setPath(String path)
このJSPメソッドでクッキーを設定すると、 URL Cookieが適用されるパス。
-
public String getPath()
それは、 URL JSP Cookieが適用されるパス。
-
public void setSecure(boolean flag)
これは、JSP Cookieにマークを付け、暗号化されたHTTPS接続でのみ送信されるようにします。
-
public void setComment(String cmt)
これは、JSP Cookieの目的を説明するものです。
-
public String getComment()
JSP Cookieを説明するコメントを返します。
JSPクッキーの扱い方
JSP Cookie の操作には、3 つの繰り返し可能な手順があります。ログイン状態、テーマ切り替え、ショップで同じパターンが使用されます。ping カート。
- Cookieコンストラクタを使用して、JSP Cookieオブジェクトを作成します。
- クッキーの属性、特に最大有効期間、パス、セキュリティフラグを設定してください。
- response.addCookie を使用して、HTTP レスポンス ヘッダーを介して Cookie をブラウザに送信します。
JSPクッキーの作成方法
新しいJSP Cookieは、javax.servlet.http.Cookieを名前と値を指定してインスタンス化することで作成されます。作成されたCookieはレスポンスオブジェクトに添付され、ブラウザに保存されます。
JSPクッキーの読み方
以降のリクエストごとに、ブラウザは対応するJSP Cookieをサーバーに送信します。ページはrequest.getCookiesを呼び出してCookieオブジェクトの配列を読み取ります。アプリケーションは配列を反復処理し、名前で各Cookieを検索してその値を使用します。
JSPクッキーを削除する方法
JSP Cookieを削除するには、サーバーは同じ名前の新しいCookieを作成し、その値を空の文字列に設定し、setMaxAgeメソッドをゼロで呼び出し、レスポンスに追加します。その後、ブラウザは次のレスポンスで保存されたCookieを削除します。
JSPにおけるCookieの例
この JSP クッキーの例では、アプリケーションはユーザー名とメールアドレスの 2 つのクッキーを作成し、それらを 10 時間有効にした後、action_cookie_main.jsp という別のページでその値を読み取ります。
アクションクッキー.jsp
<%-- Action_cookie.jsp: input form for JSP Cookies demo --%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Cookie</title> </head> <body> <form action="action_cookie_main.jsp" method="GET"> Username: <input type="text" name="username"> <br /> Email: <input type="text" name="email" /> <input type="submit" value="Submit" /> </form> </body> </html>
アクションクッキー_メイン.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <% Cookie username = new Cookie("username", request.getParameter("username")); Cookie email = new Cookie("email", request.getParameter("email")); username.setMaxAge(60*60*10); email.setMaxAge(60*60*10); // Add both the JSP Cookies in the response header. response.addCookie( username ); response.addCookie( email ); %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Cookie JSP</title> </head> <body> <b>Username:</b> <%= request.getParameter("username")%> <b>Email:</b> <%= request.getParameter("email")%> </body> </html>
の説明 Code
アクションクッキー.jsp
Code 10行目から15行目: このページには、action_cookie_main.jsp に送信されるフォームが宣言されています。ユーザー名とメールアドレスの 2 つの入力フィールドと送信ボタンがあり、ユーザーからデータを収集します。
アクションクッキー_メイン.jsp
Code 6行目から9行目: request.getParameterを使用してフォームから送信された値を読み取ると、usernameとemailという2つのCookieオブジェクトが作成されます。
Code 12行目から13行目: setMaxAge メソッドは、60 × 60 × 10 という値で呼び出され、各 JSP Cookie の有効期間を 10 時間に設定します。
Code 16行目から17行目: 2つのクッキーは、response.addCookieを使用してレスポンスに添付されます。ブラウザは後続のリクエストでそれらを送信し、サーバーはrequest.getCookiesまたは現在のリクエストの場合はrequest.getParameterを使用してそれらを読み取ります。
出力
上記のコードを実行すると、以下の出力が得られます。
action_cookie.jspが実行されると、ブラウザにユーザー名とメールアドレスの2つのフィールドが表示されます。ユーザーがこれらの情報を入力して「送信」をクリックすると、action_cookie_main.jspがサーバー上に一致するJSP Cookieを作成し、クライアントに保存して、値を表示し、Cookieが正常に作成されたことを確認します。
JSPクッキーのベストプラクティス
最新のWebアプリケーションでは、JSP Cookieをセキュリティ上重要なデータとして扱うべきです。以下の手順は、現在のServlet 4.xおよびServlet 5.xの導入環境に準拠しています。
- HttpOnlyを使用する: 認証クッキーをHttpOnlyとしてマークすることで、クライアント側のスクリプトが読み取れないようにします。
- セキュアを使用する: setSecure(true)を呼び出すことで、HTTPS経由でのみCookieを送信できます。
- SameSiteを使用する: コンテナまたはレスポンスヘッダーを通じてSameSite属性(LaxまたはStrict)を設定することで、クロスサイトリクエストフォージェリを軽減できます。
- 値を小さく保つ: クッキーに識別子を保存し、データはサーバー側のストレージに保管する。
- 明示的な有効期限を設定する: ブラウザ間で予測可能な動作を実現するには、setMaxAgeを使用してください。



