Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Дейтел Х.М. -> "Технологии профаммирования на Java 2 Книга 3" -> 63

Технологии профаммирования на Java 2 Книга 3 - Дейтел Х.М.

Дейтел Х.М. , Дейтел П.Дж., Сантри С.И. Технологии профаммирования на Java 2 Книга 3 — М.: Бином-Пресс, 2003. — 672 c.
ISBN 5-9518-0051-Х
Скачать (прямая ссылка): tehprogrammjava220033.pdf
Предыдущая << 1 .. 57 58 59 60 61 62 < 63 > 64 65 66 67 68 69 .. 271 >> Следующая

ETvfei Типичная ошибка программирования 3.6 _
Должен быть задан один или оба атрибута действия <jsp:useBean>: class и type; в противном случае возникнет ошибка на этапе трансляции.
134
Глава з
На страницах многих современных Web-сайтов размещается меняющаяся реклама. При каждом посещении одной из таких страниц в Web-браузере пользователя, как правило, отображается новая реклама. Обычно щелчок мышью на изображении с рекламой переносит вас на Web-сайт компании, поместившей рекламу. Наш первый пример действия <jsp:useBean> демонстрирует простой компонент JavaBeans, который циклически отображает пять рекламных изображений. В этом примере в качестве рекламы используются рисунки обложек ряда книг по программированию. При щелчке на обложке вы переходите на Web-сайт Amazon.com, где сможете прочесть информацию о книге и, возможно, заказать ее.
Компонент Rotator (рис. 3.17) определяет три метода: getlmage, getLink и nextAd. Метод getlmage возвращает имя файла изображения для рисунка обложки. Метод getLink возвращает гиперссылку на информацию о книге на сайте Amazon.com. Метод nextAd обновляет объект Rotator, чтобы следующие обращения к методам getlmage и getLink возвращали информацию о другой рекламе. Методы getlmage и getLink представляют, соответственно, свойства только для чтения image и link компонента JavaBeans. Объект Rotator отслеживает текущую рекламу с помощью переменной selectedlndex, которая обновляется путем вызова метода nextAd.
Атрибут Описание
id Имя, используемое для манипулирования объектом Java с помощью действий <jsp:setProperty> и <jsp:getProperty>. Переменная с этим именем также объявляется для использования ее в элементах сценария JSP. Задаваемое здесь имя чувствительно к регистру.
scope Область видимости, в которой доступен объект Java: page, request, session или application. Область видимости по умолчанию " page (страница).
class Полное имя класса объекта Java.
beanName Имя компонента, которое используется методом instantiate класса Java.beans.Beans для загрузки компонента JavaBeans в память.
type Тип компонента JavaBeans. Этот тип может совпадать с типом атрибута class, быть суперклассом этого типа или интерфейсом, реализуемым этим типом. Значением по умолчанию является тип class. Исключение ClassCastException возбуждается, если тип объекта Java не совпадает с типом, задаваемым атрибутом type.
Рис. 3.16. Атрибуты действия <jsp:useBean>
1 // Рис. 3.17. Rotator.java
2// Компонент JavaBeans для создания меняющейся рекламы.
3 package com.deitel.advjhtpl.jsp.beans;
4
5 public class Rotator (
6 private String images[] = { "images/jhtp3. jpg",
7 "images/xmlhtpl.jpg", "images/ebechtpl. jpg",
8 "images/iw3htpl. jpg", "images/cpphtp3. jpg"}; 9
10 private String links[] = (
11 "http://www.amazon.com/exec/obidos/ASIN/0130125075/" +
12 "deitelassociatin",
13 "http://www.amazon.com/exec/obidos/ASIN/0130284173/" +
14 "deitelassociatin",
15 "http://www.amazon.com/exec/obidos/ASIN/013028419X/" +
JavaServer Pages (JSP)
135
16 "deitelassociatin",
17 "http://www.amazon.com/exec/obidos/ASIN/0130161438/" +
18 "deitelassociatin",
19 "http://www.amazon.com/exec/obidos/ASIN/0130895717/" +
20 "deitelassociatin" ); 21
22 private int selectedlndex = 0; 23
24 // возврат файла изображения для текущей рекламы
25 public String getlmageO
26 {
27 return images[ selectedlndex ];
28 } 29
30 Il возврат URL Web-сайта, разместившего рекламу
31 public String getLinkО
32 {
33 return links[ selectedlndex ];
34 } 35
36 Il обновление индекса selectedlndex, чтобы последующие
37 I/ обращения к getlmage и getLink возвращали другую рекламу
38 public void nextAd()
39 {
40 selectedlndex = ( selectedlndex + 1 ) % images . length;
41 )
42 )__
Рис. 3.17. Компонент Rotator, который работает с несколькими рекламными изображениями
В строках 7-8 JSP-страницы adrotator.jsp (рис. 3.18) извлекается ссылка на экземпляр класса Rotator. Атрибут id для компонента имеет значение rotator. JSP-страница использует это имя для манипулирования компонентом. Объект имеет сеансовую область видимости (session), чтобы каждый отдельный клиент видел одну и ту же последовательность рекламных изображений в течение сеанса просмотра. Когда JSP-страница adrotator.jsp получает запрос от нового клиента, контейнер JSP создает компонент и сохраняет его в JSP-странице в данных сеанса session для этого клиента (объект типа Http Session). Для каждого запроса к этой JSP-странице в строке 22 используется ссылка rotator, созданная в строке 7, чтобы вызвать метод nextAd компонента Rotator. Таким образом, каждый запрос будет получать следующую рекламу, обслуживаемую компонентом Rotator. В строках 29-34 определяется гиперссылка на сайт Amazon.com для определенной книги. В строках 29-30 вводится действие <jap:getProperty> для получения значения свойства link компонента Rotator. Действие <jsp:getProperty> имеет два атрибута — name и property — которые задают объект, подлежащий манипулированию, и свойство, значение которого следует получить. Если объект JavaBeans использует стандартные соглашения по именованию компонентов JavaBeans, для получения значения свойства link из компонента следует использовать метод getLink. Действие <jsp:getProperty> вызывает метод getLink для компонента, на который указывает ссылка rotator, преобразует возвращенное значение в строку и выводит эту строку в составе ответа клиенту. Свойство link становится значением атрибута href гиперссылки. Гиперссылка представляется на итоговой Web-странице в виде изображения обложки книги. В строках 32-33 создается элемент img и использу-
Предыдущая << 1 .. 57 58 59 60 61 62 < 63 > 64 65 66 67 68 69 .. 271 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100