Думай на Java

       

Решения для выбранных управжнений могут


Решения для выбранных управжнений могут быть найдены в электронной документации The Thinking in Java Annotated Solution Guide, доступной за малую плату на www.BruceEckel.com.
  • Скомпилируйте и запустите программы JabberServer и JabberClient из этой главы. Теперь измените файлы, удалив всю буфферизацию ввода и вывода, затем скомпилируйте и запустите программу снова, чтобы увидеть результат.
  • Создайте сервер, который спрашивает пароль, а затем открывает файл и посылает его содержимое по сети. Создайте клиента, который соединяется с сервером, выдает соответствующий пароль, затем получает и записывает файл. Проверьте пару программ на вашей машине, используя localhost (IP адрес заглушки 127.0.0.1 производится вызовом InetAddress.getByName(null)).
  • Измените сервер из Упражнения 2 так, чтобы он использовал множественные потоки для обслуживания множественных клиентов.
  • Измените JabberClient.java так, чтобы не происходил сброс буфера и пронаблюдайте эффект.
  • Измените MultiJabberServer так, чтобы он использовал накопление нитей вместо выбрасывания нити при каждом отключении клиента, нити должны помещать себя в “доступный пул” нитей. Когда новый клиент хочет подключится, сервер должен искать в доступном пуле нить для обработки запроса, и если нить не найдена, создавать новую. Таким образом число необходимых нитей на самом деле будет больше необходимого количества. Число накопленных нитей такое, что не требуется изишнего создания и разрушения нити для каждого нового клиента.
  • Начав с ShowHTML.java, создайте апплет, который является защищенным паролем шлюзом к определенной части вашего Web сайта.
  • Измените CIDCreateTables.java так, чтобы он читал SQL строки из текстового файла вместо CIDSQL.
  • Сконфигурируйте вашу систему так, чтобы вы могли полностью удовлетворить CIDCreateTables.java и LoadDB.java.
  • Измените ServletsRule.java, переписав метод destroy( ), чтобы он записывал значение i в файл, и метод init( ), чтобы он восстанавливал значение. Продемонстрируйте, что он работает при перезапуске контейнера сервлетов. Если у вас нет контейнера сервлетов, вы можете загрузить, установить и запустить Tomcat jakarta.apache.org, чтобы запускать сервлеты.
  • Создайте сервлет, который добавляет cookie в объект ответа, таким образом сохраняя их на стороне клиента. Добавьте в сервлет код, который находит и отображает cookie. Если у вас нет контейнера сервлетов, вы можете загрузить, установить и запустить Tomcat jakarta.apache.org, чтобы запускать сервлеты.
  • Создайте сервлет, который использует объект Session для хранения информации о сессии по вашему выбору. В том же сервлете найдите и отобразите эту информацию о сессии. Если у вас нет контейнера сервлетов, вы можете загрузить, установить и запустить Tomcat jakarta.apache.org, чтобы запускать сервлеты.
  • Создайте сервлет, который изменяет интервал неактивности сессии на 5 секунд, с помощью вызова getMaxInactiveInterval( ). Проверьте, чтобы убедится, что сессия не продолжается после 5 секунд. Если у вас нет контейнера сервлетов, вы можете загрузить, установить и запустить Tomcat jakarta.apache.org, чтобы запускать сервлеты.
  • Создайте JSP страницу, печатающую строку текста, используя ярлык <H1>. Установите цвет этого текста случайным образом, используя код Java, встроенный в JSP страницу. Если у вас нет JSP контейнера, вы можете загрузить, установить и запустить Tomcat jakarta.apache.org, чтобы запускать JSP.
  • Измените значение максимального возраста в Cookies.jsp и пронаблюдайте поведение в двух разных браузерах. Также обратите внимание на разницу между повторным посещением страницы и закрытием и перезапуском броузера. Если у вас нет JSP контейнера, вы можете загрузить, установить и запустить Tomcat jakarta.apache.org, чтобы запускать JSP.
  • Создайте JSP с полями, которая позволит пользователю вводить время действительности сессии, а второе поле, которое содержит данные, хранимые в сессии. Кнопка отсылки обновляет страницу и показывает текущее время истечения и данные сессии, затем помещает их в качестве значений по умолчанию вышеупомянутых полей. Если у вас нет JSP контейнера, вы можете загрузить, установить и запустить Tomcat jakarta.apache.org, чтобы запускать JSP.
  • (Повышенной сложности) Возьмите программу VLookup.java и изменте ее так, чтобы когда вы щелкали на результирующее имя, она автоматически брала имя и копировала его в буфер обмена (чтобы вы могли просто вставить его в ваш электронный адрес). Вам нужно вновь обратиться к , чтобы вспомнить как использовать буфер обмена в 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).
    [ ] [ ] [ ] [ ] [ ]

    Содержание раздела