Mi az a Web servlet

Internet alkalmazások JAVA

hálózati protokollok

Így könnyű kötni - Web-szerver egy speciális program fut a számítógépen, és vesz egy adott portot. Mint már említettük a legnépszerűbb port - 80.

HTTP - ki az?

És most néhány szó a HTTP. HTTP - ez Hyper Text Transfer Protocol - Hypertext Transfer Protocol. Nagyjából, nem kerül átvitelre fura hipertext és a leggyakoribb szöveget, de ha egyszer nevezték így, hát legyen. Hypertext válik, amikor pokazvaet böngészőt. Ez a böngésző szerint a címkéket (fogunk beszélni róluk később) formázza a szöveg hivatkozik (ez az, ami a szöveg hipertext), azt mutatja, rajzok, stb
Amikor egy alkalmazás létrehoz egy TCP / IP kapcsolat egy másik alkalmazás (vagy egy másik számítógépén ugyanaz), akkor lehet elképzelni, mint egyfajta cső, amely jelenleg mindkét irányban lehet továbbítani bájt.
HTTP csak leírja, hogy milyen byte (karakter), és milyen sorrendben kell átadni a kliens és a szerver megérteni egymást. HTTP talán az egyik legegyszerűbb protokollokat. Ma két változata van a HTTP protokoll - 1.0 és 1.1. A leggyakoribb parancsok GET és POST. Kérésformátum a következő:

URL tartalmazza az elérési utat a forrás és a paraméterek, amelyek telt el az utat. Mi tesz egy kérdőjelet, és aztán megy pár <имя>=<значение> a megjelölés . Valahogy

Mint látható, itt is kért erőforrás / RFS / show és paraméterátadásra showName és secondLetter.

Az első szó a servlet

Mi a servlet. Röviden írja le a munka a servlet, akkor: Web-szerver, amely képes együttműködni kisalkalmazások, Java-gép indul, ami végrehajtja a servlet és a servlet küldi az adatokat generál. Ie ha egy kérés érkezik egy kliens-szerver egy speciális konfigurációs fájl melyik servlet elvégzésére servlet lefut, és létrehoz egy HTML-oldal, amely a szerver küld az ügyfélnek.
És most megint, és lassan 🙂
A szerver egy kérés érkezik egy kliens kérés tartalmazza magát az URL-t és a paramétereket. A szerver egy speciális konfigurációs fájlt, amely azt mondja, hogy hogyan servletté kell tenni abban az esetben, érkezése egy adott URL-t. A servlet történik (ahol használhatja a beállításokat) és létrehozza a HTML-oldal, amely elküldi az ügyfélnek.
A szerver lényegében egy tartály (most nem vizuális komponensek), amely betölti a kisalkalmazások, végrehajtja azokat, amelyben az egyes módszerek és kap az eredményeket, azt megküldi az ügyfélnek.
Így servlet - egy Java-osztály, amely kiterjed általában az osztály • HttpServlet és felülbírálja a módszerek:
• doGet - ha azt akarjuk, hogy válaszoljon a servlet GET kérés.
• doPost - ha azt akarjuk, hogy válaszoljon a servlet POST kérést.
• doPut, doDelete - ha azt akarjuk, hogy válaszoljon a servlet PUT és DELETE kérés (vannak a HTTP). Ezek a módszerek csak ritkán hajtják végre, mert saját csapat is nagyon ritka.
• init, megsemmisíti - a vezetés idején a servlet, és az idő a pusztulástól.

Ha kell az összes fogást a parancsokat, a legegyszerűbb módszer, hogy újra szolgáltatást. Ezt a módszert nevezik, amikor a kérelem érkezik az ügyfél. A HttpServlet előfordul lekérdezéselemzés és eljárás doGet okozott összhangban az említett parancsot, doPost stb
Fogunk írni egy nagyon egyszerű servlet, amely megjeleníti a hagyományos Helló, világ!.
De először meg kell futtatni a Web-szerver, amely támogatja servlet. A legegyszerűbb számunkra, hogy Tomcat.

HTML és XML

További érti az anyagot, akkor van némi ismerete a két jelölő nyelvek - HTML (Hyper Text Markup Language) és az XML (Extensible Markup Language).

Dióhéjban - a két nyelv használ a rendszer „tag”. Tag - egy sor karakter, amely hegyes zárójelek "<«, «>”. Például:

Mint látható, én „felfedezte” B címke és után a szöveg „zárja” azt. Elvileg semmi bonyolult. Fontos, hogy majd a böngésző (vagy más alkalmazás), amelyek megfelelnek a következő sorrendben. A HTML, ez azt jelenti, hogy a szöveg, hogy nazhoditsya belül el kell különíteni a „merész” font.
Fontos megérteni, hogy a HTML - ez csak egy módja annak, hogy „mondd” a böngésző hogyan kell formázni a szöveget. Ie különböző címkék adja meg információk jelennek meg semmilyen formában. Ie A HTML-ben egy konkrét címkék amelynek van szövegformázást - betűméret, igazítás, a háttér színe, stb
Ellentétben HTML kinevezés XML - adatok tárolására szerkezetét. Ön adja meg a nevét a dokumentum szerkezetét, hogy hol és milyen sorrendben van, hanem megmutatni egy ilyen dokumentum böngésző a gondolat nem lehet - akkor meg kell azt, hogyan kell értelmezni egy adott kulcsszó. Akkor jön ki a saját címkéket, amelyek nagyon fontosak, és egyértelmű, hogy te és a műszer. Sajnos (vagy talán szerencsére) ez a téma egy külön könyvet, így nem fogunk megállni.
Nagyon kérem, csak egy dolog -, hogy megismerjék azokat az általános fogalmakat a HTML és XML további megértést. Elég egyszerű megértése - megtanulják a finomságok magukat a jövőben önálló munkát.

Fuss a Tomcat webszerveré

Töltse Tomcat lehet egy szerver - Apache Tomcat.
A bal oldalon látható egy lista a Tomcat változatok - kiválasztani a megfelelő (teszteltem annak alkalmazását a 6-os verzió). VIGYÁZAT: Mielőtt letölt egy fájlt ellenőrzésen, amely változata a JVM használ. Ha 1,4, a Tomcat 6.x / 5.5 akkor nem fog. Van egy további könyvtár, amely megoldja a kompatibilitási problémát, de őszinte tanácsom - adja magát JVM 1.5 és akkor a problémák elkerülése érdekében a telepítést. Elvileg te könnyen át a többi rész nem, mert ott is megköveteli Java verzió 1.5 vagy magasabb.

Lényegében letölti a fájlt, amit csak csomagold tetszőleges mappába. Én általában hozzon létre egy külön JAVA mappát, amelybe telepíteni az összes csomag, IDE, JDK, és egyéb dolgok. Felesleges minden csomagnak van saját könyvtárban.
A jövőben fogom használni TOMCAT_HOME értéket mutatni, milyen könyvtárat Tomcat szerver telepítve, meg kell csinálni valamit kezdeni, meg és módosíthatók.
Ez is nagyon fontos - meg kell állítanod egy környezeti változót JAVA_HOME. Meg kell adnia az elérési utat a gyökér könyvtárat a JDK telepítve.
Windows, ez történik az alábbiak szerint:
Start-> Beállítások-> Vezérlőpult> Rendszer-> Advanced-> Környezeti változók.
Unix, akkor csak meg kell parancssorból, hogy hozzon létre egy változó JAVA_HOME vagy regisztrálni azt a kezdeti beállítást. (Úgy gondolom, hogy azok számára, akik a Unix nem probléma).
Ha emlékezetem nem csal, a korábbi verziókban Tomcat is kellett egy esetleges változó TOMCAT_HOME, de most ez nem szükséges. Tehát nem tehetünk.
Ha már telepítette Tomcat nézzük a teljesítményét. Ehhez menj a könyvtárba \ Bin és fuss startup.bat fájlt. Ha nem elrontani semmit, meg kell kezdeni a DOS-box, amely megjeleníti a különböző információkat. Gondoskodj róla, hogy nincs hibaüzenet - ők azonnal nyilvánvaló - állítanak ki a teljes köteg módszerekkel. A legfontosabb üzenet, hogy akkor meg kell jelennie a legvégén (általában meg kell várni 5-10 másodpercet - feltéve, hogy Tomcat nem tartalmaz sok alkalmazások)

INFO: Server indításkor 8828 ms

A ezredmásodperc persze lehet, hogy nem így lesz. Ha minden jól megy, indítsuk el a böngészőt, és írja be azt

8080 - ez az alapértelmezett port vesz Tomcat. Port 80, ő nem érintkeznek. Bár, ha azt szeretné, hogy egy másik port - adja meg a könyvtár \ Conf és okroyte server.xml fájlt. Nézd sorokban ott

Mint látható, meg lehet változtatni 8080 bármely más, ami kényelmes neked. Ne felejtsük el, hogy ha módosítja a fájlt neobohdimo újraindítja Tomcat.
Tehát, ha nem írta a megadott URL a szemed előtt megnyílik a főoldalon a Tomcat szerver egy szép és (higgye el) nagyon jól ismert macska a bal felső sarokban. (Bár nekem úgy tűnik, hogy ez több, mint egy tigris - lehet úgy, ahogy van?)

A jobb felső sarokban a felirat kerül nyugtató

Ha látja ezt az oldalt egy web böngészőn keresztül, ez azt jelenti, hogy már a telepítést Tomcat sikeresen. Gratulálunk!

És gratulálok is - ha éppen elindította a saját személyes web-szerver.

A legnépszerűbb servlet - Helló, világ

Mint látható, az általunk örökölt a könyvtár osztály HttpServlet és felülírja az egyik módszer - doGet.
Most arra összpontosítunk, hogy néhány fontos pontot:

  1. Hívjon setContentType. Ez a módszer fontos azok számára, akik a magyar nyelv - mielőtt megjelenne az oldalon a magyar teskt böngésző tájékoztatni kell, hogy ez a magyar szöveget fogunk megjeleníteni, és a böngésző használja a kódolást. ami illik hozzánk.
  2. Az író-osztály átvételi adatok kiadását. Nagyon fontos megjegyezni a következőket pillanatban - a következtetést lehet végezni karakterenként, és byte byte. Jelenítse meg a szöveget karakter-orientált kiadó kimenetet bináris fájlok használt egyetlen bájtot. Egy teljesebb megértéséhez, hogyan lehet jobban megnézi az információk rendezett az I / O szálak Java.

Java különbség egy szimbólum és egy byte nagyon fontos - a A Java a jövőben, a szimbólum használ két bájt, egy helyett, mint volt a korai nyelvtanulás C vagy Pascal. Ez különböző osztályok használják különböző típusú I / O stream. Olvasó / író - olvasó / karakterek bevitelére. InputStream / OutputStream - olvasási / írási bájt.
A mi esetünkben, kiírjuk a szövegben, ezért beszerzése író. Ez az osztály lehetővé teszi számunkra, hogy írjon a legtöbb normális HTML szöveget is. Amit mi csinálunk. Építeni a servlet nem lesz JDK standard könyvtár - meg kell csatlakoztatni további könyvtárakra. És egy ilyen könyvtár a boldogság a kínálat Tomcat - nézd meg a könyvtárban \ Common \ lib. Ez servlet-api.jar. Nézzük csatlakoztassa a futószalagról. Csak másolja a szükséges JAR abba a könyvtárba, a projektben. A sorban a szerelvény a következő lesz:

Így a servlet összeszerelt, készen áll a telepítésre. A telepítéshez kell tennünk számos intézkedést.

Úgy néz ki, elég egyszerű:

Néhány pontot meg kell említeni:

  1. Web-alkalmazás tag a gyökér tag. Ez tartalmazhat további attribútumokat, de jelenleg nincs szükség. Minden ostalyne címkék benne.
  2. Tag servlet körülveszi a címkéket, amelyek leírják servlet. Tag servlet-name belül néhány név - segítségével mi tetszik a legjobban. Tag servlet-osztály tartalmaznia kell a tényleges nevét az osztály. Esetünkben tesszük osztály students.web csomagot, és a teljes nevét az osztály students.web.HelloWorldServlet.
  3. Tag servlet-mapping. Itt határozzuk meg az URL-t, amely figyelmezteti a felhasználót az adatok lekéréséhez a mi servlet. Pontosabban a következőképpen fogalmazott: mi határozza meg a servlet feldolgozza a megadott URL-t.

Tag servlet-name egy név, amit 2. szakaszában meghatározott (van is egy servlet-name tag), és url-pattern címke egy URL-t.
A web.xml fájl kell elhelyezni a könyvtárban \ Webapps \ studentsApp \ WEB-INF \. Azaz, a teljes elérési útját a fájl így néz ki:

Most fussunk Tomcat és próbálja meg választ kapni servlet. Így kezdődik Tomcat és a böngésző sor tárcsa:

Az adatbázis

Annak érdekében, hogy elkezdi használni az összes adatbázisunkban, meg kell - hozzon létre egy másik könyvtárba, és másolja a JAR munkánk az adatbázis - mysql-connector-java-3.1.13-bin.jar. könyvtár \ Webapps \ studetnsApp \ WEB-INF \ lib

Ennek megfelelően a teljes elérési útját a fájl lesz: \ Webapps \ studetnsApp \ WEB-INF \ lib \ mysql-csatlakozó-java-3.1.13-bin.jar

És persze megváltoztatjuk a servlet érdekében gyűjtik az adatokat az adatbázisból. Az új kód a servlet lesz valamivel bonyolultabb.

Üdvözöljük a Tomcat

Üdvözöljük a Tomcat

Köszönjük cikksorozatot nagyon hasznos.
Csak egy probléma, amivel - Nem tudom elérni helyes megjelenítéséhez cirill a böngészőben.
Magyar szöveg ily módon kapott: ............
Azt hittem, hogy a probléma tomkate 8. készlet 6, de a probléma nem múlik el.
Lehet, hogy a probléma merül fel a fordítás során (használja az ötlet 14).
Általában azt, hogy jobban megértsük.

Úgy tűnik, a probléma jdk 1.8, az összeállítás cmd meghozta a következő:
feltérképezhetetlen karaktert kódolás UTF-8
minden orosz írni.
Megpróbálom telepíteni egy régebbi verzió zhdk

Kísérlet összeállításához adott semmi 6. zhdk, a hiba ugyanaz.
A HETE megoldást a problémára nem található.
Talán a probléma a kódolás OP, szinte nincs ötleteket.
Közel vagyok a szerzés elszakadás a cirill most.
Igazán sajnálom 2 nap, megölték a problémát.

Tehát mi az a kód. Töltse minta vagy valami más?

Igen, és a saját, és töltse le a mintát Campiglio szintén nem helyes.
Már kitaláltam. Először én nyitotta meg a * .java fájlt a Jegyzettömb, mentse el a UTF-8 formátumban, majd nyissuk meg a Notepad ++ és újra láttam egy doodle)). Javítva a szöveget újra notpade és mentse a fájlt. Aztán lefordítottam hiba nélkül a konzolon keresztül.
Aztán Idea hoztam létre egy új projektet, és megváltozott minden kódolást UTF-8 (alapértelmezett voltak windows-1251), majd minden rendben volt Campiglio az ötlet.
kódoló módosításokat meglévő projekt nem segít, hogy én eredetileg próbált. Mert vétkeztem az tomkat, majd zhdk, hogy mindig van valami.
De aztán megint, furcsa, hogy a letöltött fájlt, és így ugyanaz a hiba összeállítása során, nem láttam, hogy még itt valaki volt ilyen probléma.
Ne aggódj, örülök, én tettem fix, mint az AS Puskin, a tapasztalat - a fia hibák nehéz))

A fordításhoz a parancssorból szükséges egy kiegészítő gombot -encoding - egyébként egy UTF-8 a parancssorból a magyar betűket nem lehet összeállítani.

Igen, persze, Campiglio egy gombot, és kapott feltérképezhetetlen karakter kódolására utf-8
minden orosz írni.

Hiba hasonló a hiba Alex (Alex magyar csak szimbólumok jelennek meg a gyémánt a kérdést, én csak megjelenik kérdések (különböző szakaszaiban hiba)).
Általában én találtam hibát, de nem értem, mi ez.
A hiba ebben a sorban:
response.setContentType ( «text / html, charset = utf-8" ); - hibás vonal
response.setContentType ( «text / html; charset = utf-8" ); - Vezetékes

Nem tudom miért, de ezek a látszólag két azonos vonalon másképp működik. Először magam is egy jegyzettömb UTF-8, a második másolt itt. Miért nem az én munkám - és nem értettem.

Jobb, ha nem használja setContentType és setCharacterEncoding.
Az első esetben állapít meg közös típusú információt vissza - ebben az esetben a HTML UTF-8. Minden listázott elválasztva.
A második esetben, akkor csak használ a «utf-8" . Ez azt jelzi, hogy az állásidő UTF-8 kódolást.

Azt hozzátenném, hogy volt egy probléma azzal a ténnyel, hogy a megfelelő módosítások egy fájlba java összeállított osztály, megdöntötték a megfelelő mappát Tomcat, az ingerlés az url, de nem volt változás.
Úgy döntött, hogy az újraindult Tomcat a szolgáltatásokat. Ő látott valamit a króm vagy hash ugyanazon foglalkozik.

Elkepesztő amikor átültetett a desktop fejlesztés ... tulajdonképpen én csodálkoztam, hogy még mindig működik. tyscha konfigurációk, fogalmak. hogyan debug, ha nem indul el, nem világos, a hivatalos dokumentáció az egész könyvtárat. ez még mindig csak egy példa, van egy egész sötét, mindenféle Maven, borostyán, keretek - mindegyik a maga logikája, stb stb ..., hogy a termelés nem dozhivosh, ha nulláról indul.
kezét mindezt vizsgálatban, amikor tudja képzelni a hangerőt. Nem tudom elképzelni, hogy mindez a vizsgált egyetemeken.

Köszönöm a cikket!
Sajnos, a legnagyobb a kereslet az ipar közötti programozási időszakra vonatkozóan az aktuális napon. = (

Köszönöm a kedves szavakat. Ez a munka - mindenféle eszközöket. Ezért szeretnék legalább ad erőiket megérteni, hogy meg kell nézni (és melyik oldalon), és nem szükséges vagy nem szükséges.

Köszönöm a cikket minden történt az első alkalommal.
A probléma az volt, hogy ő a Maven projekt ugrott függőség, Mauger aki tud segíteni. Meg kell adnia az alábbi kódot a pom.xml.

org.apache.tomcat
tomcat-servlet-api
8.5.3