Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Секреты программирования для Internet на Java

.pdf
Скачиваний:
181
Добавлен:
02.05.2014
Размер:
3.59 Mб
Скачать

Введение

Часть I. Введение в Java

1. World Wide Web и Java

Как работает Java-программа Из чего состоит апплет

Оболочка времени выполнения апплета Чего не может апплет Безопасная загрузка апплетов по сети

Немного истории Уроки рынка бытовой электронной техники

Java попадает в сети Почему вы полюбите Java

Лучшее всех времен и народов Нет препроцессора

Не беспокойтесь о библиотеках и файле Makefile

Нет прямого доступа к памяти и арифметики указателей Нет подстановки операторов Нет множественного наследования Объектная ориентация Встроенная работа с сетью

Java - динамический язык Java - многопотоковая среда

2. Основы программирования на Java

Первые шаги

Инсталляция для Windows 95/Windows NT Power PC Macintosh

UNIX

Первая программа на Java

Разбор параметров в командной строке Простой текстовый вывод

Как устроена Java-программа

Обзор структуры Java-программы Переменные Методы Классы Пакеты

Оболочка времени выполнения Java Процессы компиляции и выполнения Сборка мусора

Создание Java-апплетов Ваш первый апплет

Как устроен апплет

Интеграция апплетов в World Wide Web Автоматическое документирование кода

Часть II. Апплеты

www.books-shop.com

3. Объектная ориентация в Java

Преимущества объектной ориентации Затенение данных Повторное использование через наследование

Возможности обслуживания и сопровождения Особенности объектов Java

Иерархия классов Java Специальные переменные Реализация классов Правила доступа

Как работает наследование Структурирование иерархий классов Абстрактные классы и методы

Полиморфизм и интерфейсы Java Обзор понятий и пример

4. Синтаксис и семантика

Идентификаторы и использование стандарта Unicode Комментарии Ключевые слова Типы данных

Примитивные типы данных Целые числа Числа с плавающей точкой Символы

Тип boolean

Преобразование примитивных типов данных Преобразование значений с плавающей точкой в целочисленные значения Преобразование числа с плавающей точкой двойной разрядности к обычной разрядности Преобразования типа boolean

Объявление переменных Область действия

Правила именования переменных Знаки операций

Знаки операций с числовыми аргументами Знаки операций над объектами Операции над строками

Пакеты

Импорт

Классы

Конструкторы

Деструкторы Модификаторы классов

Модификаторы объявления переменных Модификаторы методов Совмещение методов

Преобразование типов ссылочных переменных Интерфейсы Массивы

Создание массивов Инициализация массивов Доступ к массивам

Передача управления Оператор if-else

Операторы while и do-while

Оператор for

www.books-shop.com

Операторы break и continue

Оператор return Оператор switch

Исключения

5. Апплет в работе

Что такое апплет?

Стадии выполнения апплета Доступ к ресурсам Доступ к параметрам

Взаимодействие с пользователем События, генерируемые мышью

События, генерируемые клавиатурой Обработчики событий: что же происходит на самом деле?

Анимация при помощи потоков Интерфейс Runnable

Простые методы для работы с потоками Устранение мерцания

6. Интерфейс прикладного программирования

Основы API Структура API

Использование API

Класс java.lang.Object

Работа со строками Создание строк Сравнение строк Работа с подстроками Изменение строк Разбор строк

Преобразование строк в другие типы данных Упаковщики примитивных типов

Классы-контейнеры Класс Vector

Хеш-таблицы Стеки Интерфейсы API

Особо важные интерфейсы Интерфейс Enumeration

Интерфейсы java.lang.Clonable и java.lang.Runnable

Обработка событий при помощи java.util.Observer Математика и API

7. Пользовательский интерфейс

Апплет пересчета денежных сумм Ввод с клавиатуры Поля редактирования текста Кнопки Переключатели Списки Выпадающие списки Полосы прокрутки Надписи

www.books-shop.com

Часть III. Программирование на Java

8. Еще об интерфейсе пользователя

Программирование внешнего вида апплета Контейнеры

Панели

Окна

Меню

Шрифты Метрики шрифтов

Менеджеры размещения

FlowLayout

BorderLayout GridLayout CardLayout GridBagLayout

Выбор менеджера размещения Выяснение размера для текущего расположения

Примеры

Дизайн с использованием фреймов: FlowLayout Диалоговый апплет: BorderLayout

Апплет с панелями: BorderLayout Элементы одинакового размера: GridLayout

Динамическая смена компонентов: CardLayout Точное расположение: GridBagLayout Добавление меню: CardLayout

9. Графика и изображения

Рисование при помощи класса Graphics Рисование контурных объектов Рисование заполненных объектов Текст и рисунки

Использование класса Image Импорт изображений

Использование класса MediaTracker Создание изображений Интерфейсы для асинхронных изображений Манипулирование изображениями

10. Структура программы

Создание Java-пакетов Создание совместимых классов

Метод boolean equals(Object o) Метод String toString()

Создание повторно используемых компонентов Превращение проекта в работающий код Техника приведения типов объектов

Проверка кода на устойчивость Перехват исключений Генерация исключений

Информация об объектах при выполнении программы

www.books-shop.com

11. Многопотоковость

Создание потоков при помощи класса Thread Создание потоков при помощи интерфейса Runnable Управление потоками

Планирование потоков Группирование потоков Синхронизация потоков Переменные volatile

12. Программирование за рамками модели апплета

От апплетов к самостоятельным приложениям Основы графических Java-приложений Доступ к файловой системе

Машинозависимые методы Когда нужны машинозависимые библиотеки

Объяснение машинозависимых методов Подготовка библиотеки C

Выполнение собственных методов на C Создание и обработка объектов Java Компиляция и использование DLL

Часть IV. Java и Сеть

13. Работа с сетью на уровне сокетов и потоков

Сокеты Несвязываемые датаграммы Потоки

Входные потоки Выходные потоки Разнообразие потоков Потоки данных

Разбор данных текстового потока Взаимодействие InterApplet c каналами

14. Связь по сети с помощью URL

Использование класса URL Получение содержимого

Соединение с помощью класса URLConnection HTTP и класс URLConnection

Типы MIME и класс ContentHandler Класс ContentHandlerFactory

Сделайте это сами с помощью потоков Настройка класса URLConnection

Работа с другими протоколами Чем хороши URL

www.books-shop.com

15. Разработка серверов на Java

Создание собственного сервера и протокола Определение задач сервера Определение взаимодействия клиент-сервер

Построение сервера Java

Общение с помощью сокетов и работа с потоками ввода/вывода Работа со многими связями и клиент множественного апплета

Построение клиента общения

Часть V. Примеры приложений Интернет

16. Интерактивная анимация: рекламный апплет

Контракт

Свойства План работы

Создание структуры изображения Компоновка структуры изображения

Реализация Возможности конфигурации

Базовые классы для экранного вывода Создание анализатора

Создание ActionArea

Возможные улучшения

17. Взаимодействие с CGI: Java-магазин

Контракт

Свойства

Конструкция

Реализация HTTP-запросы

Размещение информации о товарах Класс FIFO

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

Считывание данных о конфигурации и инициализация Объединяем все вместе

Передача выбора пользователя на Web-сервер Обработка принятых данных при помощи CGI-программы

Возможные улучшения

18. Взаимодействие с серверами других протоколов: шахматный клиент

Контракт

Свойства

www.books-shop.com

Разработка и исполнение Взаимодействие с асинхронным сервером Создание шахматной доски

Связь шахматной доски с CIS Написание апплета

Возможные усовершенствования Окно login

Список текущих игроков

19. Как написать свой собственный сервер: планировщик встреч

Контракт Свойства планировщика

Руководство пользователя Как установить свой собственный сервер

Проект

Модуль сетевого интерфейса Сервер Обеспечение безопасности

Вопросы скорости и памяти Проект сервера Клиент

Модуль, специфический для данного проекта Модуль пользовательского интерфейса Большая картина

Реализация Обзор программы

Модуль сетевого интерфейса Модуль, специфический для данного проекта

Модуль пользовательского интерфейса Возможные улучшения

Часть VI. Приложения

Приложение А. О странице Online Companion

Приложение В. Диск CD-ROM

Введение

www.books-shop.com

Java - это мощный современный язык программирования, разработанный фирмой Sun Microsystems. Поначалу его планировали применять в системах интерактивного телевидения, однако когда Sun выпустила HotJava, броузер World Wide Web, позволяющий "прокручивать" внутри себя небольшие программы, иначе называемые апплетами (от англ. applet, "приложеньице"), вызываемые из Web-страниц, Java серьезно заинтересовал сообщество глобальной компьютерной сети Интернет. Вскоре после этого возможность работы с апплетами была добавлена в самый распространенный Web-броузер - Netscape Navigator 2.0. На сегодняшний день встроенные в Web-страницы апплеты на языке Java стали обязательным атрибутом каждого Web-сервера, претендующего на применение "высокой технологии".

Достоинство языка Java, конечно, состоит не только в том, что программы на нем можно размещать на Web-страницах. Кроме этого, Java просто мощный и легкий в изучении объектноориентированный язык. С его помощью решаются многие из повседневных сложных проблем, с которыми приходится встречаться программистам, разрабатывающим устойчивые, хорошо работающие приложения. Java при помощи класса thread обеспечивает многопотоковость приложений, а также самостоятельно, в фоновом режиме, производит сборку мусора (garbage collection), освобождая ненужные области памяти. Интерфейс прикладного программирования Java (API), входящий в состав комплекта разработчика Java Developers Kit, созданного фирмой Sun, дает программисту независимый от операционной среды доступ к необходимым для создания сложных приложений Интернет средствам, таким как сетевые сокеты и графическая оконная система.

Идея независимости программы от платформы, на которой она исполняется, стала реальностью при помощи Java. Java-апплеты в состоянии работать на любом компьютере, на котором можно запустить Web-броузер, поддерживающий Java. Самостоятельные Javaприложения компилируются в машинонезависимый байтовый код, выполняющийся без изменений на любом компьютере с Java-интерпретатором. Таким образом, Java - первый язык программирования, претендующий на звание по-настоящему независимого от компьютерной платформы.

Об этой книге

За последние месяцы слово "Java" стало известно практически всем. Однако для многих программистов и разработчиков WWW Java по-прежнему остается тайной. Одной из причин этого является частое использование Java для разработки Web-серверов, в результате чего многие программисты считают, что Java - всего лишь новое средство для создания более сложных и умных страниц WWW.

Такое предположение имеет под собой все основания, однако эта книга ставит своей целью развеять представление о Java как языке для описания домашних Web-страниц. Мы надеемся, что, с одной стороны, она расширит возможности разработчиков Web-серверов, а с другой - поможет программистам превратить Web в платформу программирования.

Первое и самое главное в Java - его новизна. Первые четыре главы посвящены описанию структуры языка, его достоинствам по сравнению с другими языками, синтаксису и семантике. Далее мы сосредоточимся на написании апплетов и посвятим им всю оставшуюся часть книги. В четвертой части мы обсудим, каким образом апплеты общаются друг с другом по Сети. Показав, как апплет взаимодействует с существующими серверами Интернет и как создать свой собственный сервер, мы продемонстрируем создание на базе апплетов по-настоящему распределенных сетевых программ.

Книга заканчивается описанием четырех сравнительно больших проектов, разобранных нами с самого начала и до конца. Они были выдуманы с целью отразить потребности реального мира, с которыми вам, возможно, придется столкнуться. Кроме того, мы надеемся, что, исследуя проекты, вы сможете свести все полученные из книги знания воедино.

CD-ROM и Online Companion

К книге прилагается диск CD-ROM; кроме того, для вас доступна Web-страница под названием

"Online Companion". На диске находится комплект разработчика Java (Java Developers Kit, JDK)

для операционных систем Windows 95/NT и Macintosh. JDK для UNIX можно найти на странице Online Companion. Кроме того, на диске находятся все рассматриваемые в книге программыпримеры, а также различные дополнительные апплеты, программы и утилиты.

Web-страница Online Companion (http://ww.vmedia.com/java.html) обеспечит вас последними новостями из мира Java. Язык Java, можно сказать, до сих пор находится в младенческом возрасте, поэтому ни одна книга по Java не может считаться полной даже спустя всего месяц после выхода из печати. Поэтому и была создана Online Companion - здесь вы найдете списки последних изменений в языке, последние достижения в области компиляторов и средств разработки и просто новости из мира Java.

www.books-shop.com