Обучение Java. Сервлеты

       

Сохранение и получение данных сессии


Интерфейс HttpSession предоставляет методы, которые сохраняют и возвращают данные:

  • Стандартные свойства сессии, такие как идентификатор сессии. 
  • Данные приложения, которые сохраняются в виде пары с именным ключом, когда имя это строка (String) и величина - объект Java. (Также как java.util.Dictionary.) Поскольку используется доступ нескольких сервлетов к пользовательской сессии, Вам надо выбрать условное именование для организации имен соответствующих пользовательским данным. Это позволит сервлетам избежать случайной перезаписи одних величин другими. Одина из таких условностей servletname.name, где servletname это полное имя сервлета, включая его пакет. Например, com.acme.WidgetServlet.state это закладка с именем сервлета com.acme.WidgetServlet и именем state.
  • Пример Duke's Bookstore использует прослеживание сессии для того, чтобы хранить информацию о книгах в корзине для покупок пользователя. Вот пример сервлета CatalogServlet получающего идентификатор пользовательской сессии, который получает и устанавливает данные, соответствующие сессии этого пользователя:

    public class CatalogServlet extends HttpServlet {

    public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Получаем сесию пользователя и корзину для покупок

    HttpSession session = request.getSession(true); ShoppingCart cart = (ShoppingCart)session.getValue(session.getId());

    // Если у пользователя нет корзины, создаем ее

    if (cart == null) { cart = new ShoppingCart(); session.putValue(session.getId(), cart);

    } ... } }

    Потому как объект может быть ассоциирован с сессией, пример Duke's Bookstore

    хранит книги отобранные пользователем в объекте. Этот объект типа ShoppingCart и каждая книга, отобранная пользователем, хранится в корзине для покупок, то есть в объекте ShoppingCartItem. Например, вот, что получается в таком случае в методе doGet сервлета CatalogServlet:

    public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {



    Содержание  Назад  Вперед







    Forekc.ru
    Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий