Секреты программирования для Internet на Java
.pdfВведение
Часть 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