Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Дейтел Х.М. -> "Технологии профаммирования на Java 2 Книга 2" -> 18

Технологии профаммирования на Java 2 Книга 2 - Дейтел Х.М.

Дейтел Х.М. , Дейтел П.Дж., Сантри С.И. Технологии профаммирования на Java 2 Книга 2 — М.: Бином-Пресс, 2003. — 468 c.
ISBN 5-9518-0051-Х
Скачать (прямая ссылка): tehprogrammjava220032.pdf
Предыдущая << 1 .. 12 13 14 15 16 17 < 18 > 19 20 21 22 23 24 .. 204 >> Следующая

"CITY WEA LO/HI WEA LO/HI"
после вечернего обновления (обычно около 22.30 по стандартному восточному времени).
В строках 65—85 осуществляется чтение информации о погоде в каждом городе и помещение этой информации в объекты WeatherBean. Каждый объект WeatherBean содержит название города, температуру и описание погоды. В строке 61 создается список List для хранения объектов WeatherBean. В строках 76-79 формируется объект WeatherBean для текущего города. Первые 16 символов в строке in put Line относятся к названию города, следующие 6 символов описывают погоду (т.е. содержат прогноз), а следующие 6 символов представляют верхний и нижний предел температуры. Последние два столбца данных относятся к прогнозу погоды на следующий день и в этом примере игнорируются. В строке 82 объект WeatherBean добавляется в список List. В строке 87 объект BufferedRead и связанный с ним поток ввода InputStream закрывается.
Метод getWeatherlnformation (строки 107-110) представляет собой метод интерфейса WeatherService, который класс WeatherServicelmpl должен реализовы-вать, чтобы отвечать на удаленные запросы. Метод возвращает сериализованную копию списка weatherlnf ormation (объект класса List). Клиенты вызывают этот удаленный метод, чтобы получить информацию о погоде.
Метод main (строки 113-127) создает удаленный объект WeatherServicelmpl. Когда конструктор выполняется, он экспортирует удаленный объект, чтобы прослушивать удаленные запросы. В строке 106 определяется URL, который клиент может использовать для получения удаленной ссылки на объект. Клиент использует эту удаленную ссылку для вызова методов удаленного объекта. URL обычно имеет форму
rmi://хост:порт/ИмяУдаленногоОбъекта
где хост представляет собой имя компьютера, который выполняет реестр для удаленных объектов (он также является компьютером, на котором выполняется удаленный объект), порт представляет собой номер порта, через который выполняется реестр на хост-компьютере, а ИмяУдаленногоОбъекта — имя, которое клиент будет предоставлять при попытках обнаружить удаленный объект в реестре. Утилита rmiregistry обслуживает реестр удаленных объектов и является составной частью J2SE. Номер порта реестра RMI по умолчанию — 1099.
Общая методическая рекомендация 2.7_
Предполагается, что клиенты RMI должны осуществлять соединение на порту 1099 при попытке найти удаленный объект в реестре RMI (если в URL для удаленного объекта явным образом не задан другой номер порта).
Общая методическая рекомендация 2.8_
Клиент должен задавать номер порта только в том случае, если реестр RMI выполняется на порту, отличном от порта 1099, принятого по умолчанию.
В этой программе URL удаленного объекта имеет вид
rmi : .//Iocalhost/WeatherService
Из этого следует, что реестр RMI выполняется на машине localhost (т.е. на локальном компьютере), а для обнаружения клиентом сервиса должно использоваться имя WeatherService. Имя localhost является синонимом ІР-адреса 127.0.0.1, поэтому предыдущий URL эквивалентен
38
Глава 2
rmi://127.О.О .1/WeatherService
В строке 124 вызывается статический метод rebind класса Naming (пакет java.rmi) для связывания удаленного объекта service класса WeatherServicelmpl в реестре RMI с URL rmi://localhost/WeatherService. Для связывания удаленного объекта с реестром также используется метод bind. Программисты чаще используют метод rebind, поскольку он гарантирует, что если объект уже был зарегистрирован под заданным именем, новый удаленный объект заменит ранее зарегистрированный объект. Это может быть важно, если регистрируется новая версия существующего удаленного объекта.
Класс WeatherBean (рис. 2.3) хранит данные, которые класс WeatherServicelmpl извлекает с Web-сайта National Weather Service. Этот класс хранит город, температуру и описание погоды в виде строк. В строках 64-85 предоставлены методы get для каждого фрагмента информации. В строках 25-45 загружается файл свойств, который содержит имена изображений для отображения информации о погоде. Этот статический блок обеспечивает доступность имен изображений сразу же, как только виртуальная машина загружает класс WeatherBean в память.
1 // WeatherBean.Java
2 // WeatherBean содержит информацию о погоде для одного города.
3 package com.deitel-advjhtpl.rmi.weather; 4
5// Набор базовых пакетов Java
6 import j ava.awt. *;
7 import java.io.*;
8 import java.net.*;
9 import java.util.*; 10
11// Пакеты расширений Java 12 import javax.swing.*; 13
14 public class WeatherBean implements Serializable { 15
private String cityName; private String temperature; private String description; private Imagelcon image;
16 17 18 19 20 21 22 23 24 25 26 27
Il название города
// температура в городе
// описание погоды
// изображение характера погоды
29
private static Properties imageNames;
Il инициализация объекта imageNames при загрузке класса // Weatherlnfо в память static {
imageNames = new Properties (); // создание таблицы свойств
// загрузка описаний погоды и имен изображений из // файла свойств try {
Предыдущая << 1 .. 12 13 14 15 16 17 < 18 > 19 20 21 22 23 24 .. 204 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100