A cikk megértéséhez szükséges ismeretek: többé-kevésbé már kitalálta
a Java Core-t , és szeretne
a JavaEE technológiákkal és
webprogramozással foglalkozni . Az lenne a legésszerűbb, ha jelenleg a Java Collections küldetést tanulmányozná, amely a cikkhez közel álló témákkal foglalkozik.
Jelenleg az IntelliJ IDEA Enterprise Edition-t használom (
a szerkesztő megjegyzése: ez az IDE fizetős kiterjesztett változata; általában a szakmai fejlesztés során használják). Sokkal egyszerűbb webes projektekkel dolgozni, mint az ingyenes
közösségi kiadásban . Az
Enterprise Edition- ben szó szerint egyetlen kattintás az egérrel felépíti a projektet, bedobja egy szervlet-tárolóba, elindítja a kiszolgálót, és még egy weboldalt is megnyit a projekthez a böngészőben. Az IDEA ingyenes verziójában ennek nagy részét egyedül, azaz "manuálisan" kellene megtennie.
Apache Maven- t használok
a projekt felépítéséhez és életciklusának kezeléséhez. A képességeinek (csomag/függőségkezelés) csak egy kis részét használtam ebben a projektben. Szervlet-tárolóként/alkalmazáskiszolgálóként az Apache Tomcat 9.0.12-es verzióját választottam.
Kezdjük el
Először nyissa meg
az IntelliJ IDEA-t , és hozzon létre egy üres
Maven projektet .
A bal oldalon válassza ki
a Maven elemet , és ellenőrizze, hogy fent van-e kiválasztva a
projekt JDK-ja . Ha nincs ott, válasszon egyet a listából, vagy kattintson
az Új ... gombra, és válasszon egyet a számítógépről.
Ebben az ablakban meg kell adnia a
GroupId és az ArtifactId értékeket . A
GroupId a projektet kibocsátó cég egyedi azonosítójára utal. Az általános gyakorlat a cég domain nevének használata, de fordított sorrendben. De nem olyan, mint egy tükör. Például, ha egy vállalat domain neve
maven.apache.org , akkor a csoportazonosítója
org.apache.maven. Vagyis először a legfelső szintű tartományt írjuk, adjunk hozzá egy pontot, majd a második szintű tartományt, és így tovább. Ez az általánosan elfogadott megközelítés. Ha saját maga "csiszolja" a projektet (és nem egy cég részeként), akkor ide írja be személyes domain nevét (szintén fordított sorrendben!). Ha van, természetesen. :) Ha nem, ne aggódj. Ide tulajdonképpen
bármit írhatsz .
A john.doe.org domain névvel rendelkező vállalatnál a GroupId org.doe.john lesz. Erre az elnevezési konvencióra azért van szükség, hogy elkülönítsük a különböző vállalatok által előállított, azonos nevű projekteket. |
Ebben a példában egy fiktív domaint fogok használni:
fatlady.info.codegym.cc . Ennek megfelelően a
GroupId mezőbe beírom
a cc.codergym.info.fatlady címet .
Az ArtifactId egyszerűen a projektünk neve. A szavak elválasztására használhat betűket és bizonyos szimbólumokat (például kötőjeleket). "Artefaktumunkat" pontosan az lesz a neve, amit itt írunk.
Ebben a példában az én-szuperprojektemet fogom használni . Még ne érintse meg a verzió mezőt – csak hagyja úgy, ahogy van. És itt van a standard
IDEA ablak, amikor új projektet hoz létre. A hagyományokhoz híven nevezzük ezt
az én-szuperprojektemnek .
A projekt létrejött!
A Pom.xml azonnal megnyílik. Ez egy Maven beállításokkal rendelkező fájl. Ha meg akarjuk mondani a Mavennek, hogy mit tegyen, vagy hol találjon valamit, mindezt leírjuk ebben a pom.xml fájlban. A projekt gyökerében található. |
Látjuk, hogy most pontosan azokat az adatokat tartalmazza, amelyeket a Maven projekt létrehozásakor adtunk meg :
groupId ,
artifactId és
version (ez utóbbihoz nem nyúltunk hozzá).
Projektünk felépítése
Ennek
a Maven projektnek sajátos szerkezete van.
Amint látja, a gyökérnek:
- egy .idea könyvtár, amely az aktuális projekt IDEA beállításait tartalmazza;
- egy src könyvtár, ahol létrehozzuk a forráskódunkat;
- egy my-super-project.iml fájl, amely egy IDEA által létrehozott projektfájl;
- a pom.xml fájl (a Maven projektfájl, amelyet korábban említettem), amely most meg van nyitva. Ha valahol említem a pom.xml fájlt, akkor erről a fájlról beszélek.
Az
src mappán belül két almappa található:
- main — kódunkhoz;
- teszt – a kódunk teszteléséhez.
A main és
a tesztben van egy
java mappa. Ezeket ugyanannak a mappának tekintheti, kivéve, hogy a
main- ban található a forráskód, a tesztben
pedig a tesztkód. Egyelőre nem használjuk az
erőforrás mappát. Nem fogjuk használni. De csak hagyd ott.
Alakítsa át webprojektté
Itt az ideje, hogy a Maven projektünket webprojektté alakítsuk . Ehhez kattintson a jobb gombbal a projekt nevére ebben a fában, és válassza a
Keretrendszertámogatás hozzáadása …
Megnyílik egy ablak, ahol különböző keretrendszerek támogatását adhatjuk hozzá projektünkhöz. De csak egy kell:
webalkalmazás . És ezt választjuk.
Győződjön meg arról, hogy a
Web Application jelölőnégyzet be van jelölve, és a főablak azt jelzi, hogy egy
web.xml fájlt szeretnénk automatikusan létrehozni (javaslom, hogy jelölje be a jelölőnégyzetet, ha még nincs bejelölve). Ezután azt látjuk, hogy a
webmappa hozzáadásra került projektünk szerkezetéhez.
Ez a webprojektünk gyökere a címmel
/
. Más szóval, ha beírjuk a böngészőbe a '
localhost ' szót (természetesen amikor a projekt fut), akkor itt, a webprojekt gyökerében fog kinézni. Ha beírjuk
a localhost/addUser -t , akkor az addUser nevű erőforrást fog keresni a
webmappában .
A legfontosabb dolog, amit meg kell értened, hogy a webmappa a projektünk gyökere, amikor a Tomcatbe helyezzük. Jelenleg van egy bizonyos mappastruktúránk, de a kész projektben, amelyet létrehozunk, ez kissé más lesz. Pontosabban, a webmappa lesz a gyökér. |
A webben van egy szükséges
WEB-INF mappa , ahol a
web.xml fájl található, vagyis az, amelyet az utolsó lépésben a programtól kértünk. Nyissuk ki.
Látható, hogy nincs még benne semmi érdekes, csak egy fejléc. Egyébként, ha nem kérted a fájl létrehozását, akkor manuálisan kell létrehoznod, azaz kézzel kell kiírnod az összes fejlécet. Vagy legalább keressen egy kész verziót az interneten. Mire van szükségünk
a web.xml fájlra ? A térképezéshez. Itt írjuk le
a Tomcat számára , hogy mely URL-kéréseket melyik szervleteknek kell átadni. De erre majd később térünk ki. Egyelőre hagyja üresen. A
webmappa index.jsp fájlt is tartalmaz
. Nyisd ki.
Ez az a fájl, amely úgyszólván alapértelmezés szerint végrehajtódik. Más szóval, pontosan ezt fogjuk látni, amikor elindítjuk a projektet. Alapvetően
a jsp egy közönséges
HTML-fájl , kivéve, hogy Java kódot futtathat benne.
Egy kicsit a statikus és dinamikus tartalomról
A statikus tartalom olyan tartalom, amely az idő múlásával nem változik.
Minden, amit egy HTML-fájlba írunk, változatlan formában jelenik meg, ahogyan meg van írva. Ha azt írjuk, hogy "
hello world ", ez a szöveg azonnal megjelenik az oldal megnyitásakor, és 5 perc múlva, és holnap és egy hét múlva, és egy év múlva. Nem fog változni. De mi van akkor, ha az aktuális dátumot szeretnénk megjeleníteni az oldalon? Ha csak azt írjuk, hogy "
2017. október 27", akkor holnap ugyanazt a dátumot látjuk, és egy héttel később és egy évvel később. De szeretnénk, ha a dátum aktuális lenne. Itt segít a kód közvetlenül az oldalon történő végrehajtásának lehetősége. Kaphatunk egy dátum objektum, konvertálja a kívánt formátumra, és jelenítse meg az oldalon. Ezután minden nap, amikor megnyitjuk az oldalt, mindig aktuális lesz a dátum Ha csak statikus tartalomra van szükségünk, akkor csak egy rendes webszerverre és HTML-fájlok. Nincs szükségünk Java-ra, Maven-re vagy Tomcat-re. De ha dinamikus tartalmat akarunk használni, akkor az összes eszközre szükségünk van. De most térjünk vissza az index.jsp-
hez .
Jelöljünk a szokásos címen kívül mást is, például: "
Szuper webalkalmazásom! " Majd a törzsbe írjuk be: "
Élek! " Már majdnem készen állunk a projektünk elindítására! Sajnos a program indításához szokásos zöld háromszög nem aktív.
Kattintson a tőle balra lévő gombra (amelyet a képernyőn egy piros nyíl jelzi), és válassza a
Konfigurációk szerkesztése lehetőséget . Ekkor megnyílik egy ablak, ahol egy zöld pluszjelre kell kattintani a konfiguráció hozzáadásához. Kattintson rá (az ablak bal felső sarkában).
Válassza
a Tomcat szerver >
Helyi lehetőséget . Megnyílik egy sok lehetőséget tartalmazó ablak, de az alapértelmezettek szinte mindenre megfelelnek nekünk.
A konfigurációnknak szép nevet adhatunk a szabványos
Unnamed helyett (legfelül). Azt is ellenőriznünk kell, hogy az IDEA sikeresen megtalálta-e a Tomcatet a rendszerünkön (már letöltötte
és telepítetteaz, igaz?). Ha nem található (ami nem valószínű), akkor nyomja meg a lefelé mutató nyilat, és válassza ki a telepítés helyét. Vagy válasszon másik verziót, ha egynél több van telepítve. Nekem csak egy van és már telepítve van. Ezért néz ki úgy, ahogy a képernyőmön. Az ablak alján pedig egy figyelmeztetést látunk, amely arra figyelmeztet, hogy eddig nem jeleztek műtermékeket a kiszolgálón történő telepítéshez. A figyelmeztetéstől jobbra található egy gomb, amely a probléma javítását javasolja. Rákattintunk, és azt látjuk, hogy az IDEA mindent meg tudott találni magától, mindent, ami hiányzott, magától létrehozta, és minden beállítást magától konfigurált.
Láthatjuk, hogy áthelyezett minket a
Kiszolgáló lapról a
Telepítés lapra, a
Telepítés a kiszolgáló indításakor.szakaszt, és most van egy műtermünk, amelyet telepíteni kell.
Kattintson az Alkalmaz és az OK gombra. És először azt látjuk, hogy az ablak alján megjelent egy rész a helyi Tomcat szerverünkkel, ahol a műtermékünk lesz elhelyezve. Zárja össze ezt a részt az ablak jobb oldalán található megfelelő gombra kattintva.
Most látjuk, hogy a zöld indítóháromszög aktív. Aki szeretne mindent duplán ellenőrizni, kattintson a projektbeállítások gombra (az indítógomboktól jobbra, piros nyíllal jelezve), lépjen a Műtermékek részre, és ellenőrizze, hogy valóban létrejött-e az
artefact . Addig nem volt ott, amíg meg nem nyomtuk azt a
Fixetgombot, de most már minden rendben van. És ez a konfiguráció tökéletesen megfelel nekünk. Dióhéjban a különbség
a my-super-project:war és
a my-super-project:war exploded között az, hogy
a my-super-project:war egyetlen
háborús fájlból (ami csak egy archívum) és a
robbantott verzióból áll. egyszerűen a
"kicsomagolt" háború . És személy szerint ez az a lehetőség, amit kényelmesebbnek találok, mert lehetővé teszi a kisebb változtatások gyors hibakeresését a szerveren. Lényegében
a műtermék a mi projektünk, amelyet most fordítottunk le – és ahol a mappaszerkezet megváltozott, hogy a Tomcat közvetlenül hozzáférhessen. Valahogy így fog kinézni:
Most már minden készen áll a projektünk elindításához. Nyomja meg az értékes zöld indítógombot, és élvezze az eredményt! :)
GO TO FULL VERSION