- •Основні відомості про сервлети і 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-сторінок
- •Використання аплетів у якості клієнтських інтерфейсів сервлетів
Заголовки http-запиту
Для створення ефективних сервлетів необхідно вміти маніпулювати протоколом HyperText Transfer Protocol (HTTP – протокол передачі гіпертексту).
На відміну від даних форми, які пересилаються як частина URL для GET-запитів, заголовки HTTP-запитів встановлюються броузером і надсилаються за початковим рядком GET або POST-запиту.
Приклади заголовків запитів:
GET /search?keywords=servlets+jsp HTTP/1.1
Accept: image/gif, image/jpg, */*
Accept-Encoding: gzip
Connection: Keep_Alive
Cookie: userID=id45678
Host: www.somehost.com
Referer: http://www.somehost.com/find.html
User_Agent: Mozilla/4.7 [en] (Win98; U)
Читання заголовків із запитів здійснюється викликом методу getHeader() класу HttpServletRequest. Імена заголовків не чутливі до регістру.Доступ до HTTP-заголовків дозволяє сервлетам виконувати деякі оптимізацій ні дії і забезпечити виконання ряду функцій. У наступній таблиці наводиться перелік заголовків запитів HTTP 1.1.
HTTP-заголовок |
Опис |
Accept |
MIME-типи, які може обробляти клієнт |
Accept-Charset |
Набори символів, які може використовувати клієнт |
Accept-Encoding |
Методи кодування, які може обробляти клієнт |
Accept-Language |
Предпочтительные (?) для клієнта мови |
Authorization |
Використовується клієнтом для самоідентифікації при отриманні доступу до сторінок, захищених паролем |
Cache-Control |
Опції, що застосовуються при кешуванні веб-сторінок проксі-сервером |
Connection |
Позначає, чи може клієнт обробляти стійки з’єднання |
Content-Length |
Розмір запиту в байтах (використ. тільки для POST запитів) |
Content-Type |
Тип вмісту запиту при POST або PUT-запитах |
Cookie |
Використовується для повернення Cookies серверам, які раніше надсилали їх браузеру |
From |
E-mail особи, відповідальної за HTTP-запит |
Host |
Ім’я хосту і номер порту |
If-Modified_Since |
Вказує, що клієнт бажає отримати сторінку, тільки якщо вона змінювалась після вказаної дати |
If-Unmodified-Since |
Вказує, що клієнт бажає отримати сторінку, тільки якщо вона змінювалась до вказаної дати |
Pragma |
Значення no-cache вказує, що сервлет, який діє як проксі, повинен ретранслювати запит, навіть якщо у нього є локальна копія |
Proxy-Authorization |
Використовується клієнтом для самоідентифікації на проксі, які цього потребують |
Range |
Дозволяє клієнту, що має часткову копію документа, запитати відсутні у нього частини |
Referer |
URL web-сторінки, з якої відбувається гіперпосилання |
Upgrade |
Дозволяє змінити версію протоколу HTTP |
User-Agent |
Ідентифікує браузер або інший клієнт |
Via |
Показує проміжні сайти, через які пройшов запит |
Warning |
Містить попередження про помилки кешування або перетворення вмісту |
Для деяких типів заголовків існують спеціальні методи:
getCookies |
Повертає вміст заголовка Cookie |
getAuthType getRemoteUser |
Розбивають заголовок Authorization на складові частини |
getContentLength |
Повертає Content-Length (типу int) |
getContentType |
Повертає Content-Type (типу String) |
getDateHeader getIntHeader |
Зчитують задані заголовки і перетворюють їх відповідно у значення типу Date і int |
getHeaderNames |
Повертає об’єкт Enumeration з іменами усіх заголовків |
getHeaders |
Повертає об’єкт Enumeration з усіма значеннями вказаного заголовку, якщо він зустрічається декілька разів |
getMethod |
Повертає основний метод запиту |
getRequestURI |
Повертає частину URL, яка поступає після імені хоста, але перед даними форми |
getProtocol |
Повертає версію протоколу HTTP |