JavaRush /Java Blog /Random-TK /Patosyz. Java EE, servletler we olaryň gaplary barada gür...
eGarmin
Dereje

Patosyz. Java EE, servletler we olaryň gaplary barada gürleşeliň

Toparda çap edildi
Bu mowzukda, servletlere düşünişim, servlet konteýnerleriniň nämedigi, web sahypasynyň çarçuwalarynyň nämedigi, aç-açan gürleşmek isleýärin, şeýle hem servlet konteýnerleriniň we amaly serwerleriň nähili baglanyşygy barada mowzuk açasym gelýär. biri-biri we servlet we web serwer konteýnerleri. Patosyz.  Java EE, servletler we gaplar hakda gürleşeliň - 1Söhbetdeşlige başlamazdan ozal, diskussiýanyň boljakdygyna garaşýandygymy belläsim gelýär, sebäbi ... Bu ýerde ýekeje kod bermek islämok, diňe söz bilen aýdyp boljak manysyna degmek isleýärin. Ilki başlanymda maňa düşnüksiz bolan şol nokatlaryň hemmesini görkezmäge synanyşaryn. WebSphere ýa-da Geronimo, Tomcat servlet konteýneriniň haýsydyr bir programma serwerinden tapawudy barada dürli forumlarda sorag berenimde, jogap bermäge het eden ýeke-täk adamlar “Wikipediýa seret” ýa-da “başga bir zat aýdyp bilmeýän asşollardy. serwer programmalaryny aýtmak kyn - bu korporatiw programmalar üçin çylşyrymly infrastruktura, bu ... "bla bla bla. Men beýle adamlara çydap bilemok we köpüňizem beýle däl öýdýän. Taryhy adalatsyzlygy düzederis. Bar ...

Hyzmatkärler

Hiç kim näme diýse-de, servlet Java-da ýazylan web sahypasydyr. Käbirleri ýalňyşýaryn we servlet web programmasy we bu düşünjelerde tapawut bar diýer, ýöne beýle däl. Indi hiç hili tapawut ýok, PHP-de ýazylan saýtlary web programmalary diýip hem atlandyryp bolar. Indi bu düýbünden tebigy, sebäbi ... php OOP-ny doly goldaýar we Joomla ýaly CMS-ler muny işjeň ulanýarlar. Kod derejesinde servlet näme? Bu, uklaýan we GET ýa-da POST HTTP haýyşlary arkaly kimdir biriniň olara girip-girmeýändigini görýän birnäçe usuly bar. Bular. Brauzerde käbir GET haýyşyny ýazdyk, servlet synpynyň degişli usuly ony kabul edýär we HTML sahypasy görnüşinde oňa jogap berýär. Hyzmatyň nusgawy manysynda, Gün tarapyndan göz öňüne getirilişi ýaly, bu sahypa <! DOCTYPE htm >> setirinden başlap we </html> setiri bilen gutarýan müşderi hataryna iberildi. Şonuň üçin Java-da esasy servlet synpy bar Servlet. Mundan başga-da, bu esasy synpdan miras galan we şeýlelik bilen işleýşini giňeldýän bir topar beýleki synplar bar. Serwet näme - başga zat däl. Bu diňe PHP kodunyň Java analogy, serwerde hem ýerine ýetirilýär we web brauzeriniň web sahypasy görnüşindäki haýyşyna jogap diňe müşderä iberilýär. Hemmesi.

Web öňdäki çarçuwalar

Subtitr çylşyrymly we köplenç diňe öň hatar çarçuwany ýa-da hatda web agzyny ýazýarlar , ýöne bu ýerde öňdäki çarçuwalar barada aýdanymyzda, web brauzeri arkaly Java bilen işlemek üçin GUI hakda gürleşýändigimizi bellemek isledim. Bular. bu ýerde ýene Java-daky web sahypalary hakda gürleşýäris. servletler hakda. Öňdäki çarçuwaly diýen ýaly näme, mysal üçin Apache Struts. Diňe esasy synpy giňeldýän synplar toplumy Servlet. Başga hiç zat. Bular. şol bir yzygiderli servlet döretmegiň başga usuly. Diňe şu çarçuwany döredijiler (ýa-da başgaça aýdylanda, bu tehnologiýany döredijiler) esasy synpyň Servletkäbir usullar bilen goşulmagy, programmist üçin Gün / Oracle-dan nusgawy hyzmat edişiň az işlemeginden has amatly bolar diýip hasaplaýarlar. bar.

JSP sahypalary

Derrew diýen ýaly Java servlet düşünjesini döredijileriň kellesine başga bir pikir geldi. Müşderi html sahypasyny ibermekden ybarat bir servlet ýazýandygymyz sebäpli, bu html sahypasyny derrew ýazmak has dogry bolup biler we Java-da haýsydyr bir logika gerek bolsa, göni goýuň html Has düşnükli bolmasa, jümle kömek edip biler: jsp sahypasy php sahypasynyň meňzeşidir. Kynmy? Soň ýene düşündirerin. PHP-de sahypa ýazanymyzda näme edýäris? Statik html bar, PHP-de aýlawlar we şertler ýaly islendik logika girizmeli bolanymyzda, ony belligiň göwresine salýarys <?php … ?>. Jsp bilen hemme zat birmeňzeş, diňe logika arassa Java-da ýazylýar, kody belligiň korpusyna girizilýär <% … %>. Servlet düşünjesine ýene bir gezek gaýdyp geleliň. Aslynda, JSP sahypasy servlet, ýöne birneme başgaça ýazylýar. Adaty bir hyzmatda, käbir logikany ýerine ýetirýän we netijelerine esaslanyp, müşderi üçin HTML sahypasyny döredýän usul ýazýarys. Birneme wagt geçensoň, hyzmat ediji döredijiler pikirlenip başladylar: bu usulda logika ýok bolsa we diňe html sahypasynyň emele gelmegi diýen ýaly bolsa, derrew html sahypasyny ýazmak aňsat bolmazmy? iň az Java goýmak haýsy? Jsp sahypalary hakda iň soňky zat. Ilkinji gezek şunuň ýaly sahypa girensoň, servletde düzülýär we soňra ýerine ýetirilýär. Bu jsp sahypasyna indiki haýyşlar has çalt bolar, sebäbi eýýäm düzüler we diňe ýerine ýetirilmeli bolar.

Servlet gap

Şonuň üçin servlet synpyny ýa-da JSP sahypasyny ýazdyk. Indiki näme? Ulanyjynyň web brauzerine iberip biler ýaly, olary web serwerine nädip iteklemeli? Web serweri diňe html iberip biler, eger sahypamyzda php kody bar bolsa, web serweri ilki bilen php-ni html-e terjime edýän terjimeçiniň üsti bilen geçýär we diňe netijesi müşderä iberilýär. Servletler bilen bir zat bolup geçýär - ibermezden ozal, HTML sahypasynyň döredilmegi üçin ýerine ýetirilmeli we servlet konteýner servletleriň we jsp sahypa kodunyň ýerine ýetirilmegi üçin jogapkär zat. Bular. Java üçin servlet konteýner, web serwerindäki php terjimeçi modulynyň meňzeşidir. Şeýlelik bilen, ulanyjy web brauzerine bir adrese girende, haýyş web serwerine iberilýär, web serweri serwletiň soralýandygyna düşünýär we haýyşy servlet konteýnerine geçirýär. Ondan soň, servlet konteýner servleti ýerine ýetirýär, netijede HTML sahypasyny web serwerine iberýär, bu bolsa öz gezeginde müşderä gaýtarylýar. Serwet konteýner özbaşdak işläp bilermi? web serwersiz? Tomkat ýaly bir zat hökman edip biler. Serwletlere esaslanýan sahypalardan başga hiç hili html sahypasy bolmadyk sahypa döretmek islesek, hyzmat ediş konteýni biziň üçin ýeterlikdir. Servöne serwletlerden bir sahypany birleşdirmek we PHP sahypalary diýmek islesek, web serwerini gurmaly bolarys. Mundan başga-da, ähli web serwerlerinde deslapky görnüşde hyzmat ediş konteýni ýok, ýöne hemmesi diýen ýaly ony plugin hökmünde gurmaga mümkinçilik berýär. Şol sebäpden, Apache-iň işleýän ýeri bolan internetdäki käbir hostingde web sahypamyzy açmak islesek, hyzmat ediji konteýneriň birikdirilendigini üpjün edijiden soramaly bolarys.

Java EE

JavaSE (Java Standard Edition) diýilýän zat bar. Bu düşünje, ähli synplary öz içine alýar java, ulanmak üçin diňe import etmeli (mysal üçin java.util.Date) ýa-da muny etmeli däl (mysal üçin, Stringbukjada ýerleşýändigi üçin java.lang). Java EE (Java Enterprise Edition) bar. Bu synplar “Sun / Oracle” -a hem degişlidir, ýöne ýeke-täk tapawudy, taslamada ulanyp başlamak has kyn. Simpleönekeý setir import…ýeterlik bolmaz, sebäbi ... taslama düzmez. Theagdaýy düzetmek üçin javaee.jar kitaphanasynyň faýlyny tapyp , ony taslama goşmaly bolarsyňyz . Bu ösüş gurşawynda taslama aýratynlyklary arkaly amala aşyrylyp bilner. Bu baglanyşyk prosesi köplenç diýilýär: taslamanyň gurluşyk ýolunda ýa-da synp ýolunda banka lakamyny bellige alyň.

Goýmalar serweri

Indi Java EE ulanýan servlet taslamamyzy düzdük diýip göz öňüne getiriň. Hemme zat ajaýyp, ýöne indi düzülen synplarymyzy serwet konteýnerine ýerleşdirmeli. Etdiler diýeliň. Arzamyz işlärmi? Jogap ýok. Serwete gireniňizde käbir synplaryň tapylmandygyny görkezýän kadadan çykmalar bolar. Näme üçin? Sebäbi düzüjini süýşürip “aldadyk” javaee.jar в classpath. düzüji Java EE-den sapaklaryň ýerinde bolandygyny we köşeşendigini gördi, ýöne servlet konteýner bu synplary görmeýär, ýöne serwletimizden olara baglanyşyk görýär. Serwet konteýnerinde bu ýagdaýy çözüp bolarmy? Elbetde hawa, diňe javaee.jar kitaphanasynyň faýlyny servlet konteýnerindäki servletimiz bilen bukja goşmaly . Indi şeýle taslamalaryň köp boljakdygyny göz öňüne getiriň we olaryň hemmesi bir Tomcat servlet konteýnerinde işleýär. Bu, bu banka faýlyny her servletiň bukjasyna göçürmeli bolarsyňyz. Bu amatsyz we nädogry. Fileagdaý, bu faýlyň köpden bäri bir nusgada bolan programma serweri düşünjesini girizmek arkaly çözüldi we ähli hyzmatçylar oňa girip bilerler we öz nusgasy bolmaz. Meniň pikirimçe, bu örän amatly we mantykly. Elbetde, bulaşyklygyň hemmesi bir banka faýly sebäpli däl (mysal hökmünde berdim) - şeýle faýllar kän. Emma bu programma serwerleriniň bize berýän zatlarynyň hemmesi däl. Programma serwerleriniň özleri köp çeşme, mysal üçin maglumat bazasy bilen baglanyşyk saklap bilerler. Bu ýagdaýda serwletimiz beýle baglanyşygy açyp bilmez, ýöne programma serwerinden alyp biler. Serwet gapda bu mümkin däl, sebäbi ... konteýner, belli bir derejede, ýykylan programma serweridir. Konteýnerde servlet elmydama maglumat bazasynyň özüne birikmeler döretmeli. Şuňa meňzeş bir zat ... uruş-arhiw Uruş arhiwi näme? WAR web arhiwidir. Aslynda, islendik banka ýaly diňe zip faýly. Esasan, bu köp web sahypalaryndan, jsp sahypalaryndan we servlet synplaryndan ybarat web sahypamyzy bir poçta faýlyna salmagyň diňe bir usulydyr. web.xml web.xml ýaýbaňlandyryjy diýilýär. Bu, haýsy web brauzeri setiriniň haýsy servlet synpyna gaýtadan işlemek üçin iberilmegini haýyş edýändigini samsyklyk bilen suratlandyrýan faýl, hyzmat ediş konteýneriniň bulaşmazlygy üçin, haýsy servletiň näme üçin jogapkärdigini görkezýär. Umuman aýdanyňda, Java-da her dürli xml faýllarynda sazlamalary suratlandyrmak gaty moda, ýöne soňky döwürde bu däpden daşlaşmak tendensiýasy ýüze çykdy. Nädip soraýarsyňyz? We düşündirişler arkaly. Annotasiýa synplarynyň özleri hiç zat edenoklar, diňe dürli xml faýlynda däl-de, göni kodda her dürli sazlamalary (meta-maglumatlar) beýan etmek üçin döredildi. Örän rahat. Şeýle-de bolsa, indi belli bir aralyk etap bar, käbir sazlamalar düşündirişler, käbirleri xml bilen kesgitlenýär we bu bulaşyk bolup biler, sebäbi Xml-e seredýärsiňiz we bir sazlamany görýärsiňiz, ýöne düşündirişlere görä başga bir zat bar. Haýsynyň iň ýokary ähmiýeti bar? Kim bilýär…

Netije

Muny ýazanymdan soň, şeýle çalt gözden geçirmek hiç kime kömek etmez diýip pikir etdim, sebäbi ... aýratynlyklaryny we mysallaryny öz içine almaýar, ýöne beýleki tarapdan, ýazylanlary pozmaň, goý, goý.
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION