Wap/wml 1 I. Мобилни технологии, Интернет и wap 1



страница7/10
Дата14.01.2018
Размер6.74 Mb.
#46632
1   2   3   4   5   6   7   8   9   10

10. Библиотека URL; функции escapeString, unescapeString и loadString

o тази библиотека съдържа функции, с които се проверява съдържанието, валидността и параметрите на отонсителен или абсолютен URL адрес

Стр. 16 от 25



WAP/WML 9

o функцията escapeString прекодира зададен низ към URL формат, така че управляващите символи в него се кодират в шестнадесетичен код (т.е. %hh), подходящ за предаване към CGI програми и Java сървлети (с използване на методите GET и POST)

o резюме:

синтаксис escapeString(url)


параметър typeof(url) = String
стойност на

функцията String или invalid
var a = URL.escapeString("http://courses.fmi.uni-

пример

sofia.bg/WAP_WML/ex.html");

// a = "http%3a%2f%2fcourses.fmi.uni- sofia.bg%2fWAP_WML%2fex.html"

o функцията unescapeString прекодира зададен низ от URL формат, така че шестнайсетично кодираните управляващи символи со представени в обичаен вид

o резюме:

синтаксис unescapeString(url)


параметър typeof(url) = String
стойност на

функцията String или invalid
var a = URL.escapeString("http%3a%2f%2fcourses.fmi.uni-

пример
sofia.bg%2fWAP_WML%2fex.html");

// a = "http://courses.fmi.uni-sofia.bg/WAP_WML/ex.html"


o функцията loadString връща съдържанието на посочения като първи параметър URL адрес; типът на зареждания документ трябва да е текстов и се специфицира като втори параметър на функцията във формат “text/

o документът трябва да е от текстов тип, съответстващ на спецификатора;

впротивен случай (както и при невалиден URL адрес) резултатът е invalid o резюме:

синтаксис loadString(url, contentType)
параметри typeof(url, contentType) = String
стойност на

функцията String или invalid
var a = String.replaceAt("Piue", "Pi", "Ze"); // a = "Zeue"


примери

o пример:

var b = String.replaceAt("Piue", "", "Ze"); // b = invalid var c = String.replaceAt("Piue", "pi", "Ze"); // c = "Piue"



"http://www.wapforum.org/DTD/wml_1.1.xml">
















URL.escapeString: $(result1)

Стр. 17 от 25




WAP/WML 9

URL.unescapeString: $(result2)


URL.loadString: $(result3)

WMLScript код във файла ex7-09_10.wmls:

extern function codeIt(result) {

var a = URL.escapeString("test.pl?length=123");

// a = "test.pl%3flength%3d123" WMLBrowser.setVar(result,a); WMLBrowser.refresh();}

extern function decodeIt(result) {

var a = URL.unescapeString("test.pl%3flength%3d123");

// a = "test.pl?length=123" WMLBrowser.setVar(result,a); WMLBrowser.refresh();}

extern function loadIt(result) {

var a = URL.loadString("http://www.ietf.org/iesg/1rfc_index.txt","text/plain");

// Variable a now includes the whole/part_of 1rfc_index.txt. WMLBrowser.setVar(result,a);

WMLBrowser.refresh();

}

11. Библиотека URL; функции resolve, getFragment, getHost, getPath, getParameters,

getPort, getQuery, и getScheme

o функцията resolve връща пълен URL адрес от зададените сърверен адрес и локален адрес; обикновено се използва в комбинация с други функции от URL

o резюме:

синтаксис resolve(url1, url2)
параметри typeof(url1, url2) = String
стойност на

функцията String или invalid
var a = URL.getPath(“http://courses.fmi.uni-sofia.bg”,

пример

“/WAP_WML/ex7-09_07.wmls");

// a = "http://courses.fmi.uni-sofia.bg/WAP_WML/ex7-

09_07.wmls");


o функцията getFragment връща фрагмент (предхождан от #) от зададен URL адрес; обикновено това е функция от съответнаия WMLScript компилационене модул – когато не е специфициран фрагмент, резултатът е празен низ

o резюме:

синтаксис getFragment(url)


параметър typeof(url) = String
стойност на

функцията String или invalid
пример var a = URL.getFragment("http://courses.fmi.uni- sofia.bg/WAP_WML/ex7-09_07.wmls#elements"); // a = "elements"
o функцията getHost връща сърверната част от зададен URL адрес; когато адресът е относителен и не съдържа сърверна част, резултатът е празен низ

o резюме:

синтаксис getHost(url)
параметър typeof(url) = String

Стр. 18 от 25




WAP/WML 9

стойност на



функцията String или invalid
var a = URL.getHost("http://courses.fmi.uni-

примери

sofia.bg/WAP_WML/ex7-09_07.wmls");

// a = "courses.fmi.uni-sofia.bg"

var b = URL.getHost("/WAP_WML/ex7-09_07.wmls"); // b = ""


o функцията getPath връща локалната част от зададен URL адрес; когато адресът не съдържа локална част, резултатът е празен низ

o резюме:

синтаксис getPath(url)


параметър typeof(url) = String
стойност на

функцията String или invalid
var a = URL.getPath("http://courses.fmi.uni-

примери
sofia.bg/WAP_WML/ex7-09_07.wmls#elements");

// a = "/WAP_WML/ex7-09_07.wmls"


o функцията getParameters връща параметрите от зададен URL адрес с параметри (които са част от адреса при обръщание към CGI програма с използване на метода GET и се отделят с ;); при отсъствие на параметри, резултатът е празен низ

o резюме:

синтаксис getParameters(url)


параметър typeof(url) = String
стойност на

функцията String или invalid
пример var a = URL.getParameters("cgi-bin/WAP/tel.pl;3;2?x=1&y=3");

// a = "3;2"


o функцията getPort връща локалния порт на сървера от зададен URL адрес (когато е зададен, порта се отделят с : и обикновено е 8080 или 80); при отсъствие на порт, резултатът е празен низ

o резюме:

синтаксис getPort(url)
параметър typeof(url) = String
стойност на

функцията String или invalid
var a = URL.getPort("http://courses.fmi.uni-


пример
sofia.bg:80/WAP_WML/ex.htm");

// a = "80"



o функцията getQuery връща локалния порт на сървера от зададен URL адрес (когато е зададен, порта се отделят с : и обикновено е 8080 или 80); при отсъствие на порт, резултатът е празен низ

o резюме:

Стр. 19 от 25




WAP/WML 9

синтаксис getQuery(url)


параметър typeof(url) = String
стойност на

функцията String или invalid
пример var a = URL.getQuery("cgi-bin/WAP/tel.pl;3;2?x=1&y=3");

// a = "x=1&y=3"


o функцията getScheme връща протоколния спецификатор от зададен URL адрес; при отсъствие на протокол, резултатът е празен низ

o резюме:

синтаксис getScheme(url)
параметър typeof(url) = String
стойност на

функцията String или invalid
var a = URL.getSceme("ftp://courses.fmi.uni-

пример
sofia.bg:80/WAP_WML/ex/ex1.zip");

// a = "ftp"




12. Библиотека URL; функции getReferer, getBase и isValid

o функцията getReferer връща кратка форма на относителния URL адрес, от който е извършено обръщнието към текущия WMLScript компилационен модул – обикновено това е името на заредения WML документ

o резюме:

синтаксис getReferer()

стойност на функцията String
пример var a = URL.getReferer(); // a = "ex7-09_07.wml#card2"
o функцията getBase връща абсолютния URL адрес на текущия WMLScript компилационен модул

o резюме:

синтаксис getBase()

стойност на функцията String


пример var a = URL.getBase(); // a = "http://courses.fmi.uni- sofia.bg/WAP_WML/ex7-09_07.wmls"
o функцията isValid проверява дали зададения абсолютен или относителен URL адрес е синтактично верен

o резюме:

синтаксис isValid(url)
параметри typeof(url) = String
стойност на

функцията Boolean или invalid

Стр. 20 от 25




WAP/WML 9

примери

o пример:

var a = URL.isValid(“http:/courses.uni-sofia.bg/ex.wmls#f1");

// a = false

var b = URL.isValid(“http://courses.uni-sofia.bg/ex.wmls#f1");

// b = true



"http://www.wapforum.org/DTD/wml_1.1.xml">














URL.getBase: $(result1)_URL.getReferer:_$(result2)_URL.isValid:_$(result3)'>$(result1)


URL.getReferer: $(result2)
URL.isValid: $(result3)

WMLScript код във файла ex7-09_12.wmls:

extern function giveBase(result) {

var a = URL.getBase(); WMLBrowser.setVar(result,a); WMLBrowser.refresh();}

extern function giveReferer(result) {

var basic = URL.getBase();

var caller = URL.getReferer(); WMLBrowser.setVar(result,caller); WMLBrowser.refresh();}

extern function validate(result) {

var a = URL.isValid("http://wap.acta.fi/scr1.wmls#someFunction()");

// a = true

a += ", " + URL.isValid("../test.wmls#test()");

// a = true

a += ", " + URL.isValid("Yahoo!://wap.acta.fi/test");

// a = false WMLBrowser.setVar(result,a); WMLBrowser.refresh();

}

13. Библиотека WMLBrowser; функции getCurrentCard, getVar, setVar, newContext, prev,

refresh и go

o тази библиотека съдържа функции, с които се проверява или установява съдържанието на променливите в даден WML документ и да се извършва обмен между документите в браузера

o функцията getCurrentCard връща URL адреса на WML картата, която която текущо се интерпретира от браузера; адресът е абсолютен когато WML документа и компилационния модул със скрипт кода са разположени на различни сървери, а когато са на един сървер, адресът е относителен (спрямо WMLSсript файла)

o резюме:

синтаксис getCurrentCard()


стойност на

функцията String или invalid
пример var a = WMLBrowser.getCurrentCard(); // a = "ex07-

09_13.wmlc#card1"


Стр. 21 от 25




WAP/WML 9

o функцията getVar връща конвертираната до низ стойност на зададена променлива, която е дефинирана във викащия функцията WML документ, променливата може и да е текст, въведен в потребителска форма или избол на опция в меню

o резюме:

синтаксис getVar(var_id)


параметър typeof(var_id) = String
стойност на

функцията String или invalid
пример var a = WMLBrowser.getVar(“URL”); // a ="ex07-09_13.wmlc#card1"
o функцията setVar записва нова стойност на зададена променлива, която е дефинирана във викащия функцията WML документ като връща стойност true ако операцията е изпълнена успешно

o резюме:

синтаксис setVar(var_id,value)
параметър typeof(var_id, value) = String
стойност на

функцията Boolean или invalid
пример var a = WMLBrowser.setVar(varname,result); // a = "true"
o функцията newContext изтрива стека на заредените карти и установява начални стойности на променливите т.е. представлява семантичен аналог на атрибута necontext в WML командата ; предходни задания за преход като go() и prev(), които са в процес на зареждане, не се влияят от тази функция. Функцията връща празен низ

o резюме:

синтаксис newContext()
стойност на

функцията String или invalid
пример var a = WMLBrowser.newContext(); // a = ""
o функцията prev предизвиква зареждане на предходната карта от стека на браузера в момента на връщане от WMLScript интерпретатора към режим браузер, което семантично дублира WML командата
; когато в програмния блок на скрипт функцията са декларирани обръщения към prev и go функциите, след връщане в режим браузер се изпълнява последната от тях. Функцията връща празен низ

o резюме:

синтаксис prev()
стойност на

функцията String или invalid
пример var a = WMLBrowser.prev(); // a = ""
o функцията refresh предизвиква опресняване на потребителския интерфейс на браузера като се отразява новото състояние на контекста. Тя обикновено се ползва

Стр. 22 от 25



WAP/WML 9
като последна команда в програмния блок на скрипт функциите и е семантичен аналог на WML командата . Функцията връща празен низ при успешно изпълнение или низ с кратко съобщение за грешка, а когато микробраузера не поддържа тази функция - invalid

o резюме:

синтаксис refresh()
стойност на

функцията String или invalid
пример var a = WMLBrowser.refresh(); // a = ""
o функцията go предизвиква зареждане и преход към зададен URL адрес в момента на връщане от WMLScript интерпретатора към режим браузер, което семантично дублира WML командата ; при няколко функции за преход (prev и go) след връщане в режим браузер се изпълнява последната от тях. Функцията връща празен низ

o резюме:

синтаксис go(url)
параметър typeof(url) = String
стойност на

функцията String или invalid
пример var a = WMLBrowser.go(U_R_L); // a =""
o пример:

"http://www.wapforum.org/DTD/wml_1.1.xml">













Choose the target URL:

WMLBrowser.getCC: $(result1)


WMLBrowser.go (URL): $(targetURL)


WMLBrowser.go (rslt): $(result2) ^^



WMLScript код във файла ex7-09_13.wmls:

extern function examineCard(result) {

var myCard = WMLBrowser.getCurrentCard(); WMLBrowser.setVar(result,myCard); WMLBrowser.refresh();}

extern function goURL(target,result) {

var userTarget = target,

goResult = WMLBrowser.go(userTarget); WMLBrowser.setVar(result,goResult); WMLBrowser.refresh();

}

14. Библиотека Dialogs; функции alert, confirm и prompt

Стр. 23 от 25




WAP/WML 9

o тази библиотека съдържа функции, с които се създава интерктивен потребителски интерфейс

o функцията alert изобразява съобщение на екрана и изчаква позитивна потребителска реакция – натискане на бутон с етикет ОК; тя се използва най-често за обратна връзка при интерпретация на текст и стойности, въведени от потребителя. Функцията връща празен низ

o резюме:

синтаксис alert(msg)
параметър typeof(msg) = String
стойност на

функцията String или invalid
пример var a = Dialogs.alert(“Must be non-negative”); // a =""
o функцията confirm изобразява съобщение на екрана и изчаква позитивна или негативна потребителска реакция – натискане на бутони със съответен етикет, чиято семантика е OK или Cancel. Функцията връща true ако потребителят избере позитивната опция и false в противен случай

o резюме:

синтаксис confirm(msg, OKlabel, CancelLabel)
параметри typeof(msg, OKlabel, CancelLabel) = String
стойност на

функцията Boolean или invalid
пример var a = Dialogs.confirm(“Delete?”, “Yes”, “No”); // a = false
o функцията prompt изобразява диалогов прозорец, в който потребителят може да въвежда или да редактира текст; първият параметър се интерпретира като етикет на прозореца, а вторият като текст, който се изобразява в прозореца и може да бъде редактиран. Функцията връща потребителския низ

o резюме:

синтаксис prompt(label, defaultInput)
параметри typeof(label, defaultInput) = String
стойност на

функцията String или invalid
пример var a = Dialogs.prompt(“Age?”, “18..35 Years”); // a = 22
o пример:

"http://www.wapforum.org/DTD/wml_1.1.xml">















Your input:
Opening Dialog ...$(result2) ^^

Opening Prompt ...$(result3) ^^



Стр. 24 от 25



WAP/WML 9

WMLScript код във файла ex7-09_14.wmls:

extern function openAlert(input) {

for (var i = 0; i < String.length(input); i++) {

if (String.charAt(input,i) == ":") { Dialogs.alert("Don't use colon"); return;

}

}



}

extern function openDialog(result) {

var doContinue = Dialogs.confirm("Continue?", "Yes","No");

// Yes is OK,

// No is Cancel if (doContinue) {

WMLBrowser.setVar(result," we continued");

}

else {


WMLBrowser.setVar(result," we didn't continue");

} WMLBrowser.refresh();

}

extern function openInput(result) {



var length = Dialogs.prompt("Length:"," cm"); WMLBrowser.setVar(result,length); WMLBrowser.refresh();

}

Стр. 25 от 25



X. Програмиране в CGI
1. Приложение на CGI

WAP/WML 10



o CGI (Common Gateway Interface) е често използвана интерфейсна технология за разработване на WWW приложения, която се прилага аналогично в програмирането за WAP устройства и микробраузери

o основното различие при двата типа CGI програми – за WWW и за WAP – е само кодиращия MIME тип – text/html в WWW среда и text/vnd.wap.wml при WAP, което прави приложенията за WWW лесно преносими за WAP среда

o предимствата на CGI се състоят в

o разработването на динамични документи, т.е. документи с променящо се съдържание – вкл. в интерактивен режим

o обработване съдържанието на потребителските форми – защитен обмен на информацията; логическа обработка и генерация на отговори

o достъп до информация в бази данни

o скриптовете може да са разработени на всякакъв език – най-често Perl и С/С++

o независимост на изпълнението от потребителската платформа или браузер, тъй като CGI скрипта се изпълнява от сървера (а зависимостта от текущото натоварване на сървера е недостатък не само при интрепретирането на CGI заявки но и при зареждането на WMLScript код за локално изпълнение от микробраузерите)

o основен програмен език в CGI среда е Perl поради

o богатите му средства за работа с низове при синтактичен анализ и обработка на формите в WML и HTML

o преносимост на кода (което е характерно за интерпретаторите) – програмите се изпълняват обикновено по един и същи начин на Unix/Linux, Windows и McIntosh сървери

o удобна обарботка на входно-изходни файлове

o [свободно разпространяван продукт]

o инсталирането на CGI приложения обикновено е допустимо на повечето сървери, но изпълнението на приложенията евентуално би изисквало права за запис във файлове

o сърверните системи, с чиято помощ се подготвят и настройват CGI програми, са

Apache (http://www.apache.org/) и Xitami (http://www.xitami.com/)
2. Характеристика на CGI

o CGI е универсален интерфейсен стандарт (въведен през 1993. от NCSA – National Center for Supercomputing Applications и CERN – Conseil Européen pour la Recherche Nucléaire), който дефинира машиннонезависим интерфейс между приложението (CGI- приложение) и сървера

o за целта са стандартизирани:

o набор от абстрактни параметри и променливи на средата

o В/И канали за обмен

o характеристики на сървера и обслужвания браузер, които се интерпретират от приложението

o CGI позволява създаването на програми за динамична и интерактивна генерация на HTML и WML документи в съответствие с потребителските реакции (което е невъзможно само със средствата на markup езиците)

Стр. 1 от 6




WAP/WML 10

3. CGI приложения

o CGI-приложението се изпълнява от сървера и представлява програма, процедура или библиотечна функция, която комуникира с WWW браузера (или с WAP документ) по този интерфейсен стандарт

o то често се нарича просто скрипт, тъй като обикновено е скрипт на командния език

(shell script) или текстов файл с програма за интерпретация на съответния програмен език (макар че може за бъде и компилиран т.е. изпълним двоичен код)

o разработени са много безплатни Perl и С библиотеки, с които се улеснява програмирането на приложенията

o съхранението на данните се осъществява чрез достъп до бази данни, които също така се използват за обслужване на заявки за достъп до информация

o интерактивното генериране на документи и достъпа до бази данни позволява чрез CGI приложенията да се реализират (често в реално време) системи с многопотребителски игри, системи за обслужване на клиенти, чат приложения, страници с обяви и др.




Сподели с приятели:
1   2   3   4   5   6   7   8   9   10




©obuch.info 2024
отнасят до администрацията

    Начална страница