Oto Buchta wrote:
No myslim, ze autor mel na mysli kontext aplikace, nikoli servletu. On chce napsat JSP tag, ktery vlozi odkaz na obrazek, ktery lezi v adreari neco/img/obrxyz.png, kde neco je prave context root APLIKACE. Takze to, co potrebuje, je bud nejaka promenna, ktera bude drzet tuto hodnotu, nebo metoda appserveru, ktera mu toto vrati. Proc jsem vlozil test.jsp do rootu je jasne: getContextPath() vrati to co chce rozsirene o test.jsp, coz je konstanta, kterou si muze klidne od substringovat ;-)

Mam pocit, ze jsi z tech sesnu dneska uplne exhaustovany :-)

Existuje interface ServletContext, ktery drzi informace o
prostredi, ve kterem se servlet nachazi, coz je "web application"
a daji se tomu nastavovat atributy, ktere pak vidi vsechny servlety.
Tedy "kontext servletu" a "kontext aplikace" jsou jedno a totez.
Specifikace Servlet API primo uvadi:

The servlet container must enforce a one to one correspondence between a Web application and a ServletContext.

Kontext poskytuje mimo jine "context path",
to je prefix v te casti URL, ktera nasleduje za specifikaci stroje a
portu (ta se nazyvala URI, proto je tak nazyvana v javadocu, i kdyz URI
se mezitim stalo necim jinym a sice nadmnozinou URL), a pred
cestou k souboru v ramci aplikace, tj.

http://stroj.nekde.cz:80/kontext/pics/obr.png

To s cim to asi zamenujes je metoda ServletContext.getRealPath(java.lang.String) ktera dokaze vratit absolutni cestu k souboru v ramci souboroveho systemu stroje, kde webova aplikace bezi, pokud existuje
(u nerozbalenych WARu cesta existovat nemusi).
Ale ta je k uplne jimym vecem, nez co pisatel chtel.

Pisatel chtel vedet asi toto:

String obrazek = "/pics/obr.png"
...
if(obrazek.startsWith("/")) {
 return  response.encodeURL(request.getContextPath() + obrazek);
}

Makub
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Supercomputing Center Brno             Martin Kuba
Institute of Computer Science    email: [EMAIL PROTECTED]
Masaryk University             http://www.ics.muni.cz/~makub/
Botanicka 68a, 60200 Brno, CZ     mobil: +420-603-533775
--------------------------------------------------------------

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Odpovedet emailem