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

на главную

Жанры

Шрифт:

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

@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;

}

}

/**

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

Сумеречный стрелок 8

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

Идеальный мир для Социопата 4

Сапфир Олег
4. Социопат
Фантастика:
боевая фантастика
6.82
рейтинг книги
Идеальный мир для Социопата 4

Право налево

Зика Натаэль
Любовные романы:
современные любовные романы
8.38
рейтинг книги
Право налево

Темный Патриарх Светлого Рода 3

Лисицин Евгений
3. Темный Патриарх Светлого Рода
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Темный Патриарх Светлого Рода 3

Архил…? Книга 3

Кожевников Павел
3. Архил...?
Фантастика:
фэнтези
попаданцы
альтернативная история
7.00
рейтинг книги
Архил…? Книга 3

Идущий в тени 4

Амврелий Марк
4. Идущий в тени
Фантастика:
боевая фантастика
6.58
рейтинг книги
Идущий в тени 4

Мой крылатый кошмар

Серганова Татьяна
Фантастика:
фэнтези
юмористическое фэнтези
5.00
рейтинг книги
Мой крылатый кошмар

Пятничная я. Умереть, чтобы жить

Это Хорошо
Фантастика:
детективная фантастика
6.25
рейтинг книги
Пятничная я. Умереть, чтобы жить

Дорогой Солнца. Книга вторая

Котов Сергей
2. Дорогой Солнца
Фантастика:
боевая фантастика
постапокалипсис
5.00
рейтинг книги
Дорогой Солнца. Книга вторая

В теле пацана 4

Павлов Игорь Васильевич
4. Великое плато Вита
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
В теле пацана 4

Девятый

Каменистый Артем
1. Девятый
Фантастика:
боевая фантастика
попаданцы
9.15
рейтинг книги
Девятый

Чужая дочь

Зика Натаэль
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Чужая дочь

Мимик нового Мира 3

Северный Лис
2. Мимик!
Фантастика:
юмористическая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Мимик нового Мира 3

Семья. Измена. Развод

Высоцкая Мария Николаевна
2. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Семья. Измена. Развод