- •Основні відомості про сервлети і 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-сторінок
- •Використання аплетів у якості клієнтських інтерфейсів сервлетів
Включення файлів і аплетів у документи jsp
Існує три основних способи включення зовнішніх документів у документ JSP:
директива include включає код для елементів, які зустрічаються на багатьох сторінках, перед тим, як сторінка транслюється в сервлет.
директива jsp:include дозволяє включати вміст текстових файлів.
директива jsp:pluginвикористовується длявбудовування Java-аплетів.
Директива include включає файл в головну сторінку документаJSP на етапі трансляції документа в сервлет. Синтаксис використання:
<%@ include file=”Relative URL” %>
Використання JavaBeans з jsp
Інтерфейс API JavaBeans надає стандартний формат для класів Java.
Основні вимоги до bean-компонента:
Клас bean-компонента повинен мати конструктор без параметрів. Цей конструктор буде викликатися при створенні bean-компонентівJSP-сторінкою.
Клас bean-компонента не повинен мати відкритих (public) змінних екземпляра.
Доступ до постійних значень повиненздійснюватися за допомогою відповідних методів getXxx і setXxx.В цьому випадку кажуть, що у класі присутня властивість Xxx. Для читання булевих властивостей застосовують методи isXxx.
Приклад bean-компонента Book, який володіє властивостями author і title:
public class Book {
private String title;
private String author;
public Book() {
author = "Stephen King";
title = "The Dark Tower";
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
}
Основи використання bean-компонентів
Дія jsp:useBean дозволяє завантажити bean-компонент, який використовуватиметься на JSP-сторінці, наприклад:
<jsp:useBean id=”name” class=”package.Class” />
Це означає „створити об’єкт заданого класу Class і пов’язати його із змінною, що визначається атрибутом id”.
Якщо необхідно, щоб змінна була оголошена як суперклас bean-компонета або як інтерфейс, який bean реалізує, застосовують атрибут type, наприклад:
<jsp:useBean id=”thread1” class=”MyClass” type=”Runnable” />
Доступ до властивостей bean-компонентів
Доступ до властивостей bean-компонентів можна отримати за допомогою дії jsp:getProperty, в якому визначається атрибут name із значенням, співпадаючим зі значенням атрибута id, заданого у дії jsp:useBean, а також атрибут property, який задає ім’я потрібної властивості. Наприклад:
<jsp:getProperty name=”book1” property=”title” />
Альтернативний спосіб виконання попередньої дії – використання такого виразу:
<%= book1.getTitle() %>
Для зміни значення властивості bean-компонента використовується дія jsp:setProperty. У найпростішому випадку при цьому вказуються три атрибути: name,idі value (нове значеня), наприклад:
<jsp:setProperty name=”book1” property=”title” value=”The Shining” />
Альтернативний спосіб виконання попередньої дії – використання скриплету:
<% book1.setTitle(“The Shining”); %>
Для задання атрибутів nameі valueможна використовувати JSP-вирази, наприклад:
<jsp:setProperty name=”book1” property=”title”
value=’<%= request.getParameter(”itemID”) %>’ />
Якщо необхідно пов’язати значення властивості з параметром запиту, то замість атрибута value слід використати атрибут param, значення якого дорівнює імені параметра, який передається JSP-сторінці. При цьому автоматично виконується перетворення рядкового типу у числові, символьні або булеві типи значень, Наприклад:
<jsp:setProperty name=”book1” property=”title” param=”title” />
Пов’язування властивостей із вхідними параметрами звільняє програміста від виконання перетворень більшості типів. JSP дозволяє встановити зв’язки між усіма властивостями і вхідними параметрами з аналогічними іменами. Для цього значення атрибута property встановлюється рівним „*”, наприклад:
<jsp:setProperty name=”book1” property=”*” />
Якщо певний вхідний параметр відсутній, то ніяких дій не відбувається (тобто null у якості значення властивості не передається). Оскільки імена властивостей і вхідних параметрів чутливі до регістру, то вони повинні точно відповідати один одному.