こんにちは、/logout
サーブレットからセッションタイムアウトを計算しようとしています。私はAJAX呼び出しと、このメソッドを毎秒のヒットセッションタイムアウトを動的に計算する方法は?
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.core.MediaType;
import com.sun.jersey.api.client.ClientResponse.Status;
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
long timePassed = 0;
long timeout = 60;
timePassed = (System.currentTimeMillis() - request.getSession().getLastAccessedTime())/1000;
System.out.println(timePassed);
response.setStatus(Status.OK.getStatusCode());
response.getWriter().write("[{\"timePassed\": \""+ timePassed + "\", \"limit\": \""+ timeout + "\"}]");
response.setContentType(MediaType.APPLICATION_JSON);
if(timePassed >= timeout){
doGet(request, response);
}
}
:私は私のdoPostメソッドはこちらtimeout
としてタイムアウトする前に、ある程度の時間を定義しています。 ajax呼び出しは正常に動作します。私はフロントエンドでデータを取得しているので、GUIは正常に動作します。 BUT timePassed
は0のままです。ユーザーがアイドル状態で過ごした時間を計算するにはどうすればよいですか?
Ajaxを使用してサーバーにアクセスすると、セッションアクセスとしてカウントされます。そうすることで、セッションが終了するのを防ぎます。 – developerwjk
@developerwjkはい私はまだ別の方法でそれをやり遂げる方法についていることに気づきました。 – th3r1singking
アイドルと言うと、どういう意味ですか?セッションを作成する時間がありますが、セッションが作成されてからの経過時間は「アイドル」ではないという違いがあります。 – stdunbar