Java Servlet vodnik za začetnike

Java Servlet je program na strežniški strani, napisan v istem programskem jeziku, ki sprejema signale strank in pošilja nazaj odgovore. To je ključni element, ki generira tipično Java EE, razen JSP, EJB, XML in drugih sorodnih tehnologij. Aplikacijo lahko zapakirate v datoteko WAR (Web AR chive) za razmestitev na spletnem strežniku. Strežnik, ki lahko zažene strežniški programček Java, se imenuje vsebnik. Program, ki se izvaja na takšnem strežniku, lahko ustvari dinamične spletne strani.

Java Servlet: Osnove

Najbolj znani in široko uporabljeni zabojniki Tomcat in JBoss. Tehnično je servlet normalni razred Java, ki ima razširitev za splošni protokol odjemalec-strežnik ali HTTP. V praksi se uporablja za obravnavo zahtev prek ponovne opredelitve GET in POST HttpServlet. Vsebnik Java Servlet zagotavlja Http.ServletRequest in Http.ServletResponse - objekt poizvedbe /odgovora, ki se običajno uporablja v povezavi z JSP za ustvarjanje dinamične vsebine.


Tipični model skripta:
  • JSP uporabniku zagotavlja obrazec za vnos podatkov.
  • Servlet prejema vhodne podatke, jih obdeluje in pošlje odgovor.
  • Za kakovostno delo uporablja posebne filtre
  • . Komponente Java, ki se uporabljajo za prestrezanje in obdelavo poizvedb, preden jih pošljejo na strežniške programčke in idpovidi po njegovem kodo, in pred posodo pošlje odgovor na stranko Skupne naloge izvajajo s filtri:.
  • Registriranje parametrov poizvedb za registracijo datotek.
  • Preverjanje pristnosti in avtorizacija zahtev po virih.
  • Pred pošiljanjem na strežniški programček obliko poizvedbe ali glave formatirajte.
  • Stiskanje odzivnih podatkov, poslanih stranki.
  • Sprememba odgovora, dodajanje nekaterih piškotkov.
  • Informacije o glavi strežnika Java.
  • Filtri so povezani in konfigurirani v datoteki deskriptorjev uvajanja (web.xml). Strežniki in filtri se ne poznajo, tako da lahko dodate ali odstranite filter tako, da preprosto uredite web.xml. Dovoljeno je imeti več filtrov za en vir ali ustvariti filtrirno verigo za web.xml ali zagnati filtre Java Servlet z izvajanjem vmesnika javax.servlet.Filter.


    Glavne funkcije Servlet

    Zahteve za vzporedne strežnike so pretočne, kar zagotavlja pomembno spletno večnitno obdelavo in vzporednost. Glavne značilnosti:
  • Prenosljivost. Ker je Java neodvisna od platforme, enako velja za strežniške programe. Na primer, ustvarite ga lahko v operacijskem sistemu Windows, tako da ga razvijalci GlassFish uporabljajo kot spletni strežnik, nato pa ga lahko zaženejo na katerem koli drugem OS, kot je na primer Unix, Linux in spletni strežnik apache Java Servlet. Zaradi te funkcije je prenosna in to je njena glavna prednost pred CGI.
  • Učinkovitost in razširljivost. Ko je Servlet razporejen in prenesen na strežnik, lahko takoj začne izvajati zahteve odjemalcev. Kliče ga svetlobni tok, tako da lahko več funkcij hkrati zapolni več zahtev strankvečnitnost Java. Za razliko od CGI, kjer strežnik sproži nov proces za vsako zahtevo odjemalca.
  • Zanesljivost. Z upoštevanjem vrhunskih funkcij Java, kot so zbiranje smeti, ravnanje z izjemami, skrbnik za varnost Java in drugi, je manj podvržen težavam pri upravljanju in puščanju pomnilnika. Zaradi tega je razvoj aplikacije varna in brez napak.
  • Potreba po uporabi dinamičnih spletnih strani

    Obstaja veliko razlogov, zakaj bi podjetje želelo ustvariti dinamične spletne strani "on-the-fly", na primer, kadar se podatki na spletni strani pogosto spreminjajo. Spletne strani za novice in vremenske razmere se običajno zanašajo na CGI, da ohranijo sveže vsebine, ki ne zahtevajo stalne pozornosti razvijalcev. Spletne strani za e-trgovino, ki navajajo trenutne cene in ravni zalog, uporabljajo CGI za prejemanje vsebin na zahtevo, ki jih dobijo iz notranje infrastrukture podjetja.
    Mnogi uporabniki imajo izkušnje z uporabo tehnologije Java za ustvarjanje spletnih storitev, ki temeljijo na CGI, vendar so servoti Java učinkovitejši, zmogljivejši, enostavnejši za uporabo in cenejši od tradicionalnih alternativ CGI. Prednosti Java servletov:
  • Učinkovitost. V tradicionalnem CGI-ju vsaka zahteva HTTP zažene nov proces CGI. Tudi če se njegova koda popolnoma izvaja, je pogosto precejšnja količina režijskih stroškov, ne samo ob začetku postopka, ampak tudi med njegovim izvajanjem. Kadar se uporabljajo strežniški programčki, JVM ostane naložen v pomnilniku in vsaka zahteva obdeluje tok Java. Kot primer storitve Servlet Java, če v tradicionalnem modelu CGI obstaja več sočasnih poizvedb X, to pomeni, dada je koda za program naložena v pomnilnik X-krat. Postane preobremenitev na spletnem strežniku. Vendar pa v okolju strežniškega programčka obstajajo tokovi X, kjer se zažene samo en izvod razreda. Rezultat je povečana učinkovitost in razširljivost na več platformah.
  • Priročnost. Pri uporabi programa ni smiselno učiti novega jezika, na primer Perl, samo za izvajanje funkcij CGI. Poleg tega imajo strežniški programčki veliko infrastrukturo za mnoge naloge HTML, kar močno pospeši razvojni proces.
  • Moč - na žalost tradicionalni skripti CGI dopuščajo še veliko želje. Na primer, njihovi običajni programi ne morejo govoriti neposredno s spletnimi strežniki, kar pomeni, da morate ustvariti celoten vmesnik. Servleti lahko neposredno komunicirajo s spletnimi strežniki s poenostavitvijo operacij, ki zahtevajo neposreden dostop do podatkovnih skladišč. Prav tako so unikatne, saj lahko izmenjujejo podatke z drugimi strežniki in vzdržujejo informacije med zahtevami, zaradi česar je sledenje sej zelo enostavno.
  • Javova prenosljivost sega neposredno do strežnih programčkov. Pravzaprav skoraj vsak večji spletni strežnik, ki je trenutno v uporabi, podpira strežnike Java neposredno ali prek modula.
  • Ekonomija. Z vidika razvoja je implementacija servletov veliko cenejša od drugih možnosti, ki zahtevajo, da uporabniško definirana kodiranja pravilno delujejo s spletnimi strežniki. Java Servlet preusmeritev je pripravljena za delo in lahko zmanjša stroške poslovanja brez žrtvovanja prednosti dinamičnegavsebine.
  • Ustvarjanje strukture imenika

    Za začetek ustvarite naslednjo strukturo imenika.
    Kje v mapi:
  • Deploy - postavite ustvarjeno datoteko.
  • Src - Postavite izvorne datoteke paketa Java net.codejava.servlet.
  • WebContent - Shranite JSP strani in druge spletne vire.
  • WebContent WEB-INF - nameščen je deskriptor web.xml.
  • WebContent WEB-INF - Zbrani razredi.
  • Nato ustvarite izvorno datoteko z imenom Java QuickServlet.java v imeniku servc src net codejava z naslednjo kodo.
    Ta servlet kliče več metod iz HttpServlet:
  • init () - bo poklical metodo, ko bo dostopal do prvega odjemalca. Običajno je tu vnesena inicializacijska koda.
  • doGet () - deluje vsakič, ko je zahteva HTTP GET.
  • Servlet uvaja dva elementa:
  • HttpServletRequest - Objekt prekrije vse glave zahtevkov HTTP, da pridobijo nadzor nad parametri GET /POST, kot tudi druge glave HTTP, ki jih odjemalci pošiljajo preko metod getParameter () in getHeader () ).
  • ​​
  • HttpServletResponse - uporablja se za odzivanje na zahtevo HTTP, opravi konfiguracijo naslova odgovorov in pošlje nazaj vsebino HTML uporabniku. Metoda doGet () pošlje preprosto HTML-kodo, ki prenaša sporočilo, na primer "Pozdravljeni, jaz sem Java Servlet!".
  • Metoda za izvajanje zahtev strank:

  • DoPost () - kliče ob času, ko uporabnik zahteva HTTP POST.
  • DoGet () - razume Http.ServletRequest in Http.ServletResponse kot argumente. V tem primeru se vrednosti dveh parametrov širine in višine pravokotnika dobijo iz poizvedbe za izračun območja in pošljejorezultat vrne stranki.
  • Destroy () - Vsebnik ga bo poklical, ko bo moral izbrisati zaustavitev Java ee Servlet.
  • Pisanje strani JSP

    Ustvarite datoteko z imenom index.jsp v imeniku WebContent z naslednjo vsebino.
    Na tej strani JSP:
  • postavite hiperpovezavo s atributom href = Quick.Servlet, ki označuje relativno pot servleta in preslikavo URL-ja za to.
  • S klikom na to povezavo prejmejo zahtevo HTTP GET do strežnika in kliče se metoda doGet ().
  • Za prikaz pošiljanja HTTP zahteve ustvarijo preprost obrazec z dvema besedilnima poljima: širino in višino.
  • Atribut oblike v dejanju je nastavljen na relativno pot.
  • Gumb "Pošlji" se imenuje "Izračunaj".
  • Stran JSP bo videti takole.

    Obvestila in nastavitve spletnega strežnika Java

    Da bi strežniški programček lahko uporabljal uporabniške poizvedbe, morate deklarirati in konfigurirati njegovo preslikavo v datoteki spletnih deskriptorjev. Ustvarite datoteko XML s pripono web.xml pod imenom WebContent WEB-INF z naslednjo kodo XML.
    Očitno je, da je strežniški programček deklariran z uporabo elementa in njegovih podrejenih elementov, ki določajo opisno ime zanjo in podajajo polno ime razreda. Konfiguriran je tako, da služi poizvedbam z elementom in njegovimi podrejenimi deli, ki podajajo ime, deklarirano z elementom in vzorec URL-ja, ki bo preslikan v strežnik. Predloga lahko natančno ustreza imeniku.

    Izvajanje zbiranja

    Pred zaključkom zbiranja se prepričajte, danastavite okoljsko spremenljivko PATH, ki vključuje katalog JDK_HOMEbin, tako da lahko dostopate do ukazno vrstico in imajo na voljo datoteko, ki je običajno, ki jih v posodi Servlet. Ko se uporablja Tomkat datoteko postavi v TOMCAT_HOMElib imenuje. Odprite ukazno vrstico operacijskega sistema in spremembo delovnega imenik QuickServlet, kot je navedeno v strukturi. Vnesite naslednji ukaz:. Javac-cp TOMCAT_HOME lib Servlet-api.jar "-d CLASS_DIR SRC_DIR QuickServlet.java Zamenja imena TOMCAT.HOME, CLASS_DIR in vrednost SRC_DIR. TOMCAT_HOME To Nastavitev imenik na vašem računalniku v mapi Če pot vsebuje. vrzeli, je dal takole:.. CLASS_DIR = Webcontent WEB-INF razredov SRC_DIR = src neto codejava servlet Ta ekipa skompylyruet QuickServlet.java datoteko in dajejo ustvarjenih .class Webcontent WEB-INF razrede

    Embalaža spletne aplikacije

    Standardni način, da se uporabi aplikacije Java EE je razširitev njene embalaže vojne. V ukazno vrstico vbrizganega zadetkom vedno konča s točko:
  • jarcfvdeployQuickServletApp.war -C Webcontent.
  • Jar bo potekala vse v enem imeniku v zip-arhiv format ti Quick.ServletApp.war po imeniku. Zdaj uvajanje Quick.ServletApp.war datoteke na strežniku, jo kopirajte na Tomcat. Zaženite program z vožnjo imenik Tomcat 7.exe. Po prijavi v konzolo kaže, da Quick.ServletApp.war razširili datotečni strežnik in posluša na številko vrat 8080.

    Testiranje QuickServletApp

    Zdaj odprite spletni brskalnik in vnesite naslednje besedilo v naslovni vrstici: http: //Lokalni: 8080 /QuickServletApp. Ker ni natančno določeno stran kot privzeto index.jsp naložen neodvisno. Če želite preveritiServlet, ki zahteva HTTP GET, kliknite hiperpovezavo "Kliknite tukaj, da pošljete zahtevo GET." Za preizkus s HTTP POST zahtevo kliknite gumb brskalnika in vnesite dve številki v širino in višino besedilnih polj. Kliknite gumb "Izračunaj" in vrne rezultat izračunanega območja.

    Primeri Tomcata

    Servlet je komponenta Java, ki jo poganja spletni strežnik in jo upravlja njen vsebnik, na primer Tomcat, ki generira dinamično vsebino kot odziv na zahtevo odjemalca. Motor posode ali servleta je razširitev spletnega strežnika, ki zagotavlja funkcionalnost strežniškega programčka. Vsebnik vsebuje strežnike in jih upravlja skozi ves življenjski cikel. Vmesnik Servlet - osrednja Java API abstrakcija. HttpServlet - najpogostejši strežnik, ki streže HTTP zahteve, je podrazred GenericServlet, ki izvaja vmesnik Servlet. Servletov vmesnik napoveduje te abstraktne metode. Življenjski cikel servleta: voidinit (konfiguriraj Servlet.Config) voiddestroy () zahtevo voidservice Java Servlet zahteva, odgovor Servlet.Response) Konfiguracija in informacije strežnika: servService.Config getServlet.Config () Vrstica getServlet.Info ().

    Funkcije strežnika Java

    JSP je še en učinkovit način za ustvarjanje dinamične spletne vsebine z uporabo Jave. Najlažji način, da razložite razliko med njimi, je prepoznati, da je strežniški programček Java v Javi in ​​JSP v Javi v HTML-ju. Obe metodi sta učinkoviti in ju je mogoče uporabljati samostojno, vendar obstaja več razlik:
  • V splošnem strežniški programčki delujejo hitreje kot JSP, vendar se JSP lahko prevede v Java strežnike.
  • Spletni razvijalec Jave mora poznati obe tehnologiji in kako lahkodopolnjujejo v eni izvedbi.
  • Številne funkcije JSP je mogoče doseči na strani odjemalca z uporabo javascripta. To zmanjšuje obremenitev strežnika v obdobjih maksimalne uporabe in je pogosto metoda, ki jo uporabljajo velika podjetja z nenehno visokim prometom.
  • Čeprav so samostojne aplikacije Java dosegale vrh pred nekaj leti, so dinamične spletne vsebine, ki temeljijo na Javi, še vedno v veliko povpraševanju podjetij po vsem svetu. Če uporabnik trenutno ne uporablja strežnikov Java za ustvarjanje dinamične vsebine, izgubi zanimivo področje z neomejenimi kariernimi možnostmi.

    Sorodne publikacije