J2ME, Android. Aplikacje dla urządzeń mobilnych.
ASP.NET  DOKUMENTACJA  FLASH  J2EE SERVLET JSP  J2ME MOBILE  JAVASCRIPT  OPROGRAMOWANIE  PHP  SERWER  SQL  TRENDY  WYSZUKIWARKI  XML 

AOLserver (2)

Bardzo ciekawą możliwością AOLservera jest pisanie modułów pisanych w TCL. Pozwala to na szybkie tworzenie gotowych rozwiązań lub obsługę pewnych typów plików.

Moduły TCL są to pliki o rozszerzeniu .tcl, które znajdują się w katalogu modules/tcl. Moduły mogą być pojedynczymi plikami lub całymi katalogami (w przypadku większych modułów jest to wygodniejsza forma).

Moduły w TCLu

 
 spis treści:
Moduły w TCLu1. Moduły w TCLu
2. Przydatne moduły
3. Rozbudowane przykłady
4. Podsumowanie
Moduły jako katalogi trzeba wprowadzić do konfiguracji:
 ns_section "ns/server/$server/modules" 
ns_param nazwakatalogu Tcl
Pliki w katalogach czytane są w kolejności alfabetycznej, poza plikiem init.tcl, który czytany jest na początku. W pliku tym zazwyczaj czyta się konfigurację oraz inicjuje semafory i zdarzenia.

Prostym przykładem modułu jest moduł do tworzenia statystyk odwiedzin w oparciu o przedrostek.

Listing 7. Proste statystyki
 proc tclstat_proc {} { 
set id [lindex [ns_conn urlv] 1]
set url /[join [lrange [ns_conn urlv] 2 end] /]
# tutaj trzeba dodac zliczanie, np przez baze danych
ns_returnredirect $url
}

ns_register_proc GET /tclstat tclstat_proc
Ten kod sprawi, iż odwołania do www.domena.pl/tclstat/123/gfx/logo.jpg przekierowane zostanie na www.domena.pl/gfx/logo.jpg po uprzednim dodaniu wpisu do listy odwiedzin o identyfikatorze 123.

Innym ciekawym zastosowaniem modułów w TCL jest prosty moduł do obsługi katalogów domowych:

Listing 8. Obsługa katalogów użytkowników
 proc homedirs {} { 
ser urlv [ns_conn urlv]
set user [lindex $urlv 0]
if {[catch {
# zamiana ~user na /home/user
set homedir [file native $user]
}]} {
# jesli wystapil blad, uzytkownik nie istnieje
ns_returnnotfound
return
}
set url [join [lrange $urlv 1 end] /]
set file [file join $homedir public_html $url]
if {[file exists $file]} {
file stat $file st
if {[$st(type)=="directory"]} {
if {[file exists $file/index.html]} {
# index.html - plik statyczny
ns_returnfile 200 text/html $file/index.html
} elseif {[file exists $file/index.adp]} {
# index.adp - plik dynamiczny
ns_return 200 text/html [ns_adp_parse -file $file/index.adp]
} else {
# brak index.html / index.adp
ns_returnforbidden
}
} else {
if {[string match *.adp $file]} {
# obsluga stron dynamicznych
ns_return 200 text/html [ns_adp_parse -file $file]
} else {
# obsluga plikow
ns_returnfile 200 [ns_guesstype $file] $file
}
}
}
}

ns_register_proc GET /~* homedirs
ns_register_proc POST /~* homedirs
Jest to prosty i niekompletny przykład, ale pokazuje ciekawe zastosowania ns_register_proc. Ten moduł akurat wygodniej zaimplementować w C korzystając z funkcji Ns_SetUrlToFile(). Funkcję tą można również wykorzystać w module do vhostingu. Załączony na CD przykład pokazuje jak można w mniej niż 100 linijek napisać kompletny moduł do vhostingu.
strona 1 2 3 4 następna      Autor: Wojciech Kocjan
Polska - Atrakcje turystyczne: Ronda na weekend
Zobacz również:
XML (1)   Technologia J2EE (1)   Java i bazy danych   Kartki Internetowe   Apache + Tomcat   PHP, MySQL i własna wyszukiwarka   Bezpieczne uploadowanie plików  

Masz problem ze swoją komórką? Zapytaj, przeczytaj opinie o telefonie:
LG G1600   Sagem myC5-3   Motorola E1000   Trium Cosmo   Alcatel OT557   i-mate K-JAM   Samsung A777   Benefon TWIG Discovery Pro   palmOne Treo 270   LG LX150  



(C) 2000-2010 webdeveloper.pl  |  Napisz do nas