2011-06-21 10 views
0

user1がサーブレットの下に入ると、ミリ秒単位で現在の時刻がセッション変数に追加されます。 user2がuser1の後にこのサーブレットをインスタンス化すると、セッション変数は新しい時刻に設定されます。 user1 & user2がこのセッション値を要求すると、それぞれ独自の固有の値を持ちますか? user2はuser1セッションのvalを上書きしますか?サーブレット上の複数のユーザーに異なるセッション値を格納

public void doGet(HttpServletRequest request, HttpServletResponse response) { 

     request.getSession().setAttribute("time", System.currentTimeMillis()); 

     try { 
      response.getWriter().print("Time is set"); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

    } 
+0

サーブレットは、すべてのリクエストではなく、初めてリクエストされたとき(遅延ロードの場合)に 'init()メソッド'を1回だけ初期化します。要求と応答で見える唯一のメソッドは 'service(...)'です。このメソッドはリクエストするたびに呼び出されます。 – RajeshS

+1

関連:http://stackoverflow.com/questions/3106452/java-servlet-instantiation-and-session-variables – BalusC

答えて

3

各ユーザーはそれぞれ独自のセッションを持ちます。ユーザーはお互いのセッションを見ることができません(可能であれば、システムに深刻な問題があります)。

編集(Richard Hのおかげで):サーブレットコンテナは、要求を見て現在のユーザーのセッションを自動的に見つけます。リクエストには、セッションIDを持つヘッダーまたはクッキーが含まれているため、コンテナは、どのユーザーがリクエストを行っているかを知ることができます。

+2

はい。明確にするために、セッションはサーブレットコンテナによって透過的に管理されます。 –

1

いいえ、user2のセッション値は、セッションの独自のインスタンスを持つため、user2のセッション値は上書きされません。ウィキペディアはweb sessionsでかなり良いセクションを持っています。

0

両方に別々の値があります。 user1のセッションは2回あります& user2。ユーザー2は上書きされません

0

サーブレットコンテナはユーザーセッションを管理します。各ユーザは、特定のユーザの検索のためにサーブレットコンテナにセッションIDを送信するブラウザ(またはユーザエージェント)のセッションIDであるJSESSIONIDを受信します。

関連する問題