ホームページ  >  記事  >  Java  >  JAVAでSessionのセッション状態を実装する方法

JAVAでSessionのセッション状態を実装する方法

WBOY
WBOY転載
2023-05-11 13:10:06695ブラウズ

Session は、HTTP プロトコルの制限を埋めるために発明されました。 HTTP プロトコルの仕組みに注意してください - ユーザーがリクエストを行い、サーバーが応答します。クライアントとサーバー間の接続は個別であり、非連続です。 HTTP プロトコルには、サーバーがユーザーのリクエストを追跡できる機能はありません。サーバーがユーザーのリクエストへの応答を完了すると、サーバーはブラウザーとの接続を維持し続けることができなくなります。サーバー側から見ると、各リクエストは独立しているため、HTTP プロトコルはステートレス プロトコルとみなされ、ユーザーが複数のホームページ間を切り替えても、サーバーはユーザーの身元を知ることができません。 Session の登場は、この制限を補うものです。セッションを使用すると、ユーザーが複数のホームページを切り替えたときにその情報を保存できます。これにより、以前は不可能だった多くのことがはるかに簡単になります。
訪問者が特定のホームページに到着してから離れるまでの間、各訪問者は個別のセッションを受け取ります。
Java サーブレットでは、Session の機能を実装する HttpSession インターフェースが定義されていますが、サーブレットで Session を利用する手順は次のとおりです:
(1) HttpServletRequest の getSession メソッドを使用して、現在存在するセッションを取得します。が現在定義されていない場合、新しいセッションを作成するには、メソッド getSession(true)
(2) を使用してセッション変数を書き込むこともできます。 HttpSession.setAttribute(name, value) メソッドを使用して、セッションに情報を保存できます。 HttpSession.putValue(name, value) を使用することもできますが、このメソッドは廃止されました。
(3) セッション変数を読み取ります。 HttpSession.getAttribute(name) メソッドを使用して、セッション内の変数の値を読み取ることができます。name が未定義の変数の場合は、null が返されます。 getAttribute から読み取られる変数の型は Object であるため、強制的な型変換を使用する必要があることに注意してください。例:
String uid = (String) session.getAttribute("uid");
HttpSession.getValue (名前) も使用できますが、このメソッドも廃止されました。
(4) セッションを閉じる セッションを使用した後、session.invalidate() メソッドを使用してセッションを閉じることができます。しかし、これは厳密には必須ではありません。サーブレット エンジンは一定時間が経過するとセッションを自動的に閉じるためです。
以下は、セッションの使用法を示す簡単な例です
//97色SessionExample.java
import java.io.*;
import java.util.*;
import javax .servlet .*;
import javax.servlet.http.*;
//必要なソフトウェア パッケージをインポートします
public class SessionExample extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response )
throws IOException, ServletException // doGet メソッドを実装
{
response.setContentType("text/html"); // HTTP ヘッダーを設定
PrintWriter out = response.getWriter(); //出力の取得 97gan
HttpSession session = request.getSession(true);
//セッション オブジェクトの取得
//HTML タグの印刷
out.println("");
out .println("");
out.println("" ) ;
out.println("");
out.println("");
作成日 = new Date(session.getCreationTime());
//セッション オブジェクトが作成された時刻を取得します
Date accessed = new Date(session.getLastAccessedTime());
//セッション オブジェクトが最後にアクセスされた時刻を取得します
out.println ("ID " session.getId() "
");
//セッションの ID を取得して出力します
out.println("Created: " created "
") ;
//セッション作成時刻を出力します
out.println("最終アクセス: " アクセスされました "
");
//最終アクセス時刻を出力します
session.setAttribute("UID ","12345678");
//変数 UID=12345678 をセッションに追加します
session.setAttribute("Name","Tom");
//変数 Name=Tom をセッションに追加します
Enumeration e = session.getAttributeNames ();
//セッション内の変数名の列挙オブジェクトを取得します
while (e.hasMoreElements()) { //各変数を走査
String name = (String )e.nextElement(); //最初に名前を取得します
String value = session.getAttribute(name).toString();
//nameで97ganから値を取得します
out.println(name) " = " value "}
out.println(""); //HTML タグを印刷します
out.println("< /html>");
}
}
}

以上がJAVAでSessionのセッション状態を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。