W momencie zatwierdzenia rekordu przez programistę uruchomiony zostaje proces generujący słownik w celu utworzenia pliku xml.
Zatwierdzenie generuje nowy katalog XML z ustawieniami XTEND.
Nowy słownik zostaje automatycznie uwzględniony przy odświeżeniu/wciśnięciu F5 strony HTML w przeglądarce, jeżeli zaznaczona została opcja rekordu ustawień witryny, function Websites (GESAYS)„Technique\Check updates\Web dictionary” .
W przeciwnym wypadku ponowne załadowanie słownika musi zostać wymuszone przez poniższy adres url:
„http://hostname:port/xtend/svc/X3Solution/X3Folder/XtendSite/admin/reposit/reload”
Zaleca się zatwierdzanie witryny w całości w celu wygenerowania słownika serwera XTEND poprzez funkcję Zatwierdzenie witryny internetowej (AYTFCYGEN).
Zweryfikuj, czy witryna XTEND została opublikowana, tzn. czy zostało zaznaczone pole „Publish the site” (Publikuj witrynę) rekordu „Web site” (Witryna).
Serwer XTEND ma dostęp do plików X3 poprzez serwer HTTP (Apache), zainstalowany domyślnie na stacji roboczej, na której mieści się główny serwer X3.
Katalogiem głównym jest katalog X3_PUB rozwiązania.
Aktualizacje wykrywane są podczas odczytu „TimeStamp” (daty ostatniej modyfikacji) pliku.
Serwer XTEND odczytuje pliki XML i buduje w pamięci bazę danych, aby zoptymalizować dostęp do ustawień.
Podczas ładowania XTEND kontroluje spójność słownika i generuje wyjątki w przypadku odnalezienia błędu.
Domyślnie zarówno słownik, jak i lokalne menu zapisywane są na serwerze X3.
Ustawienia konsoli xtend.server.reposit.local=off oraz xtend.server.menux3.local=off są wykorzystywane do określania miejscowej lokalizacji plików na serwerze X3WEB (optymalizacji).
W takim przypadku konieczne jest skopiowanie katalogów słownika i/lub lokalnego menu do \WebData\LOCAL\X3SOLUTION\X3_PUB\.
WebData reprezentuje katalog „Data” zdefiniowany w momencie instalacji serwera X3WEB.
Domyślnie strony i wszystkie zasoby projektu HTML przechowywane są na serwerze X3 w katalogu
/X3SOL/dossiers/X3_PUB/X3FOLDER/X_TEND/X_HTML/ASAMPLE/LANG/ (LANG określa język kodowy witryny).
Programista musi pamiętać o przesłaniu stron HTML na serwer przed sprawdzeniem ich w przeglądarce.
W systemie unix konieczne jest sprawdzenie, czy wszystkie pliki katalogu HTML posiadają minimalne ustawienia dla „read” wszystkich użytkowników.
Proces wykrycia odczytu i modyfikacji strony jest taki sam jak w przypadku słownika.
Konfiguracja witryny XTEND umożliwia aktywowanie/deaktywowanie sprawdzeń aktualizacji.
Jeżeli sprawdzanie zostało deaktywowane, konieczne jest przeładowanie słownika za pomocą adresu url, aby wymusić uwzględnienie przez serwer XTEND modyfikacji strony.
Strona internetowa jest tekstem zawierającym znaczniki HTML, do których programista dodaje tokeny XTEND.
Po załadowaniu strony, serwer XTEND odczytuje zawartość i interpretuje HTML oraz tokeny (parsowanie), aby wygenerować reprezentację strony w pamięci w formie obiektu o strukturze drzewa (DOM).
Każdy obiekt reprezentuje token i stosuje metodę obliczenia HTML (computeHtml).
Struktura drzewa tokenów widoczna jest w logu XTEND:
++ odnosi się do poziomu - CXtdHtmBuild* jest klasą obiektu
+CXtdHtmBuildDom - XTEND
++CXtdHtmBuildNodeHtml - HTML
++CXtdHtmBuildTagHead - <HEAD
+++CXtdHtmBuildTagBase - <BASE
++CXtdHtmBuildAdxScriptLibrary - ALIBJS
++CXtdHtmBuildTagHeadEnd - </HEAD
++CXtdHtmBuildTagBody - <BODY
++CXtdHtmBuildTagForm - <FORM
++CXtdHtmBuildAdxTagAnchor - AHOME
++CXtdHtmBuildAdxTagAnchor - AABOUT
++CXtdHtmBuildAdxCND - ADISPUSERLOGGEDIN
+++CXtdHtmBuildAdxTagAnchor - AUSERACCOUNT
+++CXtdHtmBuildAdxTagAnchor - ADLKLOGOUT
++CXtdHtmBuildAdxCND - ADISPUSERLOGGEDIN
+++CXtdHtmBuildAdxTagAnchor - ALOGIN
...
Parser HTML serwera XTEND jest kompatybilny z wersją HTML 4.01 (DTD HTML 4.01 Transitional).
Jedynym ograniczeniem projektowania HTML narzuconym przez XTEND jest możliwość wykorzystania wyłącznie formy HTML obejmującej całą część body strony HTML.
<body><form> Body content </form></body>
W celu obliczenia, w sposób dynamiczny, zawartości strony HTML, serwer XTEND wykonuje następujące operacje:
Dla interfejsów dostępu do danych typów:
Dla interfejsów czynności typów:
Jeżeli token jest polem:
Jeżeli token jest łączem dynamicznym:
Jeżeli token jest blokiem:
Jeżeli token jest blokiem warunkowym:
Metoda obliczenia HTML zależy od rodzaju tokena i znacznika HTML, w jakim został on umieszczony.
Obliczony HTML zależy od rodzaju tokena i znacznika HTML, w jakim został on umieszczony.
Zastępuje zawartość znacznika wartością pola
<td adx='myField'></td> ---> <td>Value</td>
Wybiera opcję odpowiadającą wartości pola poprzez wygenerowanie wybranego atrybutu
Przykład: jeżeli wartością pola myField jest FR, a wartość opcji=FR i została ona wybrana (wybierz atrybut)
<select adx='myField'>
<option value='AT'>Austria</option>
<option value='FR'>France</option>
</select>
<!--GENERE-->
<select adx='myField'>
<option value='AT'>Austria</option>
<option selected value='FR'>France</option>
</select>
Generuje adres URL umożliwiający przeglądarce odczyt obrazu
<img adx='COUNTRYFLAG'>
<!--GENERE-->
<img src="'/xtend/data/exp(expires,index)/remote/SOL/FLDR/X_TEND/X_HTML/SITE/FRA/FLAGS/BE.gif'/></FONT">
Jeżeli do tokenu nie została przypisana żadna czynność (metoda GET), obliczany jest atrybut href znacznika
W przeciwnym wypadku (metoda POST) znacznik traktowany jest jako przycisk (patrz niżej)
<a adx='MyDynLink'>Logout</a>
<!--GENERE d'URL'-->
<a href='http://host:port/xtend/page?DLK=MyDynLink&SOL=SOL...'>Logout</a>
Oblicza funkcję xtdDoDlk JavaScript i umieszcza ją w atrybucie „onClick”
Są to ustawienia kontekstowe, zarządzane przez bibliotekę XTEND
<input type='button' adx='MyDLK' value='Créer'>
<!--GENERE L'ATTRIBUT ONCLICK'-->
<input type='button'
onclick='xtdDoDlk(this,'MyDLK',null,null,null,0,null,event,true,'',false,null,true);'
value='Créer'/>
Funkcja ta generowana jest przez XTEND w atrybucie onClick dla łączy dynamicznych, do których przypisana jest jakaś czynność lub wybór.
Uruchamia ona proces JavaScript XTEND, który przetwarza czynności użytkownika.
Służy ona również do odnajdywania kontekstu danych (aCtxTag,aLineIdx) łącza dynamicznego, zwłaszcza dla tokenów generowanych w wierszach bloków.
function xtdDoDlk(aElmt,aDlk,aProtocol,aBlkId,aCtxTag,aLineIdx,aUrlAdd,aEvent,aSubmit,
aAutoId,aForceAcceptReload,aForceSelBlock,aCheckWebFields)
{/*
aElmt: Obiekt JavaScript kliknięty przez użytkownika
aDlk: Kod klikniętego łącza dynamicznego
aProtocol: Jeżeli !=null wymusza protokół (https,http) dla danego łącza
aBlkId: Kod bloku referencyjnego, jeżeli adx=„MyBlocRefence.MyLink”
aCtxTag: Identyfikator kontekstu danych (jeżeli czynność dotyczy ustawień pól XTEND typów)
aLineIdx: Indeks wiersza, jeżeli token jest umieszczony w bloku {{multi}}
aUrlAdd: Zawiera wartość ustawień HTML xanchor adx='MyLink:xanchor=#section'
aEvent: Zawiera obiekt zdarzenia JavaScript
aSubmit: Prawda dla przedstawienia formularza
aAutoId: Id generowane przez XTEND, jeżeli adx=„MyLink:xautoid”
aForceAcceptReload:Prawda dla zatwierdzenia przeładowania (F5)
aForceSelBlock:Id bloku przetwarzającego zapytanie, jeżeli != AMAIN
aCheckWebFields:Prawda dla kontroli pól sieciowych
*/
}
Kontekst danych strony zapisany jest na niej samej w ukrytym znaczniku rozpiętości.
Zawiera on wszystkie wartości pól (typu „Pole tokenu”) wykorzystywane jako ustawienia czynności dla łączy dynamicznych danej strony.
Metoda ta umożliwia łatwe zarządzanie opcją powrotu poprzez funkcję „Back” (powrót) przeglądarki.
<span id='xtdctx' style='display: none; clear: both;'>
XML zawierający kontekst strony
</span>
Aby w pełni zrozumieć zasadę działania XTEND, konieczne jest szczegółowe wyjaśnienie procesu określania wartości pola przez serwer XTEND.
Serwer XTEND zachowuje kontekst danych, którym zarządza w stosach bloków danych (jednostkach).
Kontekst danych składa się z:
Stan początkowy
W momencie rozpoczęcia budowy strony kontekst danych zawiera wyłącznie dane sesji.
Przetwarzanie bloków
Podczas przetwarzania bloku serwer XTEND dokonuje iteracji wszystkich wybranych jednostek.
Każda jednostka jest przetwarzana w następujący sposób:
1. Gromadzenie danych (jednostka) w kontekście danych.
-->Jednostka jest spozycjonowana na szczycie stosu i przetwarzana jest jako pierwsza w momencie zdefiniowania wartości pola.
2. Wywołanie metody generowania HTML dla tokenów podrzędnych
-->Jest to mechanizm rekursywny, umożliwiający gromadzenie bloków
3. Rozładowywanie stosu jednostki
-->Po przetworzeniu na serwerze tokenów podrzędnych, stos jednostki jest rozładowywany przed przejściem do następnej jednostki.
Jednostka zajmuje miejsce na szczycie stosu i zostaje powiązana z blokiem ACURRENT .
Na przykład, kryterium wyboru „CODE=ACURRENT.CODE” w łączu dynamicznym wskazuje na konieczność wyboru elementu bieżącego wiersza
Zasada definiowania wartości pola polega na:
1. przejściu przez cały stos jednostek od jego szczytu do spodu
2. zatrzymaniu się, gdy jednostka odczytu zawiera pole o takiej samej nazwie
Jeżeli pole może zostać odnalezione, XTEND wysyła wartość tego pola, w przeciwnym wypadku wysłana zostaje pusta wartość.
Poniższy przykład pokazuje przypadek stosu z blokiem tła zapisu mono (BLOCKMONO) i dwoma zagnieżdżonymi blokami zapisu wielokrotnego (BLOCMULTI1, BLOCMULTI2).
Pierwszy blok zapisu wielokrotnego spozycjonowany jest na drugim wierszu, a drugi blok (BLOC2) zajmuje trzeci wiersz.
<!adx='BLOCMONO'>
<!adx='BLOCMULTI1'>
<!adx='BLOCMULTI2'>
<span adx='MyField'>
<!adx='BLOCMULTI2'>
<!adx='BLOCMULTI1'>
<!adx='BLOCMONO'>
Stos | Kolejność |
ASESSION | 3 - Spód |
ENTITE_BLOCMONO | 2 |
ENTITE_BLOCMULTI1_LIGNE2 | 1 |
ENTITE_BLOCMULTI2_LIGNE3 | 0 - Szczyt |
W celu określenia wartości pola MyField, serwer XTEND weryfikuje obecność pola MyField w jednostkach zgodnie z poniższą kolejnością:
1. ENTITE_BLOCMULTI2_LIGNE3
2. ENTITE_BLOCMULTI1_LIGNE2
3. ENTITE_BLOCMONO
4. ASESSION
Zasada stosowana do definiowania wartości jest taka sama w przypadku:
Aby obliczyć wartość pola dla danej jednostki, konieczne jest zastosowanie poniższej składni:
Kontekst sesji składa się różnych bloków danych opisanych poniżej.
Wartość pola jest definiowana zgodnie z kolejnością prezentacji bloków na liście.
1. AUSERINF - Informacje dotyczące zalogowanego użytkownika
2. AUSERVAR - Zmienne użytkownika
3. ASITE - Dokument witryny
4. AMESS - Komunikaty użytkownika
5. AUSERCRIT - Kryteria użytkownika
6. ASYSVAR - Zmienne systemowe
7. ACONST - Pola tokenu stałej typu
Zapytania HTTP
W strukturze X3WEB zwierającej serwer XTEND istnieją trzy poziomy aplikacji:
1. główny serwer HTTP Apache przetwarzający zapytania HTTP
2. serwer Apache Tomcat, na którym funkcjonują „Aplikacje sieciowe”
3. aplikacja sieciowa XTEND
Zapytania HTTP do aplikacji sieciowej XTEND są identyfikowane przez adres URL zaczynający się od /xtend/*.
„Ścieżka” aplikacji sieciowej XTEND może zostać ustawiona poprzez konsolę, za pomocą ustawień zaawansowanych:
xtend.server.virtualpath.context=xtend
Aplikacja sieciowa jest w stanie przetwarzać pewną ilość zapytań (serwletów) identyfikowanych poprzez konfigurację znajdującą się na drugim miejscu adresu URL /xtend/servlet/:
Protokół HTTP proponuje różne metody lub polecenia określające typ czynności, jaką wykonuje zapytanie.
Serwer XTEND odpowiada wyłącznie na metody GET i POST, co oznacza:
Łącze dynamiczne wykorzystuje, domyślnie, metodę POST, jeżeli jest do niej przypisany pewien zakres czynności.
Metoda ta zgłasza formularz HTML <form></form> strony poprzez wywołanie funkcji JavaScript xtdDoDlk.
Funkcja ta oblicza ustawienia łącza dynamicznego (xml) i wysyła je do ukrytego pola wejściowego.
Serwer otrzymuje wszystkie informacje, jakich potrzebuje do przetwarzania czynności lub zbioru powiązanego z klikniętym łączem dynamicznym (dane pól formularzy i kontekst obliczony przez klienta).
Link dynamiczny może wykorzystać metodę GET, wyłącznie jeżeli przekierowuje on stronę lub jeżeli nie istnieją ustawienia czynności lub zbiorów, jakie mają zostać obliczone.
Metoda ta nie zgłasza formularza HTML, ale przekierowuje przeglądarkę na adres URL zawierający wyłącznie ustawienia bazowe (łącze, rozwiązanie, katalog, witryna, język).
Tylko metoda GET jest kompatybilna z wyszukiwarkami (crawlerami).
Dla bezpieczeństwa, możliwe jest użycie odwróconego proxy do dostępu do aplikacji z serwerów wewnętrznych.
Użycie odwróconego proxy umożliwia ukrycie rzeczywistego adresu serwera i ułatwia utrzymanie witryny.
W przypadku zatrzymania serwera możliwe jest tymczasowe przekierowanie zapytań na inny serwer bez wiedzy klienta.
Aby zdefiniować „odwrócone proxy” o aliasie proxyxtend w serwerze Apache serwera X3WEB hostproxy „przekierowujące” zapytania XTEND do hostxtendwykorzystywana jest następująca konfiguracja.
Tworzenie „wirtualnego hosta” na porcie 80
<VirtualHost _default_:80>
<Location '/proxyxtend/'>
ProxyPass 'http://hostxtend:28980/'
ProxyPassReverse 'http://hostxtend:28980/'
ProxyPassReverseCookieDomain 'hostxtend' 'hostproxy'
ProxyPassReverseCookiePath '/xtend' '/proxyxtend/xtend'
</Location>
</VirtualHost>
<VirtualHost _default_:443>
...
ProxyRequests Off
SSLProxyEngine on
ProxyPreserveHost On
<Location '/proxyxtend/'>
ProxyPass 'https://hostxtend:28943/'
ProxyPassReverse 'https://hostxtend:28943/'
ProxyPassReverseCookieDomain 'hostxtend' 'hostproxy'
ProxyPassReverseCookiePath '/xtend' '/proxyxtend/xtend'
SSLRequireSSL
</Location>
...
</VirtualHost>
W przypadku gdy serwer Apache hostproxy otrzyma następujący adres url http://hostproxy/proxyxtend/xtend/page/*.
zachowa się jako proxy i wykonuje dla klienta zapytanie http://hostxtend/xtend/page/* do serwera XTEND.
Serwer XTEND, obliczający stronę HTML, jaka ma zostać przesłana do klienta, musi uwzględniać odwrócone proxy, aby wygenerować adresy URL poprawne dla klienta końcowego (przeglądarki).
W naszym przypadku XTEND musi wygenerować adresy URL w/proxyxtend/xtend/*.
Musi on uwzględnić obecność odwróconego proxy w obliczaniu adresu URL.
Metoda, jaką wykorzystuje XTEND, jest następująca:
-1- Deklaracja odwróconych proxy
Deklaracja portów HTTP i HTTPS „odwróconych poxy” poprzez konsolę administracyjną, w której modyfikowane są następujące ustawienia zaawansowane:
# Konfiguracja odwróconych proxy
xtend.server.gensetup.proxies.hosts= hostproxy1 hostproxy2
xtend.server.gensetup.proxies.portshttp= 80 80
xtend.server.gensetup.proxies.portshttps= 443 443
-2- Odczyt „Referera” HTTP
Nagłówek Referera HTTP zawiera adres url używany przez klienta do osiągnięcia serwera.
Serwer XTEND analizuje ten adres URL i wykrywa obecność odwróconego proxy, jeżeli /xtend/ ma wartość jako prefix (na przykład: /proxyxtend/xtend/).
Poprzednia konfiguracja służy do zarządzania zmianami protokołu http->https i odwrotnie. XTEND musi znać porty HTTP i HTTPS odwróconego proxy.
Aby dobrze obsługiwać odwrócone proxy, serwer XTEND musi koniecznie znać „Referera” HTTP oraz porty HTTP i HTTPS (pierwszego) odwróconego proxy.
Ustawienia konfiguracji xtend.server.gensetup.http.askreferer=on/off (domyślnie włączone) służą do aktywowania lub deaktywowania tego mechanizmu.
Nagłówek „HTTP Referer” nie zawsze jest obecny, zwłaszcza przy wprowadzaniu adresu w pasek adresu przeglądarki.
W przypadku braku w zapytaniu nagłówka „Referera” HTTP, serwer XTEND przesyła do przeglądarki pusty formularz z odpowiedzią automatyczną (ukrytą dla użytkownika), która w większości przypadków przesyła „Referera”.
Jeżeli próba taka kończy się niepowodzeniem i „Referer” nie zostaje wysłany, serwer XTEND nie jest w stanie uwzględnić obecności odwróconego proxy.
Protokół komunikacji pomiędzy przeglądarką a serwerem HTTP to protokół HTTP przebiegający na zasadzie „bez raportu”.
Serwer HTTP nie przechowuje jakichkolwiek śladów klienta po przetworzeniu zapytania.
Wszystko odbywa się w taki sposób, jakby połączenie pomiędzy klientem a serwerem urywało się po każdym zapytaniu.
Taki tryb funkcjonowania jest radykalnie odmienny od trybu klient/serwer (klient X3), który gwarantuje utrzymanie aktywnego połączenia z serwerem X3 przez cały czas trwania sesji.
Do tworzenia aplikacji sieciowych niezbędne jest połączenie różnych zapytań i powiązanie ich z tym samym klientem.
Połączenie to jest wykonywane z użyciem plików cookie HTTP.
Plik cookie jest tworzony z inicjatywy serwera, gdy ten przesyła klientowi instrukcję „set cookie” (ustaw cookie) do nagłówka HTTP.
Plik cookie jest w takiej sytuacji wysyłany przez klienta do nagłówka HTTP wszystkich zapytań do tego serwera
Instrukcja
Set-Cookie: JSESSIONID=3C9B3EF39FB53069ACB02B6ADA5551A1; Path=/xtend
Ścieżka służąca do filtrowania plików cookie wysyłanych do serwera
W naszym przykładzie, JSESSIONID jest wysyłane do wszystkich zapytań, których adres URL zaczyna się od /xtend/ (http://host:port/xtend/....)
Identyfikacja poprzez pliki cookie (a tym samym również funkcjonowanie aplikacji sieciowej) jest możliwa, wyłącznie jeżeli przeglądarka autoryzuje pliki cookie typu sesja (niezapisane).
Jest to, zazwyczaj, typowe ustawienie w przypadku przeglądarek sieciowych.
Pojęcie „klienta” bywa różne dla różnych przeglądarek i zależy od sposobu zarządzania plikami cookie.
Sesja użytkownika służąca do powiązania określonego kontekstu danych z każdym z klientów jest zarządzana przez serwer TOMCAT poprzez podejście serwletowe.
Aby zidentyfikować zapytania i przekierować je do prawidłowej sesji użytkownika, TOMCAT używa określone pliki cookie sesji o kodzie JSESSIONID.
Pliki cookie zarządzane przez serwer TOMCAT
Set-Cookie: JSESSIONID=3C9B3EF39FB53069ACB02B6ADA5551A1; Path=/xtend
JSESSIONID jest identyfikatorem sesji TOMCAT
Plik cookie JSESSIONID nie jest plikiem długotrwałym, to znaczy nie jest przechowywany po zamknięciu przeglądarki.
Podczas zamykania przeglądarki sesja, a tym samym kontekst danych, zostają utracone.
Sesja jest przechowywana w pamięci przez okres, który może zostać ustawiony w ustawieniach konfiguracji konsoli.
xtend.server.gensetup.http.session.timeout
Ustawienie to wskazuje czas bezczynności, w minutach, zatwierdzony dla sesji użytkownika przez serwer TOMCAT.
W przypadku niestwierdzenia w tym czasie aktywności (otrzymane zapytanie) sesja zostaje usunięta, a kontekst danych utracony.
Serwer XTEND zarządza swoim własnym identyfikatorem sesji poprzez plik cookie XADXID .
Jest do długotrwały plik cookie, co oznacza że jest on zapisywany przez przeglądarkę (jeżeli został autoryzowany).
Po uruchomieniu przeglądarki przez użytkownika i ponownym połączeniu z serwerem XTEND, plik cookie XASXID jest przesyłany w zapytaniu (jeżeli istnieje), a serwer próbuje odnaleźć sesję (TOMCAT) użytkownika, w celu ponownego połączenia.
Pliki cookie zarządzane przez serwer XTEND
Set-Cookie XADXID=123332746651556912893670; Expires=Sat, 30-Jan-2010 14:57:46 GMT; Path=/xtend
Ustawienia konfiguracji konsoli xtend.server.gensetup.http.cookie.sess.persist=on (domyślnie włączone) służą do aktywowania/deaktywowania zarządzania ponownym połączeniem po zamknięciu przeglądarki.
Strona ponownego połączenia witryny (opcjonalna) służy do informowania o przywróceniu sesji.
XTEND proponuje tryb funkcjonowania bez plików cookie, propagujący identyfikator sesji JSESSIONID w adresie URL.
Tryb ten może zostać aktywowany:
Tryb funkcjonowania bez plików cookie zwiększa rozmiar adresu URL poprzez dodanie ustawienia:
http://ecfdalbopro:28980/xtend/page;jsessionid=E04AEF0615702B3C7E52107ED6C17D8A?DLK=DLKTESTMAPPING...
Tryb ten nie umożliwia użycia łącza do innych witryn internetowych, z uwagi na fakt że identyfikator sesji nie jest propagowany, a sesja użytkownika zostaje utracona.
Poniższy akapit opisuje proces przetwarzania zapytań HTTP przez serwer XTEND.
1. Otrzymanie zapytania HTTP
2. Filtrowanie zapytań w zależności od adresu URL
3. Przesyłanie zapytania do „Serwera Apache TOMCAT” poprzez mod_jk
mod_jk : „Jakarta module” jest nazwą darmowego projektu informatycznego, którego rezultatem jest projekt TOMCAT
JkMount xtend/portal* ajp13
JkMount xtend/page* ajp13
JkMount xtend/err/* ajp13
JkMount xtend/ajax/* ajp13
JkMount xtend/x3rsrc/* ajp13
JkMount xtend/htmrsrc/* ajp13
JkMount xtend/x_protect/* ajp13
JkMount xtend/data/* ajp13
JkMount xtend/svc/* ajp13
JkMount xtend/*.jsp ajp13
1. Tworzy zadanie (wątek) dla przetwarzania zapytania
2. Odnajduje (usługę obiektu serwletowego) wskazanego przez adres URL
3. Odnajduje sesję z plikiem cookie JSESSIONID
4. Wywołuje metodę doPost lub doGet usługi
1. Inicjalizacja
1. W przypadku nowej sesji TOMCAT
2. W przypadku przekierowania (zmiana protokołu itp.)
3. Odczyt ustawień XTEND
2. Otwarcie sesji
1. Wstrzymanie sesji użyte przez inne zapytanie
2. Pozycjonowanie kontekstu na witrynie XTEND
3. Weryfikacja uaktualnień słownika XTEND
3. Sterowanie
1. Kontrola protokołu
2. Jeżeli użytkownik jest zalogowany: kontrola czasu bezczynności w ramach sesji XTEND
3. Jeżeli strona jest chroniona
Ustawienia „Protected access” (dostęp chroniony) rekordu strony
1. Kontrola praw dostępu użytkownika
2. Jeżeli użytkownik nie posiada właściwych praw dostępu
4. Przetwarzanie czynności sieciowych jeżeli czynność jest związana z łączem dynamicznym
5. Wyświetlanie strony
1. Weryfikacja aktualizacji strony
2. Inicjalizacja tokenów bloków (zapytań)
3. Obliczenie HTML
6. Wysłanie odpowiedzi do przeglądarki