_request
Data vztahující se k aktuálně zpracovávanému HTTP požadavku (HTTP request).
Objekt má následující podhodnoty:
url
- (String) Absolutní URL požadavku (bez parametrů).
queryString
- (String) Řetězec s parametry URL, například "a=b&c=d".
scheme
serverName
serverPort
uri
- Komponenty
url
: (String)scheme
je schéma požadavku, například "http"; (String)serverName
je jméno serveru, například "www.google.com"; (Integer)serverPort
je port, typicky 80. (String)uri
je zbývající část, tedy "relativní URL". contextPath
servletPath
pathInfo
- Komponenty
uri
– zhruba platí, žeuri
=contextPath
+servletPath
+pathInfo
. remoteAddr
remoteHost
remoteUser
- Údaje o původu požadavku: (String)
remoteAddr
je IP adresa klienta, od kterého požadavek vzešel, (String)remoteHost
je odpovídající plně kvalifikované jméno (nebo opět IP adresa) a (String)remoteUser
je uživatel. protocol
- (String) Protokol, například "HTTP/1.1".
method
- (String) Metoda požadavku, například "GET" nebo "POST".
contentType
- (String) Typ těla požadavku, tedy zhruba řečeno obsah hlavičky "Content-Type". Pro požadavky metodou GET, které nemají žádné tělo, bude typicky nenastaveno.
contentLength
- (String) Obsah hlavičky "Content-Length". Pro požadavky metodou GET bude typicky 0.
characterEncoding
- (String) Kódování těla požadavku.
referrer
- (String) Obsah hlavičky HTTP
Referer
. authType
- (String) Typ autentikace.
params
headers
cookies
- Struktury zpřístupňující po řadě parametry požadavku, HTTP hlavičky a data uložená jako cookie. Jejich podrobnější popis dále následuje.
Kromě toho je jako podhodnota dostupný každý atribut HTTP požadavku.
_request.params
Podhodnota se dá použít pro přístup k parametrům požadavku, a to bez ohledu na to, zda jde o parametry URL, nebo parametry POST požadavku obsažené v jeho těle.
Pokud je možné s jistotou předpokládat, že parametr s daným názvem je v požadavku obsažený jen jednou, lze k němu přistupovat jako k podhodnotě objektu _request.params
.
<input type="text" name="query"
value="{_request.params.query}" />
{while _request.params}
{thisParamKey := _.key}
{thisParamValue := map(_request.params, thisParamKey)}
{/while}
K parametrům s více hodnotami je možné přistupovat pouze iterací přes objekt _request.params
; při takové iteraci je v každém kroku dostupná struktura, ve které podhodnota key
je název parametru a podhodnota value
je pole všech hodnot pro daný název.
{while _request.params
if _.key == "category" let category := _.value /if
/while}
<select name="category" multiple="multiple">
{while asMap(
"news", "Aktuality",
"products", "Produkty",
"all", "Vše"
)}
<option value="{_.key}"
{if in(_.key, category)} selected="selected"{/if}>
{_.value}
</option>
{/while}
</select>
Přistoupit k nim je také možné přes _request.paramLists
obsahující mapu listů – mapa, kde klíči jsou názvy parametrů a hodnotami pole všech jejich hodnot.
_request.headers
Objekt _request.headers
se chová jako struktura, jejíž podhodnoty odpovídají HTTP hlavičkám požadavku.
Hodnota každé hlavičky je dostupná:
- pod klíčem shodným s názvem hlavičky,
- pod klíčem, který se z názvu hlavičky odvodí záměnou všech velkých písmen za malá a záměnou všech jiných znaků než písmena a číslice za podtržítko.
Druhá možnost má usnadňovat přístup k obsahu hlavičky – eliminuje nutnost použít funkci map.
{_request.headers.accept_charset}<br>
{map(_request.headers, "Accept-Charset")}
windows-1250,utf-8;q=0.7,*;q=0.3<br>
windows-1250,utf-8;q=0.7,*;q=0.3
_request.cookies
Objekt se chová jako struktura nebo jako seznam dále strukturovaných objektů – jednotlivých cookie. Každá jednotlivá cookie je tedy dostupná buď při iteraci přes objekt _request.cookies
, nebo jako podhodnota tohoto objektu dostupná pod názvem cookie.
V obou případech má samotná cookie následující podhodnoty:
name
- Název cookie. Smysl má, pokud se ke cookie přistupuje iterací, jinak se shoduje s klíčem použitým pro přístup ke cookie.
value
- Hodnota cookie.
version
comment
domain
maxAge
secure
path
{_request.cookies.__utmb.name}<br>
{_request.cookies.__utmb.value}
__utmb<br>
1.32.10.1273752969
Viz také funkci setCookie.