2011-12-26 7 views
0

Я хочу закончить сеанс моего браузера в случае неактивности пользователя в течение 1 минуты в моем веб-приложении? Я пытался делать две вещи: -Как истечь сеанс браузера в случае неактивности пользователя в java?

Approach1: - поместить следующий код в web.xml

<session-config> 
    <session-timeout>1</session-timeout> 
</session-config> 

Approach2: -

session.setMaxInactiveInterval(1*60); 

Оба aproaches не истекает сессия. Я продолжаю работать, даже если пользователь не выполняет эту деятельность в течение 3 минут?

Когда он не работает: - он не работает, когда я напрямую захожу на экран входа в систему и выполняю вход.

Когда это работает: - Хотя такой же подход работает, когда я интегрирую над веб-приложением одно из моих различных веб-приложений, скажем, webapp2. Что происходит в этом случае, я предоставил ссылку на webapp2, которая напрямую принимает меня в webapp1, не запрашивая учетные данные. Здесь отключение работает в случае, если пользователь не выполняет свою деятельность в течение 1 минуты?

Я не понимаю, почему он не работает в первом случае, когда я делаю журнал вручную, хотя web.xml тот же и класс, где я помещаю session.setMaxInactiveInterval (1 * 60), выполняется в обоих случаях?

ответ

0

Сессия выполняется только в том случае, если сервер обнаруживает неактивность со стороны клиента на определенный период времени в web.xml/session/session-time-out. Вы должны проверить, работает ли он или нет, отправив запрос от клиента и после получения ответа просто закройте окно браузера. Отправьте еще один запрос после интервала тайм-аута сеанса. Проверьте, является ли это новой сессией (check sessionID). Дальнейшая помощь? enter code here ниже -

Хорошо, что есть приложение, называемое веб-приложением для веб-приложений на основе Java. Эти слушатели слушают запросы, сеансы и связанные с ними вещи клиентов. Для обработки тайм-аута сеанса вы можете использовать прослушиватели сеансов. Шаг 1 - Изменение web.xml для включения слушателя веб-приложений:

<listener> 
    <listener-class>some.package.name.MySessionListener</listener-class> 
</listener> 

И теперь создать вышеупомянутый класс в вашем исходном каталоге:

package some.package.name; 

public class SessionListener implements javax.servlet.http.HttpSessionListener { 

    public void sessionCreated(HttpSessionEvent arg0) { 
     //write your own code for when new session is created. 
    } 

    public void sessionDestroyed(HttpSessionEvent arg0) { 
     //Write your own c`enter code here`ode for when session is destroyed. 
    } 
} 

Надеется, что вы найдете ее полезной. :).

+0

hi sadsa, Спасибо за ответ. Мое приложение распространяется с помощью прослушивателя, который реализует ServletContextListener. Но мой главный вопрос: почему он работает в одном сценарии не для других, когда я непосредственно делаю логин с учетными данными –

Смежные вопросы