Тестові завдання до розділу 16

Яким є спосіб опису даних у XML? (Виберіть два)

XML використовує DTD для опису даних

XML використовує XSL для опису даних

XML використовує XSD для опису даних

XML використовує CSS для опису даних

У яких рядках документа XML є помилки? (Виберіть два)

Яке з цих імен не є коректним ім'ям для елемента XML? (Виберіть 2)

лише одне ім'я некоректне.

Значення атрибутів XML завжди повинні бути розміщені в …? (Виберіть два)

можуть обходитися без символів, що обмежують.

Які види подій не можна обробляти за допомогою SAX-аналізатора?

події завантаження DTD-описів;

події під час аналізу DTD-описів;

всі перелічені події можна опрацювати.

Частина 3. ТЕХНОЛОГІЇ РОЗРОБКИ WEB-ДОДАТКІВ

У третій частині дано основи програмування розподілених інформаційних систем із застосуванням сервлетів,JSPі баз даних, а також основні засади створення власних бібліотек тегів.

ВСТУП У СЕРВЛЕТИ І JSP

Згідно із заявою Sun Microsystems, на даний момент понад 90% корпоративних систем підтримують платформу Java Enterprise Edition.

Сервлети – це компоненти програм Java Enterprise Edition, що виконуються на стороні сервера, здатні обробляти клієнтські запити та динамічно генерувати відповіді на них. Найбільшого поширення набули сервлети, що обробляють клієнтські запити за протоколом HTTP.

Усі сервлети реалізують загальний інтерфейсServletз пакетаjavax.servlet. Для обробки HTTP-запитів можна скористатися як базовий клас абстрактним класомHttpServletз пакетаjavax.servlet.http.

Життєвий цикл сервлетупочинається з його завантаження на згадку контейнером сервлетів при старті контейнера чи у відповідь перший запит. Далі проводяться ініціалізація, обслуговування запитів та завершення існування.

Першим викликається методinit(). Він дає сервлету можливість ініціалізувати дані та підготуватися для обробки запитів. Найчастіше у цьому методі програміст поміщає код, що кешує дані фази ініціалізації.

Після цього сервлет можна вважати запущеним, він чекає запитів від клієнтів. Запит, що з'явився, обслуговується методомservice(HttpServletRequestreq,HttpServletResponseres)сервлета, а всі параметри запиту упаковуються в об'єктreqкласуHttpServletRequest, що передається в сервлет. Ще одним параметром цього методу є об'єктresкласуHttpServletResponse, який завантажується інформація передачі клієнту. Для кожного нового клієнта при зверненні до сервлет створюється незалежний потік, в якому здійснюється виклик методуservice(). Методservice()призначений для одночасної обробки множини запитів.

Після завершення виконання сервлета контейнер сервлетів викликає методdestroy(), у тілі якого слід поміщати код звільнення зайнятих сервлетом ресурсів.

При розробці сервлетів як базовий клас у більшості випадків використовується не інтерфейсServlet, а класHttpServlet, що відповідає за обробку запитів HTTP. Цей клас має реалізований методservice().

Методservice()класуHttpServletслужить диспетчером інших методів, кожен із яких обробляє методи доступу до ресурсів. У специфікації HTTP визначено такі методи:GET,HEAD,POST,PUT,DELETE,OPTIONSтаTRACE. Найчастіше використовуються методиGETіPOST, з допомогою яких сервер передаються запити, і навіть параметри їх виконання.

У разі використання методуGET(за замовчуванням) параметри передаються як частина URL, значення можуть вибиратися з полів форми або передаватися безпосередньо через URL. При цьому запити кешуються та мають обмеження на розмір. При використанні методуPOST(method=POST) параметри (поля форми) передаються у вмісті HTTP-запиту та упаковані відповідно до поля заголовкаContent-Type.

За замовчуванням у форматі:

Однак формати упаковки параметрів можуть бути різні, наприклад у разі передачі файлів з використанням форми

До завдання методуservice()класуHttpServletвходить аналіз отриманого через запит методу доступу до ресурсів та виклик методу, ім'я якого схоже з назвою методу доступу до ресурсів, але перед ім'ям додається префікс>do:doGet()абоdoPost(). Крім цих методів, можуть використовуватися методиdoHead(),doPut(),doDelete(),doOptions()таdoTrace(). Розробник повинен перевизначити потрібний метод, розмістивши у ньому функціональну логіку.

У наступному прикладі наведений готовий до виконання шаблон сервлету:

// приклад # 1 : найпростіший сервлет :MyServlet.java

publicclassMyServletextendsHttpServlet