ホームページ  >  記事  >  Java  >  JAVA はサーブレットを介して JSP のセッション変数をどのように操作しますか?

JAVA はサーブレットを介して JSP のセッション変数をどのように操作しますか?

WBOY
WBOY転載
2023-05-02 17:34:131110ブラウズ

サーブレットを使用してセッションを制御する

セッション状態の維持は、Web アプリケーションの開発時に直面する必要がある問題です。この問題を解決するには、さまざまな方法があります。たとえば、Cookie を使用したり、非表示タイプのフォーム フィールドを使用したり、URL にステータス情報を直接追加したりするなど、サーブレット自体がセッション状態の維持をサポートする HttpSession インターフェイスを提供します。ここでは、主にセッション状態ベースの管理について紹介します。このインターフェース上で。

セッションは、HTTP プロトコルの制限を満たすために発明されました。 HTTP プロトコルの仕組みに注意してください - ユーザーがリクエストを行い、サーバーが応答します。クライアントとサーバー間のこの接続は個別かつ不連続です。 HTTP プロトコルには、サーバーがユーザーのリクエストを追跡できる機能はありません。サーバーがユーザーのリクエストへの応答を完了すると、サーバーはブラウザーとの接続を維持し続けることができなくなります。サーバー側から見ると、各リクエストは独立しているため、HTTP プロトコルはステートレス プロトコルとみなされ、ユーザーが複数のホームページ間を切り替えても、サーバーはユーザーの身元を知ることができません。 Session の登場は、この制限を補うものです。セッションを使用すると、ユーザーが複数のホームページを切り替えたときにその情報を保存できます。これにより、以前は不可能だった多くのことがはるかに簡単になります。

訪問者が特定のホームページに到着してから離れるまでの期間、各訪問者は個別のセッションを受け取ります。
Java Servlet では、Session の機能を実装する HttpSession インターフェースが定義されており、Servlet で 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 (name) ですが、このメソッドも廃止されました。

(4) セッションを閉じる セッションを使用した後、session.invalidate() メソッドを使用してセッションを閉じることができます。しかし、これは厳密には必須ではありません。サーブレット エンジンは一定時間が経過するとセッションを自動的に閉じるためです。

以下は、session の使用法を示す簡単な例です。
// 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 return )
Throws IOException, ServletException // doGet メソッドを実装
出力を取得 Writer
HttpSession session = request.getSession(true);

////HTML タグを出力
out.println("");

out .println("");

Out.println("");
out.println("");
out.println( "");

作成日 = new Date(session.getCreationTime());
//セッション オブジェクトが作成された時刻を取得します

アクセス日 = new Date(session.getLastAccessedTime( ));

//セッションオブジェクトが最後にアクセスされた時刻を取得します
out.println("ID " session.getId() " ");
//セッションのIDを取得して出力しますit
out.println("Created: " created " ");
//セッション作成時刻を出力します
out.println("Last Accessed: " accessed " ");
//Print最終アクセス時刻

session.setattribute ("uID", "12345678");
// セッションに変数を追加 uid = 12345678
session.setttribute ("name", "tom");
// 追加セッション内の変数 Name=Tom


Enumeration e = session.getAttributeNames();
) { //各変数を走査
String //最初に名前を取得します
String value = session.getAttribute(name).toString();
//名前でセッションから値を取得します
out .println(name " = " value " "); //Print
}
out.println(""); //HTMLマークアップを印刷
out.println("");
}
}
}

以上がJAVA はサーブレットを介して JSP のセッション変数をどのように操作しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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