Я хочу убить сеанс после закрытия браузера или закрыть вкладку. И мне нужно сделать одно подключение к базе данных после окончания сеанса с использованием Session Listener. Но для что мне нужно подождать, пока сессия не разрушится.Мне нужно убить сеанс и выполнить одну функцию после закрытия браузера или закрыть вкладку
Вот код, который выполняется при уничтожении сеанса.
public void sessionDestroyed(HttpSessionEvent event) {
synchronized (this) {
//System.out.println("deletion");
ServletContext application = event.getSession().getServletContext();
sessionCount = (Integer) application.getAttribute("SESSION_COUNT");
application.setAttribute("SESSION_COUNT", sessionCount=sessionCount - 1);
//application.setAttribute("SESSION_COUNT", --sessionCount);
try
{
Class.forName("com.mysql.jdbc.Driver");
}
catch (ClassNotFoundException e) {
System.out.println("" + e);
}
Connection connection = null;
try {
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/raptor1_5", "root", "");
Statement st = connection.createStatement();
st.executeUpdate("update adminlogin set Password='admin' where Username='admin'");
} catch (SQLException e) {
e.printStackTrace();
}
}
System.out.println("Session Destroyed: " + event.getSession().getId());
System.out.println("Total Sessions after delete: " + sessionCount);
}
Но я не хочу ждать, пока сеанс destroys.I не нужно делать этот код после того, как браузер получает close.Hope кто-то получит меня из-за этого.
Спасибо
да я тоже пытался использовать onbeforeunload функцию, но она выполняет не только для близкого события также он выполняет для кнопки обновления. –
Да, это правда. Все, что он знает, это то, что вы покидаете страницу –
, оставляя страницу без аннулирования сеанса, только моя проблема –