Завершение сессии
Сессия пользователя может быть завершена вручную или, в зависимости от того, где запущен сервлет, автоматически. (Например, Java Web Server автоматически завершает сессию, когда в течение определенного времени не происходит запросов, по умолчанию 30 минут.) Завершить сессию означает удаление объекта HttpSession и его величин из системы.
Чтобы вручную завершить сессию, используйте метод сессии invalidate. У некоторых программ уже есть такие точки, в которых происходит завершение сессии. Пример Duke's Bookstore
завершает сессию пользователя после того, как он осуществил покупку книг. Это происходит в сервлете ReceiptServlet:
public class ReceiptServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
... scart = (ShoppingCart)session.getValue(session.getId()); ... // Очищаем корзину завершая сессию
session.invalidate();
// прежде чем начать вывод, устанавливаем тип содержимого
response.setContentType("text/html"); out = response.getWriter(); ... } }