Чтение онлайн

на главную - закладки

Жанры

Шрифт:

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

@param title заголовок Form.

*/

private URIEntry(String title)

}

super(title); instance = this;

uri = new TextField. ("Connect to: ",

null, 70,

TextField.URL); uri.setStringf'http://"); append (uri);

addCommand(go); addCommand(exit); setCommandListener(this);

}

/**

Выдает один экземпляр данного класса.

@возвращение экземпляра данного класса.

*/

public static URIEntry getlnstance

}

if (instance == null)

{

instance = new URIEntry("Enter URL");

}

return instance;

}

/**

Устанавливает этот объект в качестве текущего отображаемого объекта MID-лета.

*/

public void display

MIDlet га = ConnectionDemo.getInstance;

Display.getDisplay(m). setCurrent(this);

}

public void commandAction(Command c, Displayable d)

}

if (c == go)

}

// Этот экран отображает метаинформацию ресурса,

// указанного с помощью URI.

ResourceDisplay view =

new ResourceDisplay(uri.getString);

MIDlet m = ConnectionDemo.getInstar.ee ;

Display.getDisplay(m). setCurrent(view);

thread = new Thread(view); thread.start;

}

else if (c == e\it)

}

ConnectionDemo.getlnstance. quit;

}

}

}

Листинг 8.3. Класс ResourceDisplay определяет форму, которая отображает ресурс. Он использует объект helper для получения этого ресурса

import javdx.microedition.lcdui.Command;

import javax.microedition.Icdui.CommandListener;

import javax.microedition.Icdui.Form;

import javax.microedition.Icdui.Displayable;

/**

Данный класс задает Form, которая отображает метаинформацию, описывающую HTTP-ресурс. Она контролируется отдельной нитью, поэтому она реализует Runnable.

Этот объект Form использует объект helper для коммуникации с HTTP-ресурсом через Connection. Он затем забирает данные соединения из объекта helper для отображения на экране для пользователя.

public class ResourceDisplay extends Form

implements CommandListener, Runnable

{

private static Command back =

new Command("Back", Command.BACK, 1);

private static Displayable instance;

// Объект helper создает соединение с ресурсом на исходном

// сервере и извлекает метаинформацию ресурса.

// private HttpResource resource;

Конструктор

Sparam uri URI ресурса для извлечения по запросу HTTP протокола.

*/

public ResourceDisplay(String uri)

{

super("Http Info");

instance = this;

resource = new HttpResource(uri);

addCommand(back);

setCommandListener(this);

}

/**

Запускает выполнение данного объекта: запускает объект helper HttpResource.

@смотри. rtpResource

*/

public void run

{

resource.run;

append(resource.getResourceMetalnfo);

}

/**

Возвращает один экземпляр данного класса.

Вызов этого метода перед созданием объекта возвращает нулевой указатель.

@возвращаем экземпляр данного класса.

*/

public static Displayable getlnstance

{

return instance;

{

public void commandAction(Command c, Displayable d)

{

if (c == back)

{

URI Entry, get Instanced.display;

}

}

}

Листинг 8.4. Класс HttpResource определяет объект, который на самом деле извлекает сетевой ресурс

import Java.io.InputStream;

import Java.io.lOException;

import javax.microedition.io.Connect ion;

import javax.microedition.io.Connector;

import javax.microedition.io.HttpConnection;

import javax.microedition.Icdui.Displayable;

/**

Данный класс определяет объект helper, используемый классом ResourceDisplay. Он создает соединение с ресурсом HTTP, посылает запрос и получает ответ. Он размещает ответную метаинформацию в буфере. Этот класс предоставляет метод, который дает возможность другому объекту получать эту информацию как объект String асинхронно. Этот класс также записывает результат диагностики в стандартный вывод с целью демонстрации.

Результат появится в окне эмулятора J2MEWTK.

Обратите внимание, что этот класс реализует Runnable.

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

**/

public class HttpResource implements Runnable

private static Displayable instance;

// URI, представляющий выбранный ресурс.

private String uri;

// Буфер для поддержки информации ресурса.

private StringBuffer contents = new StringBuffer;

// Соединение с ресурсом. private Connection conn;

// Ссылка на HTTP-соединение, private HttpConnection httpConn;

// Входной поток соединения, private InputStream is;

// Значение поля атрибута статуса HTTP. private int status = -1;

/**

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

@pararc uri URI, указывающий выбранный ресурс.

*/

public HttpResource (String uri)

{

super ;

this.uri = uri;

}

private String userAgentID

{

StringBuffer buf = new StringBuffer;

String config =

System.get Property("microedition.configuration");

String profile =

System.get Property("microedition.profiles");

buf.append("Configuration/"); buf.append(config); buf.append!" Profile/");

buf.append(profile); return buf. toStrir.g ;)

/**

Запускает данный объект. Соединяется с URI, посылает запрос, получает отклик и анализирует ответное сообщение.

*/

public void run

System.out.println("Connection class name = " + conn.getClass. getName );

connect ; parse ;

System.out.println(gecResourceMetalnfo);

try conn.close;

}

catch (lOException ioe) System.out.println(ioe.getMessage);

ioe.printStackTrace;

}

}

/**

<
Поделиться:
Популярные книги

Проводник

Кораблев Родион
2. Другая сторона
Фантастика:
боевая фантастика
рпг
7.41
рейтинг книги
Проводник

Газлайтер. Том 1

Володин Григорий
1. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 1

Последний Паладин. Том 6

Саваровский Роман
6. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 6

Кодекс Охотника XXXI

Винокуров Юрий
31. Кодекс Охотника
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Охотника XXXI

Барон обходит правила

Ренгач Евгений
14. Закон сильного
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Барон обходит правила

Лекарь Империи 7

Карелин Сергей Витальевич
7. Лекарь Империи
Фантастика:
городское фэнтези
аниме
боевая фантастика
попаданцы
5.00
рейтинг книги
Лекарь Империи 7

Московское золото и нежная попа комсомолки. Часть Пятая

Хренов Алексей
5. Летчик Леха
Фантастика:
попаданцы
5.00
рейтинг книги
Московское золото и нежная попа комсомолки. Часть Пятая

Имя нам Легион. Том 1

Дорничев Дмитрий
1. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 1

Цеховик. Книга 1. Отрицание

Ромов Дмитрий
1. Цеховик
Фантастика:
попаданцы
альтернативная история
5.75
рейтинг книги
Цеховик. Книга 1. Отрицание

Звездная Кровь. Экзарх I

Рокотов Алексей
1. Экзарх
Фантастика:
боевая фантастика
рпг
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Звездная Кровь. Экзарх I

Петля, Кадетский корпус. Книга первая

Алексеев Евгений Артемович
1. Петля
Фантастика:
боевая фантастика
попаданцы
аниме
6.11
рейтинг книги
Петля, Кадетский корпус. Книга первая

Двойник короля 18

Скабер Артемий
18. Двойник Короля
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Двойник короля 18

Железный Воин Империи

Зот Бакалавр
1. Железный Воин Империи
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Железный Воин Империи

Кай из рода красных драконов 3

Бэд Кристиан
3. Красная кость
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Кай из рода красных драконов 3