2

web.xml私はこれを持っています

 <session-config>
   <session-timeout>2</session-timeout>
 </session-config>

 <listener>
  <listener-class>myapplication.SessionListener</listener-class>
 </listener>

SessionListener.java私が持っている

public void sessionDestroyed (HttpSessionEvent event){    
   System.out.println("Visitor Removed!!");
}

しかし、それはSystem.out.println("Visitor Removed!!")実行されたことがないようです。Tomcat 6 と JSP は初めてです。何か提案はありますか?

4

1 に答える 1

6

これには、少なくとも 3 つの原因が考えられます。

  1. セッションは作成されていません。こちらも聞いてくださいsessionCreated()
  2. あなたは少しせっかちです。セッションの破棄は、遅延して間隔を置いて発生します。すぐには起こりません。有効期限が切れている間に同じセッションで新しいリクエストを発行すると、が呼び出さsessionDestroyed()れます。または、もう少し忍耐力があれば、サーバーは優先度の低いタイマー ジョブを実行して、期限切れのすべてのセッションを取得します。
  3. 使用しているmyapplication.SessionListenerと思うようにクラスパスでクラスを使用していません。実際にクラスパスにあるクラスには sysout 行がない可能性があります。
于 2010-04-14T21:51:25.800 に答える