Ниже приведен мой код.Сеанс сервлета MaxInactiveInterval setter и методы getter не работают
В этом случае сеанс тайм-аутов НЕМЕДЛЕННО, потому что мы говорим: «таймаут после 0 секунд бездействия».
Поэтому session.getAttribute ("foo") должен предоставить исключение. Но код работает без сбоев, как будто сеанс не тайм-аут.
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException {
response.setContentType(“text/html”);
PrintWriter out = response.getWriter();
HttpSession session = request.getSession();
session.setAttribute(“foo”, “42”);
session.setMaxInactiveInterval(0);
String foo = (String) session.getAttribute(“foo”);
if (session.isNew()) {
out.println(“This is a new session.”);
} else {
out.println(“Welcome back!”);
}
out.println(“Foo: “ + foo);
}
Похожая проблема, когда я использую getMaxInactiveInterval().
Он дает правильный результат при первом вызове setMaxInactiveInterval() явно. Но когда он не установлен программно, getMaxInactiveInterval не показывает тайм-аут сеанса по умолчанию, который составляет 30 минут. Вместо этого он всегда дает 60 секунд в качестве результата.
Мой Сервер Apache Tomcat 7. Спасибо за помощь
Какой смысл устанавливать что-то в сеансе и получать его без обработки ответа ??? – LMG
Этот код объяснялся в HeadFirst JSP и книге Servlet, чтобы показать семантику методов Session. Поэтому, пожалуйста, простите мне отсутствие логики, если таковая имеется, с точки зрения приложения, сэр. Спасибо за ваш ответ. – user961690