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

       

Создание закладки


Конструктор класса javax.servlet.http.Cookie создает закладу с начальным именем и значением. Вы можете изменить значение закладки позже, вызвав метод setValue.

Имя закладки должно быть HTTP/1.1 токен. Токены это строки, не содержащие специальных символов перечисленных в документе RFC 2068

. (буквенно-численные строки квалифицируемые как токены.) В добавление, имена, начинающиеся со знака доллар ("$") зарезервированы документом RFC 2109
.

Значением строки может быть любая строка, хотя не гарантируется, что значение null, будет одинаково работать на всех броузерах. В добавление, если Вы отправляете закладку, которая подчиняется оригинальной спецификации закладок Netscape's, не используйте пробелы или ниже приведенные символы:

[ ] ( ) = , " / ? @ : ;

Если сервлет возвращает ответ пользователю, используя Writer, создавайте закладку, прежде чем обратитесь к Writer. (Поскольку закладки отправляются к клиенту как заголовок, заголовки должны быть прописаны, прежде чем произойдет обращение к Writer.)

Если бы сервлет CatalogServlet использовал закладки для того, чтобы проследить заказ клиента, он бы создавал бы их следующим образом:

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

// Смотрим есть ли покупки в корзине

String bookId = request.getParameter("Buy");

//Если пользователь хочет добавить книгу, запоминаем это добавляя закладку

if (bookId != null) { Cookie getBook = new Cookie("Buy", bookId);

... }

// прежде чем начать вывод, устанавливаем тип содержимого

response.setContentType("text/html");

// теперь выводим данные ответа

PrintWriter out = response.getWriter(); out.println("<html>" + "<head><title> Book Catalog </title></head>" + ...); ... }



Содержание раздела