Философия Java


Упражнения


Решения для выбранных управжнений могут быть найдены в электронной документации The Thinking in Java Annotated Solution Guide, доступной за малую плату на www.BruceEckel.com.

  1. Скомпилируйте и запустите программы JabberServer и JabberClient из этой главы. Теперь измените файлы, удалив всю буфферизацию ввода и вывода, затем скомпилируйте и запустите программу снова, чтобы увидеть результат.
  2. Создайте сервер, который спрашивает пароль, а затем открывает файл и посылает его содержимое по сети. Создайте клиента, который соединяется с сервером, выдает соответствующий пароль, затем получает и записывает файл. Проверьте пару программ на вашей машине, используя localhost (IP адрес заглушки 127.0.0.1 производится вызовом InetAddress.getByName(null)).
  3. Измените сервер из Упражнения 2 так, чтобы он использовал множественные потоки для обслуживания множественных клиентов.
  4. Измените JabberClient.java так, чтобы не происходил сброс буфера и пронаблюдайте эффект.
  5. Измените MultiJabberServer так, чтобы он использовал накопление нитей вместо выбрасывания нити при каждом отключении клиента, нити должны помещать себя в “доступный пул” нитей. Когда новый клиент хочет подключится, сервер должен искать в доступном пуле нить для обработки запроса, и если нить не найдена, создавать новую. Таким образом число необходимых нитей на самом деле будет больше необходимого количества. Число накопленных нитей такое, что не требуется изишнего создания и разрушения нити для каждого нового клиента.
  6. Начав с ShowHTML.java, создайте апплет, который является защищенным паролем шлюзом к определенной части вашего Web сайта.
  7. Измените CIDCreateTables.java так, чтобы он читал SQL строки из текстового файла вместо CIDSQL.
  8. Сконфигурируйте вашу систему так, чтобы вы могли полностью удовлетворить CIDCreateTables.java и LoadDB.java.
  9. Измените ServletsRule.java, переписав метод destroy( ), чтобы он записывал значение i в файл, и метод init( ), чтобы он восстанавливал значение. Продемонстрируйте, что он работает при перезапуске контейнера сервлетов. Если у вас нет контейнера сервлетов, вы можете загрузить, установить и запустить Tomcat jakarta.apache.org, чтобы запускать сервлеты.
  10. Создайте сервлет, который добавляет cookie в объект ответа, таким образом сохраняя их на стороне клиента. Добавьте в сервлет код, который находит и отображает cookie. Если у вас нет контейнера сервлетов, вы можете загрузить, установить и запустить Tomcat jakarta.apache.org, чтобы запускать сервлеты.
  11. Создайте сервлет, который использует объект Session для хранения информации о сессии по вашему выбору. В том же сервлете найдите и отобразите эту информацию о сессии. Если у вас нет контейнера сервлетов, вы можете загрузить, установить и запустить Tomcat jakarta.apache.org, чтобы запускать сервлеты.
  12. Создайте сервлет, который изменяет интервал неактивности сессии на 5 секунд, с помощью вызова getMaxInactiveInterval( ). Проверьте, чтобы убедится, что сессия не продолжается после 5 секунд. Если у вас нет контейнера сервлетов, вы можете загрузить, установить и запустить Tomcat jakarta.apache.org, чтобы запускать сервлеты.
  13. Создайте JSP страницу, печатающую строку текста, используя ярлык <H1>. Установите цвет этого текста случайным образом, используя код Java, встроенный в JSP страницу. Если у вас нет JSP контейнера, вы можете загрузить, установить и запустить Tomcat jakarta.apache.org, чтобы запускать JSP.
  14. Измените значение максимального возраста в Cookies.jsp и пронаблюдайте поведение в двух разных браузерах. Также обратите внимание на разницу между повторным посещением страницы и закрытием и перезапуском броузера. Если у вас нет JSP контейнера, вы можете загрузить, установить и запустить Tomcat jakarta.apache.org, чтобы запускать JSP.
  15. Создайте JSP с полями, которая позволит пользователю вводить время действительности сессии, а второе поле, которое содержит данные, хранимые в сессии. Кнопка отсылки обновляет страницу и показывает текущее время истечения и данные сессии, затем помещает их в качестве значений по умолчанию вышеупомянутых полей. Если у вас нет JSP контейнера, вы можете загрузить, установить и запустить Tomcat jakarta.apache.org, чтобы запускать JSP.
  16. (Повышенной сложности) Возьмите программу VLookup.java и изменте ее так, чтобы когда вы щелкали на результирующее имя, она автоматически брала имя и копировала его в буфер обмена (чтобы вы могли просто вставить его в ваш электронный адрес). Вам нужно вновь обратиться к Главе 13, чтобы вспомнить как использовать буфер обмена в JFC.

[72] Это означает более четырех миллиардов чисел, которые появляются повторно. Новый стандарт IP адресов будет использовать 128-битовый номер, который должен производить достаточно уникальных IP адресов в обозримом будующем.

[73] Создано Dave Bartlett.

[74] Dave Bartlett помогал в разработке этого материала, а также раздела JSP.

[75] Главная догма Эксремального Программирования (Extreme Programming (XP)). Смотрите www.xprogramming.com.

[76] Многие клетки мозга умирают в агонии при обнаружении этой информации.

[77] Этот раздел вышел при содействии Robert Castaneda с помошью Dave Bartlett.

[78] Этот раздел вышел при содействии Bill Venners (www.artima.com).

[ Предыдущая глава ] [ Оглавление ] [ Содержание ] [ Индекс ] [ Следующая глава ]




Начало  Назад  Вперед



Книжный магазин