セッション有効期限の設定方法、具体的な方法は以下の通りです:
1. Javaコード 3058b7e6aef84cbe8fa24c27ca4be7ba
request.getSession().setMaxInactiveInterval(1800);/*秒为单位,1800= 60*30 即30分种*/
2. web.xml 5a58a6d689593d8342dddc3ffd35f209
<session-config> <!--分钟为单位--> <session-timeout>30</session-timeout> </session-config>
3。Web サーバーのresin.conf、tomcat、
<session-config> <!--分钟为单位--> <session-timeout>30</session-timeout> <enable-url-rewriting>false</enable-url-rewriting> </session-config>優先度: 1 > 3 > 以降、Tomcat の再起動後は失敗しません。ブラウザを閉じると、セッションは無効になります 一般的なシステムでは、セッションが無効になった後にいくつかの操作を実行する必要がある場合があります:
(1) セッションが無効になったときのユーザー数を制御します。システム内の数値は 1 ずつ減らされるなど、ユーザーを制御します。システムのパフォーマンスを確保するために、数値は一定の範囲内にあります。
(2) セッションが有効な場合、同じユーザーがログインすると、ユーザーがログインしたことを示すプロンプトが表示されます。セッションが期限切れになると、プロンプトを表示せずに直接ログインできます。 。
ここではリスナーを使用する必要があります。つまり、さまざまな理由でセッションが失敗した場合、リスナーはそれを監視し、リスナーで定義されたプログラムを実行できます。
public class OnlineListener implements HttpSessionListener{ public void sessionCreated(HttpSessionEvent event) { HttpSession ses = event.getSession(); String id=ses.getId()+ses.getCreationTime(); SummerConstant.UserMap.put(id, Boolean.TRUE); //添加用户 } public void sessionDestroyed(HttpSessionEvent event) { HttpSession ses = event.getSession(); String id=ses.getId()+ses.getCreationTime(); synchronized (this) { SummerConstant.USERNUM--; //用户数减一 SummerConstant.UserMap.remove(id); //从用户组中移除掉,用户组为一个map } } }このリスナーを web.xml で宣言するだけです:
<listener> <listener-class>com.demo.system.listener.OnlineListener</listener-class> </listener>
上記はセッションを使用してユーザー数を監視する簡単な方法ですが、実際のプロセスではこれよりもはるかに複雑になる可能性があります。
たとえば、ServletContextListener と HttpSessionListener の 2 つのインターフェイスを同時に実装したり、それらのメソッドを書き換えたりする必要があります。