Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lection_servlets.doc
Скачиваний:
30
Добавлен:
23.02.2016
Размер:
356.35 Кб
Скачать

Сумісне використання bean-компонентів

Об’єкти, створені за допомогою дії jsp:usebean, не тільки прив’язуються до певної локальної змінної, але й зберігаються в одному з чотирьох місць, в залежності від значення необов’язкового атрибута scope. Цей атрибут має такі можливі значення:

page (значення по замовчуванню) – показує, що bean-компонент повинен поміщуватися в об’єкті класу PageContext на час поточного запиту. При цьому компонента доступна діям jsp:getProperty, jsp:setProperty, скриплетам або виразам, розташованим на даній сторінці;

application – bean-компонент поміщується в об’єкті класу ServletContext, який використовується сумісно всіма сервлетами одного web-додатку;

session – bean-компонент поміщується в об’єкті класу HttpSession, пов’язаним з поточним запитом;

request – bean-компонент поміщується в об’єкт класу ServletRequest на час обробки поточного запиту.

Для більш зручного сумісного використання bean-компонентів у деяких випадках елементи, пов’язані з компонентами bean, обчислюються умовно.

По-перше, дія jsp:useBean створює новий компонент лише у тому випадку, якщо ще не існує компонента з тим самим значенням атрибута id і той самою областю видимістю, визначеною атрибутом scope. Якщо такий об’єкт знаходиться, він просто зв’язується зі змінною, на яку посилається атрибут id.

По-друге, замість дії

<jsp:useBean … />

можна використати конструкцію

<jsp:useBean … >

//оператори

</jsp:useBean>

Друга форма використовується, якщо оператори між початковим і завершальним тегами jsp:useBean виконуються лише при створенні нового bean-компонента (а не при використанні вже існуючого). Таке умовне виконання зручне для завдання початкових значень властивостей bean-компонентів, які сумісно використовуються декількома сторінками. Оскільки невідомо, до якої сторінки відбудеться перше звернення, то невідомо і те, на якій сторінці повинен бути код ініціалізації. Отже, усі сторінки можуть містити даний код, але тільки та сторінка, до якої звернулися у першу чергу, виконає його.

Приклад:

<jsp:useBean id=”counter”

class=”AccessCountBean”

scope=”application”>

<jsp:setProperty name=”counter”

property=”firstPage”

value=”Current Page Name” />

</jsp:useBean>

The pages, using the counter have been accessed <jsp:getProperty name=”counter” property=”accessCount” /> time

Робота з базами даних

У API JDBC інтенсивно експлуатується концепція інтерфейсів — набору методів, що повинні бути реалізовані постачальником того чи іншого сервісу, у даному випадку постачальником драйвера JDBC. З програмної точки зору драйвер JDBC є щось інше як реалізація інтерфейсів передбачених API JDBC. По способу реалізації драйвери підрозділяються на 4 типи:

  1. До цього типу відносяться драйвери реалізовані поверх ODBC. Тобто фактично усі виклики API JDBC транслюються у виклики ODBC, а далі обробку виклику веде API ODBC. Іноді ще 1-й тип драйверів називається "JDBC-ODBC bridge". Перевагою драйверів цього типу, є те що всі джерела даних доступні за допомогою ODBC стають доступними Java додатку, недоліки такого драйвера: низька швидкість роботи, труднощі конфігурації і неможливість підтримки всіх можливостей API JDBC.

  2. До другого типу відносяться драйвери програмні частини, якого написані на інших мовах (як правило на С++). Звичайно в цьому випадку для доступу до бази даних використовуються бібліотеки розроблені виробником, а для їхнього виклику використовується JNI — Java інтерфейс виклику внутрішніх функцій. Такі драйвери зазвичай дуже швидкі, але так само як і у випадку JDBC-ODBC драйверів вимагають установки спеціального ПО на клієнтській машині. Для OCI-JDBC драйвера Oracle наприклад потрібна установка клієнта SQL*NET.

  3. На відміну від попередніх типів драйверів даний тип драйвера повністю реалізується на Java, але при цьому виклики JDBC транслюються до мережного протоколу (RMI, HTTP і т.д.), що далі транслюється до специфічного протоколу бази даних. Такий драйвер схожий на драйвери JDBC-ODBC, відмінність у тім, що реалізується цілком на Java, за рахунок чого відсутня необхідність в установці клієнтського ПО.

  4. Також як і драйвери 3-го типу реалізується цілком на Java, але виклики реалізуються використанням протоколу бази даних, минаючи мережний протокол.

Будемо вважати, що ви використовуєте 3 тип драйверів, оскільки ми не знаємо яка у вас операційна система. Для отримання доступу до БД необхідно виконати наступні дії:

  1. Завантаження JDBC-драйвера.

  2. Визначення URL для встановлення з’єднання.

  3. Встановлення з’єднання.

  4. Створення об’єкту Statement.

  5. Виконання запиту або оновлення БД.

  6. Обробка результатів.

  7. Закриття з’єднання.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]