-3

私はJavaが初めてで、少し調べ始めました。これがばかげた質問であることはわかっていますが、ネット上で私の疑問を明確にするサポートブログや記事が見つかりませんでした.

Javaオブジェクトのスコープを知りたいです。シナリオを考えてみましょう: オブジェクト X を使用している「インデックス」と言うブラウザーでページにアクセスしているとします。ページを更新すると、オブジェクト X の以前の値を取得できますか?

はいの場合、それはどのように保持されますか? それはすべて異なるリクエストであり、それが同じリクエストであることをどのように認識するのでしょうか?

前もって感謝します

4

3 に答える 3

2

Objectスコープに関する公式ドキュメントを読むことを強くお勧めします。

可能なスコープは 4 つあります。

scope="page"--オブジェクトは、それが作成された JSP ページ内からのみアクセスできます。

scope="request"--オブジェクトは、オブジェクトを作成した JSP ページによって処理されるものと同じ HTTP 要求を処理する JSP ページからアクセスできます。

scope="session"--オブジェクトは、オブジェクトを作成した JSP ページと同じ HTTP セッションを共有する任意の JSP ページからアクセスできます。

scope="application"--オブジェクトは、オブジェクトを作成した JSP ページと同じ Web アプリケーション (任意の単一の Java 仮想マシン内) で使用される任意の JSP ページからアクセスできます。

ここに公式ドキュメントのリンクがあります

于 2013-09-30T09:12:10.857 に答える
0

以下を使用して、オブジェクトをセッション (HttpSession オブジェクト) に属性として保存することにより、オブジェクトを保存および取得できます。

public void setAttribute(java.lang.String name, java.lang.Object value)
public java.lang.Object getAttribute(java.lang.String name)

たとえば、複数ページのクイズでユーザーのスコアを保存できます。

session.setAttribute("score", (Integer) value);
score = ((Integer) (session.getAttribute("score"))).intValue();

これは、ページのトラバース/リフレッシュに対して永続的です。同じリクエストではありませんが、同じセッションです。

于 2013-09-30T09:14:16.473 に答える