» »

Java servlet URL - kako naredit, da se ga ne vidi na klientu?

Java servlet URL - kako naredit, da se ga ne vidi na klientu?

Fizikalko ::

Torej, kaj je ptrebno naredit (mogoče v web.xml), da klient v URLju ne vidi poti do servleta, ko se le-tega pokliče? Recimo, da hočem, da se mu nekaj drugega pokaže oziroma URL brez vmesnih korakov oz. celotne strukture direktorijev...

Hvala že vnaprej.

kopernik ::

En kratek namig : uporabi requestdispatcher za includanje (drugih resorsov v web aplikaciji) ...

Fizikalko ::

Ja sej to znam - in kaj to pomaga?

kopernik ::

To pomaga tako, da se ne vidi poti do includane vsebine. Torej, če imaš servlet na naslovu http://blablabla/myapp/myservlet in v temu servletu includaš vsebino iz http://blabla/myapp/content/body.jsp, bo uporabnik videl le naslov servleta, ne pa naslov jsp-ja. Tako nihče ne vidi poti oz. direktorijev do tvoje vsebine, razen do tega servleta. Če daš vsebino pod direktorij WEB-INF, pa sploh ne bo nikomur dostopna (če bi uporabnik nekako ugotovil pravo pot do vsebine), razen tebi na serverju, z uporabo includov.

Zgodovina sprememb…

  • spremenil: kopernik ()

kopernik ::

npr. imam web aplikacijo z naslednjo strukturo :
index.jsp
WEB-INF/
    web.xml
   jsp/
       page1.jsp
       page2.jsp


Uporabnik ne bo mogel priti do strani na WEB-INF/jsp/*.jsp direktno, temveč samo posredno, če mu jo boš ti serviral z includi oz. requestdispatcherjem.

Zgodovina sprememb…

  • spremenil: kopernik ()

kopernik ::

Aja, tudi različne servlete lahko includaš v enem, ki je edina vstopna točka za zunanje uporabnike (temu se reče FrontController pattern in pomeni, da je celotna aplikacija vidna navzven skozi en servlet oz. en URL).

Fizikalko ::

Kaj pa, če hočem imet kontrolo nad tem, kaj se mu izipše v url-ju? Npr. namesto pravega URLja do servlet nek poljuben string oz. URL ?

kopernik ::

V web.xml imaš za vsak servlet,filter ali jsp-stran možnost dodati en ali več url-pattern tag. Tako se npr. nek servlet lahko mapira na čisto drugačen naslov. Npr. :
  <servlet-mapping>
    <servlet-name>myservlet</servlet-name>
    <url-pattern>/pikapoka/bumbum</url-pattern>
  </servlet-mapping>


Tako bo servlet "myservlet" dostopen na naslovu http://blabla/myapp/pikapoka/bumbum.

Alternativno lahko postaviš en apache pred tvoj servlet container (tomcat, resin, ipd.) in tam mapiraš url-je čisto po svoje.

Fizikalko ::

Uf, res ti hvala, to je to. ;)


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

JSF

Oddelek: Programiranje
6791 (572) KaRkY
»

[Java] Eclipse in REST storitve

Oddelek: Programiranje
5705 (594) xardas
»

tomcat in datasource

Oddelek: Programiranje
131983 (1740) infiniteLoop
»

[Java] servlet - kako upload-at iz klienta v servlet

Oddelek: Programiranje
141719 (1625) Fizikalko
»

tomcat - problem z encodingom

Oddelek: Programiranje
72342 (2256) kopernik

Več podobnih tem