Sziasztok!
Szoval az egyik kerdesem: web.xml-ben illesztesnel
miert csak valami
vegzodest lehet megadni (*.akarmi) pl. arra akartam illeszteni, hogy
"akarmi" amitol behalt. Ezek utan kiprobaltam az "akarmi.valami"-t,
amire szinten nem ment. Ellenben a "*.valami" mar megy. Valahogy ki
lehet jelenteni, hogy az en servletem igenis csak egyfelekepp lehet
meghivni?
Nem igaz, hogy csak *.akarmi lekepzest lehet megadni, bar valoban ez a
legelterjedtebb hasznalat. Peldaul a /akarmi/* lekepzes illeszkedik a
.../akarmi-re, a .../akarmi/-re vagy a .../akarmi/almafa-ra is.
A sima kozonseges...
<servlet-mapping>
<servlet-name>almafa</servlet-name>
<url-pattern>/akarmi</url-pattern>
</servlet-mapping>
... lekepzes is szepen mukodik.
A honlapra perceken belul felteszek egy PDF-et (Controlling Web
Application Behavior with web.xml), amiben az 5.3-as fejezet ir a
lekepzesekrol. Felteszem tovabba a servlet API 2.3-as specifikaciot,
amiben nyelvtan szinten van leirva, hogy mi lehet egy URI pattern (ami
megadhato lekepzesnel).
Osszefoglalva: vannak szabalyok (pl. vagy '/'-rel kezdodik a minta vagy
'*'-gal, de akkor kotelezo a vegzodes megadasa stb.), amiket be kell
tartani, de joval rugalmasabb a dolog, mint a sima *.valami minta.
A masik kerdesem inkabb csak gondolat ebreszto...
(kotozkodo ;) ) Szoval
nem jo a sima servlet, mert java kodba irunk html-t, nem jo a jsp, mert
html kodba irunk javat, kulonben is a lap dizajnert es a programozot
kulon fizetjuk, kulon munkat akarunk nekik.
En is kotozkodom picit, inkabb csak finomitok. A szervlet _mindenre_ jo,
csak odafigyelest igenyel. Gyakorlaton is irtatok olyan szervletet, ami
csak a logikat vegezte el es tovabbitotta a vezerlest egy statikus laphoz
(paros-e a szam pelda). A JSP is (akar onmagaban is) mindenre eleg, csak
erdemes "jol" hasznalni. Van olyan webalkalmazas, ami csupa JSP lapbol
all, mert ugy iteltek meg a fejlesztok, hogy azt a keves Java kodot el
tudjak helyezni szkripletekben is.
Milyen jo, itt van nekunk a
Struts. Ez idadig meg rendben is van. De most nezegetve Strutsots
peldakat, nekem ugy tunik, hogy mar egy harmadik eset forog fennt: a
java kodba beirunk mindent, ami majd az oldalra kerul, csak epp a
formalis html kodot hagyjuk ki.
Ebben igazad van. Azt vedd eszre, hogy kulonvalt a megjelenites es jelen
esetben az adat. Az a bab, amit a szervlet letrehoz tetszoleges helyen
felhasznalhato. Ki mondta, hogy egy HTML lap lesz belole? Irhatunk egy
alkalmazast, ami ilyen babbol PDF-et general vagy egy masikat, ami szep
grafikonokat rajzol ki egy vastag GUI-n, mert mondjuk a bab olyan adatokat
tarol, amikbol ez megteheto.
A lenyeg, hogy eloallt az eredmenyed, amit tetszoleges modon hasznalhatsz
fel.
Okke, a html kodolot most mar kulon
lehet alkalmazni, a javasnak meg csak azt kell tudnia, hogy csinal egy
babot, bele rakja a fejlecet, a nyito uzenetet, a form nevet, a form
mezot, a bucsu uzenetet stb.
Ezt most nem latod teljesen jol. Egy szep java kod a rendszermodellnek
megfelelo elemeket helyez el egy jol megtervezett babba (sima java osztaly
egy peldanyaba). Ennek _semmi koze_ a webhez. Regen rossz, ha Te fejlecet
teszel a babba, nyito uzenetet stb., mert tudod, hogy ezt weben fogod,
HTML formaban megjeleniteni.
Egy bab (nem csak adatokat tarolhat, de most egyszeruseg kedeert
tetelezzuk fel ezt) mondjuk reprezental egy felhasznalot azaltal, hogy
tarolja a nevet, a jelszavat, a preferenciait, meg az egyedi azonositojat.
Ez mindentol fuggetlenul lehet egy jo modellezes egy osztaly/rendszer UML
modellben.
A rendszeredet ugy ahogy van, atteheted teljesen mas kornyezetbe,
egyszeruen kicsereled majd a megjelenitesi reteget, azt, aki a Te
peldadban fogja a babot, kitesz egy fejlecet, a babbol kivesz infokat,
kiteszi a bucsu uzenetet stb.
A kulcsszo: ujrafelhasznalhatosag.
A html koder meg kore rakja hogy
<title></title> meg <body></body> es kibanyaszgatja a babbol az
oldal
tartalmat. Nem jutunk vissza ezzel az elejere, ahonnan indult a
problema?
Remelem most mar Te is ugy gondolod, hogy: nem :)
Meg1*: egy bab nem az oldal tartalmat tarolja, hanem valami "valo elet"
beli dolgot reprezental (bevasarlokocsit, felhasznalot stb.), amit ha
akarsz persze megjelenithetsz weblapkent is.
udv,G