- •Что Вам необходимо?
- •Создание miDlet-а
- •О том, что скрыто от наших глаз
- •А дальше?
- •Ресурсы
- •Инсталяция и запуск Tomcat
- •Написание исходного кода Servlet-а
- •Компиляция Servlet – а
- •Развертывание Servlet-а
- •Как обратиться к Servlet-у из miDlet-а
- •Замечания
- •Заключение
- •Дейтаграммы
- •Получение Web контента
- •Когда какой протокол использовать?
- •Стек протоколов
- •Профили
- •Bluetooth устройства и сети
- •Системные требования
- •Java api For Bluetooth — организация и пакеты
- •Анатомия miDlet-ов, использующих jsr 82
- •Использование Java apIs for Bluetooth
- •Использование Bluetooth в j2me приложениях. (jsr-82) - Часть 2. Обзор Connection и Device Management api Обзор Connection api
- •Типы Bluetooth соединения
- •Создание соединения
- •Ожидание соединения
- •Отправка и получение даннях
- •Обзор Device Management api
- •Удаленное устройство
- •Класс устройства
- •Получение информации о настройках Bluetooth устройства
- •Интерфейсы pim api
- •Классы pim api
- •Использование pim api
- •Использование эмулятора j2me Wireless Toolkit 2.2 для тестирования pim списков
- •Особенности спецификации Sony Ericsson
- •Свойства системы
- •Классы и интерфейсы FileConnection api
- •Операции ввода/вывода
- •Получение информации о файлах и каталогах
- •Вычисление Экспоненты
- •Гиперболические функции
- •Вычисление натурального логарифма
- •Вычисление арксинуса и арккосинуса
- •Вычисление арктангенса
- •Обзор mmapi
- •Механизм обработки мультимедмйной информации
- •Mmapi пакеты
- •Использование mmapi
- •Последовательности нот
- •Проигрывание мультимедийных файлов
- •Воспроизведение видео
- •Использование камеры
- •Поддерживаемые форматы
- •Ограничения использования mmapi в wtk
- •Пример простого медиаплеера
- •Создание midp приложения с использованием Visual Designer-а.
- •Редактирование Java исходников
- •Создание midp приложений с использованием Source Editor Создание нового j2me midp проекта
- •Редактирование Java исходников
- •Компиляция и запуск проекта
- •Выбор платформы эмулятора
- •Использование конфигурирования
- •Добавление конфигурации
- •Настройка конфигурации
Развертывание Servlet-а
Для развертывания servlet-а вы должны вспомнить о web приложениях. Итак, Web приложение представляет собой набор статичного контента, такого как HTML файлы, рисунки, servlet-ы, и другие ресурсы, к которым может быть предоставлен доступ через web интерфейс. Tomcat поставляется вместе с несколькими встроенными web приложениями. Загляните в папку webapp, изучите примеры.
Итак, Вы создали web-приложение, когда создали его каталог. Заполним его. Web приложение имеет стандартную для спецификации servlet-ов структуру каталогов. Мы не будем здесь подробно останавливаться на этом. Большую долю web приложения занимает файл web.xml, который описывает различные части web приложения. Этот файл создается для любого web приложения в папке WEB-INF/web.xml. Настало время создать файл web.xml. Настало время сделать так, чтобы наше приложение было доступно по адресу /hits. Заметьте, что адрес для servlet-а является относительным. Полный путь будет http://localhost:8080/midp/hits. Скопируйте следующий текст и сохраните его в папке webapps/midp/WEB-INF/web.xml внутри Tomcat каталога.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>bob</servlet-name>
<servlet-class>HitServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>bob</servlet-name>
<url-pattern>/hits</url-pattern>
</servlet-mapping>
</web-app>
Этот файл скажет Tomcat-у где искать servlet с именем HitServlet. Servlet-name внутренний по отношению к web.xml; он проводит servlet элемент к элементу servlet-mapping. Имя bob взято произвольно. Вы можете использовать любое другое имя.
Чтобы протестировать приложение, запустите браузер и наберите адрес http://localhost:8080/midp/hits. Вы должны увидеть результат выполнения HitServlet. Перезагрузите страницу несколько раз. Если Вы все сделали правильно, счетчик должен увеличиваться.
Как обратиться к Servlet-у из miDlet-а
Итак, Вы уже создали MIDP-приложение и servlet. Настало время сцепить их вместе, чтобы создать end-to-end Java приложение. MIDlet-ы могут соединяться с внешним миром по HTTP протоколу, и servlet, который Вы только что написали, доступен по HTTP. Таким образом, не составляет большого труда заставить их работать вместе.
Запустите KToolbar и откройте MIDlet, который мы создали в предыдущей части. Мы хотим создать новый MIDlet, который будет соединяться с нашим servlet-ом, получая результат работы servlet-а и выводя его на экран. Ниже приводится код MIDlet-а.
import java.io.*;
import javax.microedition.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class HitMIDlet
extends MIDlet
implements CommandListener {
private Display mDisplay;
private Form mMainForm;
private StringItem mMessageItem;
private Command mExitCommand, mConnectCommand;
public HitMIDlet() {
mMainForm = new Form("HitMIDlet");
mMessageItem = new StringItem(null, "");
mExitCommand = new Command("Exit", Command.EXIT, 0);
mConnectCommand = new Command("Connect",
Command.SCREEN, 0);
mMainForm.append(mMessageItem);
mMainForm.addCommand(mExitCommand);
mMainForm.addCommand(mConnectCommand);
mMainForm.setCommandListener(this);
}
public void startApp() {
mDisplay = Display.getDisplay(this);
mDisplay.setCurrent(mMainForm);
}
public void pauseApp() {}
public void destroyApp(boolean unconditional) {}
public void commandAction(Command c, Displayable s) {
if (c == mExitCommand)
notifyDestroyed();
else if (c == mConnectCommand) {
Form waitForm = new Form("Waiting...");
mDisplay.setCurrent(waitForm);
Thread t = new Thread() {
public void run() {
connect();
}
};
t.start();
}
}
private void connect() {
HttpConnection hc = null;
InputStream in = null;
String url = getAppProperty("HitMIDlet.URL");
try {
hc = (HttpConnection)Connector.open(url);
in = hc.openInputStream();
int contentLength = (int)hc.getLength();
byte[] raw = new byte[contentLength];
int length = in.read(raw);
in.close();
hc.close();
// Show the response to the user.
String s = new String(raw, 0, length);
mMessageItem.setText(s);
}
catch (IOException ioe) {
mMessageItem.setText(ioe.toString());
}
mDisplay.setCurrent(mMainForm);
}
}
Главный экран HitMIDlet-а похож на HelloMIDlet, но он включает две команды EXIT и Connect. Connect, которая создает отдельный поток и вызывает метод connect(), который заботится о сетевом соединении и получении результата.
Скопируйте этот код в свой редактор и сохраните его как HitMIDlet.java внутри папки apps/HelloSuite/src в J2ME Wireless Toolkit директории.
Есть еще две вещи, о которых нужно позаботиться. Во-первых, вы должны сказать toolkit-у об этом новом MIDlet-е. Щелкните Settings..., затем выбирете MIDlets. Нажмите Add и введите в полях имени класса и MIDlet-а значение "HitMIDlet". Можете оставить поле Icon незаполненным. Нажмите OK. Вы должны увидеть HelloMIDlet и HitMIDlet.
Теперь Вам надо определить, каким образом будет устанавливаться соединение. (Это свойство задается в третьей строке метода connect()) Щелкните Settings... внутри toolkit-а, затем выберите User Defined. Нажмите кнопку Add. Напишите в поле property name HitMIDlet.URL. Поле value должно содержать URL, по которому доступен HitServlet — тот самый путь, который вы вызывали в браузере, когда тестировали servlet. Нажмите OK.
Теперь нажмите Build, чтобы выполнить компоновку приложения. Предположим, Вы не получили никаких сообщений об ошибках. Все готово. Осталось протестировать приложение. Запустите Servlet. Затем нажмите Run и выберите HitMIDlet. Выберите команду Connect. Если все было сделано правильно, HitMIDlet обратится к HitServlet и покажет результат на экране эмулятора.