Язык SQL

Отслеживание контекста с помощью сервлет-сеансов


К счастью, класс HttpServlet обладает способностью осуществлять поддержку контекста с помощью методов отслеживания сеансов (session-tracking methods/ Сервлет- менеджер позволяет сервлету создавать объект Httpsession для каждого сеанса пользователя. Сервлет-менеджер отслеживает состояние всех объектов сеансов. Каждый объект сеанса ведет список именованных объектов. Для сохранения и восстановления объектов из этого списка используются методы putvalue и getvalue. На 10.8 показано, как можно использовать отслеживание сеансов для поддержания контекстов многих пользователей. Отличия от приведенного на 10.7 кода заключаются в добавлении метода restoreContext (строки 6—17), удалении инициализации объекта CustomerEditor в методе init (строки 3—5) и вызове метода restoreContext в методе doPost (строка 21).

1 class MultiCustomerServlet extends javax.servlet.http.HttpServlet {

2 CustomerEditor CustomerEditor = null;

3 public void init (ServletConfig conf) throws ServletException {

4 super.init();

5 }

6 public Boolean restoreContext (HttpServletRequest request) {

7 HttpSession session = request.getSession(true);

8 if (session.isNew()) { //новый сеанс для этого пользователя

9 CustomerEditor = new CustomerEditor();

10 //сохранение контекста объектов в новом сеансе

11 session.putvalue("CustomerEditor", CustomerEditor);

12 } else { // создание нового контекста

13 //восстановление объектов контекста из сеанса

14 customerEditor=

15 (CustomerEditor) session.getvalue("customerEditor");

16 }

17 }

18 public void doPost(HttpServletRequest request,

19 HttpServletResponse response)

20 throws IOException , ServletException {

21 restoreContext(request);

22 //остальные методы такие же, как на 10.7

23 }

24 }

Комментарии закрыты