Programiranje

Kaj so programčki Java? Upravljanje zahtev za spletne aplikacije Java

Ravnanje z zahtevami je kruh in razvoj razvoja spletnih aplikacij Java. Da bi se odzval na zahteve iz omrežja, mora spletna aplikacija Java najprej določiti, katera koda se bo odzvala na URL zahteve, nato pa označiti odgovor. Vsak tehnološki sklad ima način za izvedbo obravnave zahteve-odziva. V Javi uporabljamo servleti (in API Java Servlet) v ta namen. Servlet si predstavljajte kot majhen strežnik, katerega naloga je sprejemati zahteve in izdajati odgovore.

URL v primerjavi s končno točko

Kot uporabnik interneta poznate URL-je kot naslov spletnega mesta v brskalniku. Kot razvijalec morda tudi URL-je poznate kot končne točke spletnih storitev. A URL (enotni lokator virov) je standardni način za opis in iskanje internetnih virov z uporabo besedila. Izraz končna točka se nanaša na URL, ki označuje spletno storitev. Pogoji končna točka in URL se pogosto uporabljajo medsebojno zamenljivo, čeprav se nanašajo na različna področja uporabe.

Programska oprema kot plasti

Kot sem pojasnil v uvodu v Java Runtime Environment, lahko na programsko opremo gledamo kot na vrsto slojev. Vsak sloj v programskem sistemu ima določene zmožnosti, ki jih zahtevajo sloji nad njim. Kot primer je sloj strojne opreme pod slojem vdelane programske opreme in podpira njegovo funkcionalnost. Prav tako je za zagon operacijskega sistema potrebna plast vdelane programske opreme (BIOS v računalniku ali EFI v Macu). Slika 1 prikazuje te tri komponente v večplastnem diagramu.

Matthew Tyson

Na sistemski program lahko gledate tudi kot na vrsto posode, kjer spodnje plasti delujejo kot posode za višje. Vsaka plast deluje kot a kontekstu za zagon naslednje stopnje funkcionalnosti: strojna oprema vsebuje vdelano programsko opremo, vdelana programska oprema pa operacijski sistem.

Java na strežniški strani

A strežniška Java aplikacija je ena izmed širokega razreda aplikacij, ki služijo kot omrežne končne točke, ki prejemajo zahteve HTTP z določenega URL-ja in pošiljajo podatke nazaj v obliki izmenjave, kot sta HMTL ali JSON. Strežniška Java je sestavljena iz standardiziranih Java strežnikov in tehnologij za interakcijo s temi strežniki. API Java Servlet je standard, ki se uporablja za interakcijo s strežnikom Java.

Java strežniki in JVM

V sistemih, ki temeljijo na Javi, operacijski sistem (OS) vsebuje JVM, ki zagotavlja dosledno okolje za izvajanje aplikacij Java. Strežnik Java je nameščen na vrhu JVM. Tako kot je JVM posrednik med operacijskim sistemom in vašo aplikacijo Java, tudi Java strežnik zagotavlja dosleden, racionaliziran dostop do omrežnih in procesorskih zmogljivosti operacijskega sistema. Aplikacija Java se izvaja znotraj strežnika in za dostop do zmogljivosti strežnika uporablja API Java Servlet.

Slika 2 prikazuje sklad programske opreme za strežniško Javo.

Matthew Tyson

Specifikacija Java Servlet

Specifikacija Java Servlet ponuja osnovno definicijo za strežnik Java in povezane komponente. Določa, kako bo strežnik pošiljal zahteve in odgovore med omrežnimi interakcijami prek HTTP. Vsi strežniki Java morajo biti združljivi s specifikacijo Java Servlet. Večina strežnikov Java je danes združljivih s programom Servlet 4.0.

Servlet 4.0

Vsaka različica specifikacije Java Servlet prinaša nove funkcije. Servlet 4.0 vključuje podporo za protokol HTTP / 2 in mehanizem za potiskanje strežnika. Potiskanje strežnika omogoča strežniku, da vnaprej naloži sredstva, ki jih zahteva spletna stran, namesto da čaka na določeno zahtevo. Specifikacija Servlet 4.0 vključuje tudi možnost odkrivanja preslikav URL-jev med izvajanjem, funkcijo, znano kot odkritje med izvajanjem.

Eclipse Enterprise za Javo

Servlet 4.0 je del odprtokodne pobude EE4J (Eclipse Enterprise for Java), ki vključuje predlagano zamenjavo za JCP.

Za praktično razumevanje delovanja specifikacije Servlet si oglejte članek, ki ga trenutno berete. Ta članek je bil nekje v nedrju infrastrukture JavaWorld oblikovan in odposlan v objavo. Dodeljen mu je bil URL, preusmerjen po omrežju in prispel na strežnik. Strežnik je artefakt (članek) povezal z URL-jem in ugotovil, da bo, ko bo za ta URL prispela zahteva GET, ta članek vrnil kot HTML.

Ko ustvarjate spletno aplikacijo Java, ustvarjate programsko opremo, ki se izvaja znotraj strežnika Java. Aplikacija uporablja pripomočke, ki jih ponuja kontekst strežnika, in eden izmed njih je API strežnika. Zaradi tega se strežnik Java, ki izvaja specifikacijo Servlet, včasih imenuje a posoda za servlet.

Če želite ustvariti strežniški programček, uporabite Servlet in ga namestite v vsebnik strežniškega programčka. Slika 3 prikazuje, kako se vaša aplikacija opira na strežniški programček.

Matthew Tyson

Pisanje programčkov s programom Tomcat

Zdaj, ko imate konceptualni pregled, se lotimo pisanja Java servleta.

Prva stvar, ki jo boste potrebovali, je vsebnik strežniškega programčka, znan tudi kot strežnik aplikacij Java. Tomcat in Jetty sta dve najbolj priljubljeni posodi za servlete. Tomcat bomo uporabili, ker je eden najdaljših aplikacijskih strežnikov za Javo. Tomcat je brezplačen in vsebuje minimalne zvonce in piščalke, kar bo olajšalo stvari v našem primeru. ("Zvonovi in ​​piščalke" je mimogrede tehnični izraz.)

Prenesite in namestite Tomcat

Če še nimate Tomcata, začnite z odpiranjem strani za prenos Tomcata. Tam lahko izberete namestitveni program za Windows ali najprimernejši prenos ZIP-ja za svoj računalnik (na primer prenašam 64-bitni zip za Windows).

To je to: pravkar ste dodali sloj strežnika Java v svoj operacijski sistem!

Preverite, ali se Tomcat izvaja

Preden nadaljujemo, poskrbimo, da boste lahko zagnali Tomcat. Zaženite storitev Windows ali zaženite startup.sh ali startup.bat iz ukazne vrstice.

Če zdaj odprete spletni brskalnik in pojdite na localhost: 8080, pozdravil bi vas naslednji zaslon:

Matthew Tyson

Če naletite na kakršne koli težave pri zagonu programa Tomcat, lahko za odpravljanje težav obiščete dokumentacijo podjetja Tomcat.

Zaženite primer strežnika Tomcat

Zdaj pa si oglejmo programček Java. Udobno je Tomcat vključil nekaj preprostih primerov.

Kliknite na Primeri povezava, ki jo vidite v Hitri začetek za razvijalce odsek strani dobrodošlice Tomcat. Ko ste tam, kliknite Primeri strežnikov povezava.

Zdaj lahko vidite preprost Servlet v akciji s klikom na Pozdravljen, svet vzorci Izvedite povezava. To bo vaš brskalnik pripeljalo do // localhost: 8080 / examples / servlets / servlet / HelloWorldExample URL, kjer boste videli pozdrav trajnega programerja.

Ogled izvorne kode strežniškega programčka

Kliknite puščico Nazaj v brskalniku in nato vir povezava za aplikacijo HelloWorld. Vir je prikazan v seznamu 1.

Seznam 1. Izvorna koda za primer HelloWorld

 uvoz java.io. *; uvoz javax.servlet. *; uvoz javax.servlet.http. *; javni razred HelloWorld razširja HttpServlet {public void doGet (zahteva HttpServletRequest, HttpServletResponse) vrže IOException, ServletException {response.setContentType ("text / html"); PrintWriter out = response.getWriter (); out.println (""); out.println (""); out.println ("Pozdravljen svet!"); out.println (""); out.println (""); out.println (""); out.println (""); out.println (""); }} 

Ta zelo preprost seznam kod vsebuje osnovne komponente Java-strežnika. Razmislimo o korakih.

Prva vrstica pokliče standardni uvoz Java. Po tem program definira nov razred, ki razširja HttpServlet razred. To je ključnega pomena, ker so servleti mora izvajati Servlet vmesnik za zagon znotraj vsebnika strežniškega programčka.

Nato, Pozdravljen, svet razred definira metodo, imenovano doGet (). To je standardna metoda za strežniške programčke: strežniku pove, naj ga usmerja HTTP GET zahteve za to metodo. Druge metode HTTP, na primer POST, obravnavajo podobno imenovane metode, na primer doPost.

Upoštevajte, da to doGet () ima dva parametra: (Zahteva HttpServletRequest, odgovor HttpServletResponse). Ta dva predmeta predstavljata zahtevo in odgovor. Omogočajo dostop do vsega, kar vaša koda potrebuje za obravnavo zahteve in izda odgovor. V HelloWorld.doGet metoda strežnika, na primer metoda odziv objekt se uporablja za obveščanje strežnika, katero vrsto vsebine bo izdal. V tem primeru je response.setContentType ("besedilo / html");.

Na koncu program iz odgovora pridobi objekt Java Writer response.getWriter (). The Pisatelj se nato uporabi za ustvarjanje preprostega odziva HTML za vrnitev v brskalnik.

Preslikava URL-jev

Struktura in tok kode v seznamu 1 sta dokaj intuitivna, vendar obstaja očitna opustitev. Kako strežnik ve, da mora povezati datoteko // localhost: 8080 / examples / servlets / servlet / HelloWorldExample URL do HelloWorld.doGet metoda?

Odgovor na to skrivnost boste našli v metapodatkih aplikacije. Vsaka spletna aplikacija Java vključuje standardno metapodatkovno datoteko, imenovano web.xml, ki strežniku pove, kako preslikati URL-je v servlete.

Kaj so metapodatki?

Metapodatki so vse informacije, ki se uporabljajo za nadzor delovanja programske opreme zunaj same programske opreme.

V primerih Tomcat aplikacij je web.xml najdete na \ apache-tomcat-9.0.11 \ webapps \ examples \ WEB-INF \ web.xml. The \ WEB-INF \ web.xml je običajno mesto metapodatkovne datoteke za programčke. Če odprete to datoteko, boste videli, kako je konfiguriran strežnik.

Okrajšano web.xml na seznamu 2 vsebuje le informacije, ki jih potrebujemo za našo razpravo.

Seznam 2. Izvorna koda za primer Tomcat HelloWorld

     HelloWorldExample HelloWorldExample HelloWorldExample / servleti / servlet / HelloWorldExample 

Seznam 2 prikazuje tipično glavo datoteke XML, ki se nanaša na shemo za deskriptor spletne aplikacije Java. Temu sledita dva vnosa: in.

Klic k dodeli logično ime, HelloWorldExample, do HelloWorldExample razreda prek polj in.

Klic k dodeli to logično ime datoteki vrednost, s čimer se koda poveže z URL-jem.

Upoštevajte, da field podpira nadomestne znake za obdelavo različnih prilagodljivih preslikav URL-jev.

Druge zmožnosti strežniškega programčka

Poleg preslikave URL-jev nudijo programčke dodatne možnosti za filtriranje in preverjanje pristnosti. Filtri se uporabljajo za obdelavo zahtev in preverjanje pristnosti se uporablja za dodelitev preprostih uporabnikov in vlog vzorcem URL-jev. Specifikacija JavaServer Pages (JSP) nudi podporo za generiranje HTML-ja na veliko močnejši način.

Zaključek

Ta članek je konceptualni pregled Java programčkov, vključno z obdelavo zahtev za URL in odzivi v strežniku Java. Razumevanje teh osnovnih elementov Java na strani strežnika vam bo pomagalo vključiti naprednejše koncepte, kot sta potiskanje strežnika in odkrivanje izvajalnega okolja za preslikave URL-jev, ki so novi v Servlet 4.0.

To zgodbo "Kaj so Java servleti? Upravljanje zahtev za spletne programe Java" je prvotno objavil JavaWorld.

$config[zx-auto] not found$config[zx-overlay] not found