Рассмотрение приложения Hotel Info
Рассмотрение приложения Hotel Info
При запуске приложения Hotellnfo WML-страница Hotellnfo.wml отображает списокгородов и выводит приглашение пользователю на выбор требуемого города. После выбора пользователем города выполняется ветвление программного кода ивыводится приглашение на выбор в городе определенной гостиницы. WML-страница Hotellnfo.wml реализуется с помощью следующего программного кода:
<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head>
<meta http-equiv="Cache-Control" content="max-age=0" forua="true"/>
</head>
<card id="Hotel">
<do type="accept" label="Pick"> <noop /> </do>
<p align="center">
Web Inns<br/>
</p>
<p align="left" mode="nowrap">
<select>
<option onpick="#LasVegas">Las Vegas</option> <option onpick="#LosAngeles">Los Angeles</option> <option onpick="#Orlando">Orlando< /option> <option onpick="#SanFrancisco">San Francisco</option> <option onpick="#WashingtonDC">Washington DC</option>
</select>
</p>
</card>
<card id="LasVegas">
<do type="accept" label="Pick"> <go href="../waplibcgi/HotelAvailWML.pl ?$(HotelCode)" /> </do>
<do type="prev" label="City"> <prev /> </do>
<p align="center">
Web Inns<br/> Las Vegas
</p>
<p align="left" mode="nowrap">
<select name="HotelCode">
<option value="LVAirport">Airport</option> <option value="LVNorth">North</option> <option value="LVSouth">South</option> <option value="LVCenter">City Center</option>
</select>
</p>
</card>
<card id="LosAngeles">
<do type="accept" label="Pick"> <go href="../waplibcgi/HotelAvailWML.pl ?$(HotelCode)" /> </do>
<do type="prev" label="City"> <prev /> </do>
<p align="center">
Web Inns<br/& gt Los Angeles
</p>
<p align="left" mode="nowrap">
<select name="HotelCode">
<option value="LAAirport">Airport</option> <option value="LANorth">North</option> <option value="LASouth">South</option> <option value="LACenter">City Center</option>
</select>
</p>
</card>
<card id="Orlando">
<do type="accept" label="Pick"> <go href="../waplibcgi/HotelAvailWML.pl ?$(HotelCode)" /> </do>
<do type="prev" label="City"> <prev /> </do>
<p align="center">
Web Inns<br/> Orlando
</p>
<p align="left" mode="nowrap">
<select name="HotelCode">
<option value="ORAirport">Airport</option> <option value="ORNorth">North</option> <option value="ORSouth">South</option> <option value="ORCenter">City Center</option>
</select>
</p>
</card>
<card id="SanFrancisco">
<do type="accept" label="Pick"> <go href="../waplibcgi/HotelAvailWML.pl ?$(HotelCode)" /> </do>
<do type="prev" label="City"> <prev /> </do>
<p align="center">
Web Inns<br/> San Francisco
</p>
<p align="left" mode="nowrap">
<select name="HotelCode">
<option value="SFAirport">Airport</option> <option value="SFNorth">North</option> <option value="SFSouth">South</option> <option value="SFCenter">City Center</option>
</select>
</p>
</card>
<card id="WashingtonDC">
<do type="accept" label="Pick"> <go href="../waplibcgi/HotelAvailWML.pl ?$(HotelCode)" /> </do>
<do type="prev" label="City"> <prev /> </do>
<p align="center">
Web Inns<br/> Washington, DC
</p>
<p align="left" mode="nowrap">
<select name="HotelCode">
<option value="DCAirport">Airport</option> <option value="DCNorth">North</option> <option value="DCSouth">South</option> <option value="DCCenter">City Center</option>
</select>
</p>
</card>
</wml>
Первые два элемента WML-страницы сообщают WAP-браузерам версию WAP-спецификации, которую поддерживает приложение. В данном случае WML-страница совместима с XML 1.0 и описанием типа документа (DTD) версии 1.1,разработанным ассоциацией WAP Forum.
Любая WML-страница, размещаемаяпосле информации о версии, начинается с тега <имя>. В конце каждой WML- страницы должен находиться соответствующий тег </WML>, который завершаетэлементы WML-страницы. Теги <НЕAD> и </HEAD>, располагающиеся после тега<WML>, позволяют указывать данные о WML-странице, включая метаданные и информацию, управляющую доступом. <oto\>
Элемент <meta> позволяет определять для WML-страницы метаинформацию. В нашем случае параметр http-equiv=Cache-Control сообщает WAP-браузеру, чтоданная часть метаинформации относится к системе кэширования памяти. Аналогично, параметр content=max-age=0 сообщает браузеру, что максимальное время, в течение которого должно выполняться кэширование WML-страницы, равнонулю секунд; то есть, браузер должен не запоминать, а повторно загружать данные с сервера каждый раз, когда поступает запрос. Для данной книги нулевоезначение было выбрано, чтобы помочь читателю в разработке программы. Привыборе нулевого значения каждый раз, когда происходит изменение, это изменение передается на телефон. В реально эксплуатируемом приложении статическое меню, подобное рассматриваемому здесь, по-видимому, должно использовать интервал хранения, установленный по умолчанию, равным 30 дням. Наконец, параметр forua="true" определяет, что данное значение Cache-Controlпредназначено для телефона и не должно удаляться каким-либо промежуточнымагентом
Для отображения списка городов WML-страница использует элемент <select>.После того как пользователь сделает свой выбор, происходит переход на находящуюся внутри WML-страницы локальную карту, которая выводит приглашениепользователю, опять с помощью элемента <select>, на выбор конкретной гостиницы. После выбора пользователем гостиницы приложение вызывает Perl-сценарий HotelAvailWML.pl, формирующий на экране приглашение пользователюна ввод данных о регистрации в гостинице.