- •Основні відомості про сервлети і JavaServer Pages
- •Базова структура сервлетів
- •Життєвий цикл сервлета
- •Метод init
- •Метод service
- •Інтерфейс SingleThreadModel
- •Метод destroy
- •Обробка клієнтських запитів
- •Заголовки http-запиту
- •Коди станів http
- •Заголовки http-відповіді
- •Обробка cookies
- •Атрибути cookie
- •Відслідкування сеансу
- •Отримання інформації про сеанс
- •Перегляд інформації про сеанс
- •Кодування адрес url, надісланих клієнту
- •Елементи сценарію jsp
- •Вирази jsp
- •Скриплети jsp
- •Оголошення jsp
- •Інші наперед визначенізмінні
- •Директива сторінки jsp
- •Включення файлів і аплетів у документи jsp
- •Використання JavaBeans з jsp
- •Основи використання bean-компонентів
- •Доступ до властивостей bean-компонентів
- •Сумісне використання bean-компонентів
- •Робота з базами даних
- •Завантаження тареєстрація драйвера
- •Визначення url для встановлення з’єднання
- •Встановлення з’єднання
- •Створення об’єкту для передачі операторів sql
- •Формування запиту для виконання
- •Виконання запиту
- •Обробка результатів
- •Завершення з’єднання
- •Попередньо відкомпільовані (підготовлені) запити
- •Пакетне виконання sql запитів
- •Виконання внутрішніх процедур
- •Інтегрування сервлетів і jsp-сторінок Перенаправлення запитів із сервлетів
- •Передача інформації на сторінки призначення
- •Перенаправлення запитів з jsp-сторінок
- •Використання аплетів у якості клієнтських інтерфейсів сервлетів
Атрибути cookie
Перед додаванням cookie в заголовки відповіді можна задати декілька характеристик cookie, використовуючи один з методів setXxx(), де Xxx – ім’я відповідного атрибута. Для зчитування атрибута використовується метод getXxx(). Крім імені та значення, всі решта атрибути cookie застосовуються тільки до вихідних cookie (які поступають від сервера до клієнта).
Методи доступу до атрибута |
Опис атрибута |
public String getComment() public void setComment(String comment) |
Коментар, пов’язаний з cookie |
public String getDomain() public void setDomain(String domainPattern) |
Домен, до якого застосовується cookie |
public int getMaxAge() public void setMaxAge(int lifetime) |
Визначає, скільки залишилось часу (в секундах) до кінця строку дії cookie. Від’ємне значення, встановлене по замовчуванню, означає, що cookie буде існувати тільки під час поточного сеансу і не зберігатиметься на диску. |
public String getName() public void setName(String cookieName) |
Ім’я атрибута |
public String getPath() public void setPath(String path) |
Шлях атрибута |
public Boolean getSecure() public void setSecure(Boolean secureFlag) |
Вказує, чи можна надсилати cookie тільки по безпечним, шифрованим з’єднанням |
public String getValue() public void setValue(String cookieValue) |
Значення, пов’язане з cookie |
public int getVersion() public void setVersion(int version) |
Версія протоколу cookie |
Для того, щоб надіслати cookie клієнту, необхідно створити об’єкт класу Cookie, потім викликати метод addCookie() класу HttpServletResponse, щоб надіслати заголовок HTTP-відповіді Set-Cookie, наприклад:
Cookie userCookie = new Cookie(“user”, “uid1234”);
userCookie.setMaxAge(60*60*24*365);
response.addCookie(userCookie);
Щоб прочитати cookies, отримані від клієнта, викликається метод getCookies() класу HttpServletRequest. Цей виклик повертає масив об’єктів класу Cookie. Звичайно цей масив проглядається, викликаючи метод getName() для кожного об’єкта Cookie, поки не знайдеться cookie з відповідним ім’ям. Потім викликається метод getValue() для знайденого cookie і завершується процес обробкою, специфічною для отриманого значення.
Відслідкування сеансу
Протокол HTTP є „протоколом без станів”: кожен раз, коли клієнт знаходить web-сторінку, він відкриває окреме з’єднання з Web-сервером. При цьому сервер автоматично не підтримує контекстну інформацію про клієнта. Для вирішення цієї проблеми сервлети надають інтерфейс API класу HttpSession. Він побудований на використанні cookies або перезапису URL, коли клієнт приєднує додаткові дані в кінець кожного URL, а сервер зв’язує цей ідентифікатор із даними про сеанс, які він зберіг.
Використання сеансів включає в себе перегляд об’єкту сеансу, пов’язаного з поточним запитом. При необхідності створюється новий об’єкт сеансу, який зберігає інформацію про сеанс, а також видаляє завершені сеанси або такі, до яких не було звернень протягом певного проміжку часу.