Предисловие | 5 |
|
Что вы найдёте в этой книге | 7 |
Аудитория | 8 |
Организация | 9 |
Соглашения, используемые в этой книге | 10 |
Использование примеров кода | 11 |
Вопросы и замечания | 11 |
Благодарности | 12 |
|
Глава 1. Создание сервлетов и JSP | 13 |
|
Введение | 13 |
Создание сервлетов | 13 |
Создание JSP | 19 |
Компиляция сервлетов | 22 |
Упаковка сервлетов и JSP | 24 |
Создание дескриптора развёртывания | 26 |
|
Глава 2. Развёртывание сервлетов и JSP | 29 |
|
Введение | 29 |
Развёртывание отдельного сервлета | 29 |
Использование элемента Context в файле server.xml для Tomcat | 34 |
Развёртывание отдельного сервлета в WebLogic | 36 |
Развёртывание одиночной страницы JSP под Tomcat | 41 |
Развёртывание одиночной страницы JSP на WebLogic | 43 |
Развёртывание web-приложения на сервере Tomcat | 44 |
Развёртывание web-приложения на WebLogic при помощи Ant | 50 |
Использование консоли администрирования WebLogic | 52 |
Использование компоновщика WebLogic Builder для развёртывания |
web-приложения | 55 |
Использование инструмента командной строки weblogic.Deployer | 60 |
|
Глава 3. Присвоение имён сервлетам | 63 |
|
Введение | 63 |
Отображение сервлета на определённое имя с помощью файла web.xml | 64 |
Создание более одного отображения на сервлет | 66 |
Создание для сервлетов URL как у JSP | 68 |
Отображение на сервлет обращений к статичному содержимому | 70 |
Вызов сервлетов, не имеющих отображения в web.xml | 71 |
Отображение на сервлет всех запросов к web-приложению | 73 |
Отображение запросов на контроллер с сохранением отображений |
сервлетов | 76 |
Создание начальных (welcome) файлов web-приложения | 80 |
Ограничение запросов к определённым сервлетам | 81 |
Предоставление доступа к определённым сервлетам только для |
контроллера | 87 |
|
Глава 4. Использование Apache Ant | 90 |
|
Введение | 90 |
Как получить и установить Ant | 91 |
Использование целей Ant | 93 |
Включение JAR-файлов Tomcat в путь к классам сборочного файла | 96 |
Компиляция сервлета с помощью сборочного файла Ant | 100 |
Создание WAR-файла с помощью Ant | 103 |
Создание JAR-файла с помощью Ant | 106 |
Запуск с помощью Ant приложения на Tomcat | 109 |
Остановка Tomcat с помощью Ant | 112 |
|
Глава 5. Различные форматы страниц JSP | 115 |
|
Введение | 115 |
Прекомпиляция JSP в Tomcat | 117 |
Прекомпиляция JSP в WebLogic | 119 |
Прекомпиляция JSP с помощью протокола лрекомпиляции | 121 |
Отображение страницы JSP на соответствующий ей класс реализации |
страницы | 122 |
Создание JSP в виде JSP-документа «с нуля» | 124 |
Генерирование XML-представления страницы JSP | 128 |
|
Глава 6. Динамически подключаемое содержимое страниц JSP |
и сервлетов | 137 |
|
Введение | 137 |
Подключение ресурса при каждой обработке запроса | 138 |
Использование внешней настройки включения ресурса в сервлет | 141 |
Включение в сервлет ресурсов с несколькими уровнями вложенности | 144 |
Включение в JSP редко изменяемых ресурсов | 149 |
Включение содержимого в JSP при каждой обработке запроса | 152 |
Использование внешнего файла конфигурации для включения ресурсов |
в JSP | 156 |
Включение фрагмента XML в JSP-документ | 161 |
Включение содержимого, находящегося за пределами контекста JSP | 164 |
|
Глава 7. Обработка данных от web-формы в сервлетах и JSP | 168 |
|
Введение | 168 |
Обработка HTTP-запроса POST в сервлете | 169 |
Обработка HTTP-запроса POST в JSP | 173 |
Установка свойств компонента JavaBean в JSP | 175 |
Присвоение в JSP значения параметра формы атрибуту, принадлежащему |
определённой области видимости | 179 |
Передача данных (POST) от сервлета | 182 |
Пересылка данных методом POST из JSP | 185 |
Использование сервлета для добавления параметра в строку запроса | 189 |
Использование JSP для добавления параметра к строке запроса | 191 |
Использование фильтра для чтения значений параметров | 192 |
|
Глава 8. Выгрузка файлов | 195 |
|
Введение | 195 |
Подготовка HTML-страницы для выгрузки файлов | 196 |
Использование библиотеки com.oreilly.servlet | 198 |
Выгрузка одного файла | 200 |
Выгрузка нескольких файлов | 202 |
Изменение имён файлов | 207 |
Использование JSP для обработки выгрузки файлов | 209 |
|
Глава 9. Обработка исключений в web-приложениях | 214 |
|
Введение | 214 |
Объявление обработчиков ошибок в web.xml | 214 |
Создание сервлета, обрабатывающего исключения | 218 |
Возврат из Сервлета сообщения об ошибке | 221 |
Возврат сообщения об ошибке из JSP | 224 |
Создание страницы JSP, обрабатывающей ошибки | 225 |
Объявление специальной JSP, обрабатывающей ошибки, возникающие |
в других JSP | 228 |
|
Глава 10. Чтение и запись Cookie | 232 |
|
Введение | 232 |
Установка cookie из сервлета | 234 |
Создание массива всех cookie, переданных в запросе | 238 |
Установка cookie из JSP | 239 |
Чтение значения cookie в сервлете | 243 |
Чтение значения cookie в JSP | 246 |
Изменение значения или удаление существующего cookie | 249 |
|
Глава 11. Отслеживание сеанса | 251 |
|
Введение | 251 |
Установка в web.xml времени простоя сеанса (time out) | 253 |
Установка времени простоя для всех web-приложений, работающих |
на Tomcat | 256 |
Программная установка времени простоя сеанса | 257 |
Проверка запроса HttpServletRequest — существует ли для него сеанс | 259 |
Отслеживание активности сеанса в сервлете | 261 |
Отслеживание активности сеанса в JSP | 264 |
Использование в JSP метода перезаписи URL | 269 |
Использование перезаписи URL в сервлетах | 272 |
Использование слушателя для отслеживания жизненного цикла сеанса | 275 |
Использование слушателя для наблюдения за атрибутами сеанса | 279 |
Использование фильтра для наблюдения за атрибутами сеанса | 283 |
|
Глава 12. Интеграция JavaScript с сервлетами и JSP | 288 |
|
Введение | 288 |
Включение модулей JavaScript в сервлет | 289 |
Включение модулей JavaScript в JSP | 293 |
Создание из сервлета, с помощью JavaScript, нового окна | 294 |
Создание нового окна из JSP при помощи JavaScript | 298 |
Использование JavaScript в сервлете для проверки данных, введённых |
в форму | 299 |
Использование JavaScript в JSP для проверки значений, введённых |
в форму | 303 |
|
Глава 13. Отправка не-HTML содержимого | 305 |
|
Введение | 305 |
Отправка PDF-файла | 306 |
Отправка файла, созданногов Word | 311 |
Отправка XML-файла | 313 |
Отправка аудиофайлов | 316 |
Просмотр внутренних ресурсов в сервлете | 319 |
|
Глава 14. Протоколирование сообщений сервлетов и JSP | 322 |
|
Введение | 322 |
Протоколирование без Log4j | 324 |
Установка Log4j | 326 |
Использование logger без файла конфигурации | 327 |
Добавление Appender к корневому Logger | 330 |
Использование шаблона для appender | 332 |
Использование log4j в JSP | 337 |
Протоколирование сообщений слушателя событий контекста сервлета | 343 |
Протоколирование сообщений слушателя событий сеанса | 347 |
|
Глава 15. Аутентификация клиентов | 350 |
|
Введение | 350 |
Создание пользователей и паролей в Tomcat | 350 |
Установка SSL-соединения в Tomcat | 352 |
Использование BASIC-аутентификации | 354 |
Аутентификация с использованием формы | 358 |
Завершение работы с аутентифицированным пользователем | 362 |
Использование JAAS для создания аутентифицирующего модуля | 365 |
Создание файла конфигурации JAAS | 372 |
Использование JAAS в сервлетах | 375 |
Использование JAAS в JSP | 377 |
|
Глава 16. Привязка, доступ и удаление атрибутов в web-приложениях | 382 |
|
Введение | 382 |
Задание в сервлетах атрибутов контекста сервлета | 383 |
Установка атрибутов контекста сервлета (объекта ServletContext) |
с помощью JSP | 386 |
Доступ и удаление в сервлете атрибутов контекста сервлета | 389 |
Доступ из JSP к атрибуту контекста сервлета или его удаление | 391 |
Установка из сервлета атрибутов сеанса | 393 |
Установка атрибутов сеанса из JSP | 395 |
Доступ из сервлета к атрибутам сеанса и их удаление | 397 |
Доступ и удаление атрибута сеанса с помощью JSP | 399 |
Установка атрибутов запроса с помощью сервлета | 400 |
Установка атрибутов запросас помощью JSP | 403 |
Использование сервлета для доступа к атрибутам запроса и их удаления | 404 |
Использование JSP для доступа к атрибутам запроса и их удаления | 406 |
|
Глава 17. Внедрение мультимедиа в страницы JSP | 408 |
|
Введение | 408 |
Внедрение апплета в JSP с использованием jsp.plugin | 408 |
Внедрение апплета в страницу JSP с помощью HTML-конвертера | 411 |
Автоматическое создание шаблона HTML для включения Flash-файлов | 415 |
Собственноручное создание шаблона HTML для внедрения файла Flash | 418 |
Внедрение файлов Flash в сервлет | 419 |
Внедрение в JSP фильмов в формате QuickTime | 421 |
Внедрение SVG-файла в JSP | 424 |
Внедрение фонового звука в JSP | 425 |
|
Глава 18. Работа с запросом клиента | 428 |
|
Введение | 428 |
Анализ заголовков HTTP-запроса в сервлете | 429 |
Анализ заголовков HTTP-запроса в JSP | 431 |
Использование фильтра для модификации заголовков запроса | 432 |
Автоматическое обновление сервлета | 436 |
Автоматическое обновление JSP | 438 |
Подсчёт числа запросов к web-приложению | 439 |
|
Глава 19. Фильтрация запросов и ответов | 442 |
|
Введение | 442 |
Отображение фильтра на сервлет | 443 |
Отображение фильтра на JSP | 446 |
Отображение на сервлет более одного фильтра | 448 |
Изменение порядка, в котором фильтры применяются к сервлетам | 450 |
Настройка параметров инициализации для фильтра | 451 |
Возможное блокирование запроса с помощью фильтра | 453 |
Фильтрация HTTP-ответа | 456 |
Использование фильтров с объектами RequestDispatcher | 459 |
Проверка параметров формы с помощью фильтра | 462 |
Блокирование IP-адреса с помощью фильтра | 467 |
|
Глава 20. Работа с электронной почтой в сервлетах и JSP | 471 |
|
Введение | 471 |
Размещение пути к классам, имеющим отношение к электронной почте, |
в вашем пути к классам | 472 |
Отправка почтового сообщения из сервлета | 473 |
Отправка из сервлета почтового сообщения с использованием компонента |
JavaBean | 477 |
Доступ к почтовому сообщению из сервлета | 481 |
Доступ из Сервлета к электронной почте с использованием компонента |
JavaBean | 487 |
Работа с вложениями в почтовые сообщения, полученные сервлетом | 488 |
Добавление вложения к почтовому сообщению в сервлете | 495 |
Чтение в сервлете заголовков полученного почтового сообщения | 500 |
|
Глава 21. Доступ к базам данных | 505 |
|
Введение | 505 |
Доступ из сервлета к базе данных без использования DataSource | 506 |
Настройка DataSource в Tomcat | 509 |
Использование DataSource в сервлетах на сервере Tomcat | 512 |
Создание DataSource на сервере WebLogic | 515 |
Использование JNDI-поиска для доступа к DataSource из WebLogic | 518 |
Использование DataSource страницами JSP на сервере WebLogic | 522 |
Вызов хранимых процедур из сервлета | 525 |
Вызов хранимой процедуры из JSP | 530 |
Преобразование объекта java.sql.ResultSet |
к javax.servlet.jsp.jstl.sql.Result | 534 |
Выполнение нескольких SQL-операторов в рамках одной транзакции | 539 |
Использование транзакций в JSP | 545 |
Получение информации о ResultSet | 548 |
|
Глава 22. Использование пользовательской библиотеки тегов | 553 |
|
Введение | 553 |
Создание классического обработчика тега | 554 |
Создание TLD (по версии JSP 1.2) для классического обработчика тега | 558 |
Создание TLD-файла (по версии JSP 2.0) для классического обработчика |
тега | 561 |
Как включить библиотеку тегов в web-приложение | 564 |
Упаковка библиотеки тегов в JAR-файл | 565 |
Использование пользовательского тега в JSP | 566 |
Обработка исключений в классе пользовательского тега | 568 |
Создание упрощённого обработчика тега | 571 |
Создание TLD для упрощённого обработчика тега | 574 |
Использование упрощённого обработчика тега в JSP | 576 |
Созлание файла тега JSP | 578 |
Упаковка файла тега JSP в web-приложение | 580 |
Упаковка файла тега JSP в JAR | 581 |
Использование пользовательского тега, связанного с файлом тега | 582 |
Добавление к библиотеке тегов класса слушателя | 584 |
|
Глава 23. Использование JSTL | 586 |
|
Введение | 586 |
Скачивание JSTL 1.0 и использование тегов JSTL на страницах JSP | 587 |
Скачивание пакета разработчика web-сервисов Java | 589 |
Использование тегов ядра JSTL | 590 |
Использование тегов JSTL, связанных с обработкой XML | 594 |
Использование тегов преобразования XML | 597 |
Использование JSTL-тегов форматирования | 600 |
Использование SQL-тегов JSTL с настройкой DataSource | 603 |
Использование SQL-тегов библиотеки JSTL без предварительной |
настройки DataSource | 607 |
Доступ к переменным, имеющим различные области видимости, |
с помощью EL | 609 |
Доступ к параметрам запроса с помощью EL | 611 |
Использование EL для доступа к заголовкам запроса | 613 |
Использование EL для доступа к конкретному заголовку запроса | 615 |
Доступ к cookie с помощью EL | 616 |
Использование EL для доступа к свойствам компонентов JavaBean | 618 |
Использование функции JSTL | 623 |
|
Глава 24. Интернационализация | 628 |
|
Введение | 628 |
Определение локали клиента в сервлете | 629 |
Определение всех локалей клиента в JSP | 633 |
Создание ResourceBundle в виде файла свойств | 635 |
Создание ResourceBundle в виде Java-класса | 637 |
Использование ResourceBundle. в сервлете | 638 |
Использование ResourceBundle в JSP | 641 |
Форматирование дат в сервлете | 643 |
Форматирование дат в JSP | 645 |
Форматирование денежных сумм в сервлете | 646 |
Форматирование денежных сумм в JSP | 648 |
Форматирование процентов в сервлете | 650 |
Форматирование процентов в JSP | 652 |
Установка контекста локализации в дескрипторе развёртывания | 653 |
|
Глава 25. Использование JNDI и компонентов Enterprise JavaBean | 655 |
|
Введение | 655 |
Конфигурирование JNDI-объекта на Tomcat | 656 |
Доступ из сервлета к JNDI-pecypcy Tomcat | 659 |
Доступ к JNDI-pecypcy сервера Tomcat из JSP | 665 |
Конфигурирование JNDI-pecypca в WebLogic | 669 |
Просмотр JNDI-дерева на сервере WebLogic | 671 |
Доступ из сервлета к JNDI-pecypcy на сервере WebLogic | 672 |
Доступ к JNDI-pecypcy WebLogic из JSP | 675 |
Доступ к компоненту EJB с использованием JNDI-дерева WebLogic | 678 |
|
Глава 26. Пожинание информации из Web | 687 |
|
Введение | 687 |
Синтаксический разбор HTML-страницы | 688 |
Использование сервлетов для пожинания Web-данных | 691 |
Создание компонента JavaBean — синтаксического анализатора |
Web-страницы | 697 |
Использование в сервлете компонента JavaBean | 700 |
Использование в JSP компонента JavaBean | 702 |
|
Глава 27. Использование Web API сайтов Google и Amazon | 705 |
|
Введение | 705 |
Предварительная подготовка к работе с API Web-сервисов Google | 708 |
Создание компонента JavaBean для соединения с Google | 709 |
Использование сервлета для соединения с Google | 713 |
Использование JSP для соединения с Google | 717 |
Подготовка к использованию API Web-сервисов Amazon | 719 |
Создание компонента JavaBean для соединения c Amazon | 721 |
Использование сервлета для соединения с Amazon | 726 |
Использование JSP для соединения с Amazon | 729 |
|
Предметный указатель | 733 |