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