Ohjelmointi

Mitä Java-palvelinsovellukset ovat? Pyydä Java-verkkosovellusten käsittelyä

Pyyntöjen käsittely on Java-verkkosovelluskehityksen leipää ja voita. Vastaamaan verkon pyyntöihin Java-verkkosovelluksen on ensin määritettävä, mikä koodi vastaa pyynnön URL-osoitteeseen, ja sitten vastauksen. Jokaisella tekniikkapinolla on tapa toteuttaa pyyntöjen ja vastausten käsittely. Javassa käytämme servletit (ja Java Servlet -sovellusliittymä) tähän tarkoitukseen. Ajattele servletiä pienenä palvelimena, jonka tehtävänä on hyväksyä pyyntöjä ja antaa vastauksia.

URL vs. päätepiste

Internet-käyttäjänä tunnet URL-osoitteet verkkosivustosi osoitteena selaimessasi. Kehittäjänä saatat myös tietää URL-osoitteet verkkopalvelujen päätepisteinä. A URL (yhtenäinen resurssien paikannin) on tavallinen tapa kuvata ja paikantaa Internet-resursseja tekstin avulla. Termi päätepiste viittaa URL-osoitteeseen, joka merkitsee verkkopalvelua. Ehdot päätepiste ja URL käytetään usein keskenään, vaikka ne viittaavatkin eri käyttöalueisiin.

Ohjelmisto kerroksina

Kuten selitin johdannossa Java Runtime Environment -ympäristöön, voimme tarkastella ohjelmistoja sarjana kerroksia. Jokaisella ohjelmistojärjestelmän kerroksella on tiettyjä ominaisuuksia, joita sen yläpuolella olevat kerrokset edellyttävät. Esimerkiksi laitteistokerros on laiteohjelmistokerroksen alapuolella ja tukee sen toiminnallisuutta. Samoin laiteohjelmistokerros (BIOS PC: llä tai EFI Mac: llä) tarvitaan käyttöjärjestelmän ajamiseksi. Kuvassa 1 on esitetty nämä kolme komponenttia kerrostetussa kaaviossa.

Matthew Tyson

Voit myös tarkastella ohjelmistojärjestelmää sarjana astiat, jossa alemmat kerrokset toimivat korkeampien säiliöinä. Jokainen kerros toimii a yhteydessä seuraavan toiminnallisuuden suorittamiseksi: laitteisto sisältää laiteohjelmiston ja laiteohjelmisto sisältää käyttöjärjestelmän.

Palvelinpuolen Java

A palvelinpuolen Java sovellus on yksi laajasta sovellusluokasta, joka toimii verkon päätepisteinä, joka vastaanottaa HTTP-pyyntöjä annetulta URL-osoitteelta ja lähettää tietoja takaisin vaihtomuodossa, kuten HMTL tai JSON. Palvelinpuolen Java koostuu sekä standardoiduista Java-palvelimista että teknologioista vuorovaikutuksessa näiden palvelinten kanssa. Java Servlet -sovellusliittymä on standardi, jota käytetään vuorovaikutuksessa Java-palvelimen kanssa.

Java-palvelimet ja JVM

Java-pohjaisissa järjestelmissä käyttöjärjestelmä (JOS) sisältää JVM: n, joka tarjoaa yhtenäisen ympäristön Java-sovellusten ajamiselle. Java-palvelin istuu JVM: n päällä. Aivan kuten JVM on välittäjä käyttöjärjestelmän ja Java-sovelluksesi välillä, Java-palvelin tarjoaa yhdenmukaisen ja sujuvan pääsyn käyttöjärjestelmän verkko- ja käsittelyominaisuuksiin. Palvelimen sisällä toimii Java-sovellus, joka käyttää palvelimen ominaisuuksia Java Servlet -sovellusliittymän avulla.

Kuvassa 2 on palvelinpuolen Java-ohjelmistopino.

Matthew Tyson

Java Servlet -määritys

Java Servlet -määritys tarjoaa Java-palvelimen ja siihen liittyvien komponenttien taustalla olevan määritelmän. Se määrittää, kuinka palvelin lähettää pyyntöjä ja vastauksia verkon vuorovaikutuksen aikana HTTP: n kautta. Kaikkien Java-palvelinten on oltava yhteensopivia Java Servlet -määrityksen kanssa. Useimmat Java-palvelimet ovat nykyään yhteensopivia Servlet 4.0: n kanssa.

Servlet 4.0

Jokainen Java Servlet -määrityksen versio tuo uusia ominaisuuksia. Servlet 4.0 sisältää tuen HTTP / 2-protokollalle ja sen palvelimen työntömekanismille. Palvelinpysäytys mahdollistaa palvelimen ladata verkkosivun edellyttämiä resursseja ennalta kuin odottaa tiettyä pyyntöä. Servlet 4.0 -ominaisuus sisältää myös kyvyn löytää URL-kartoituksia ajon aikana, joka tunnetaan nimellä ajonaikainen löytö.

Eclipse Enterprise for Java

Servlet 4.0 on osa avoimen lähdekoodin EE4J (Eclipse Enterprise for Java) -aloitetta, joka sisältää ehdotetun korvauksen JCP: lle.

Tarkastele parhaillaan lukemasi artikkeli saadaksesi käytännön käsityksen siitä, kuinka Servlet-määritys toimii. Jossain JavaWorldin infrastruktuurin sydämessä tämä artikkeli muotoiltiin ja lähetettiin julkaistavaksi. Sille annettiin URL-osoite, reititettiin verkon kautta ja se saapui palvelimelle. Palvelin yhdisti artefaktin (artikkelin) URL-osoitteeseen ja päätti, että kun kyseiselle URL-osoitteelle saapui GET-pyyntö, se palaa tähän artikkeliin HTML-muodossa.

Kun luot Java-verkkosovelluksen, luot ohjelmiston, joka toimii Java-palvelimen sisällä. Sovellus käyttää palvelinkontekstin tarjoamia palveluita, ja yksi niistä on Servlet-sovellusliittymä. Tästä syystä Java-palvelinta, joka toteuttaa Servlet-määrityksen, kutsutaan joskus a servlet-pakkaus.

Voit luoda servlet-sovelluksen toteuttamalla Servlet käyttöliittymä ja aseta se servlet-konttiin. Kuva 3 näyttää kuinka sovelluksesi luottaa servletiin.

Matthew Tyson

Servletien kirjoittaminen Tomcatin kanssa

Nyt kun sinulla on käsitteellinen yleiskatsaus, aloitetaan Java-palvelinsovelluksen kirjoittaminen.

Ensimmäinen asia mitä tarvitset on servlet-säilö, joka tunnetaan myös nimellä Java-sovelluspalvelin. Tomcat ja laituri ovat kaksi suosituinta servlet-konttia. Käytämme Tomcatia, koska se on yksi pitkäaikaisimmista Java-sovelluspalvelimista. Tomcat on ilmainen ja sisältää vain vähän kelloja ja pillejä, mikä pitää asiat yksinkertaisina esimerkissämme. ("Kellot ja pillit" on muuten tekninen termi.)

Lataa ja asenna Tomcat

Jos sinulla ei vielä ole Tomcatia, aloita avaamalla Tomcatin lataussivu. Siellä voit valita joko Windows-asennusohjelman tai sopivimman ZIP-latauksen tietokoneellesi (esimerkiksi lataan 64-bittisen Windows-zip-tiedoston).

Siinä se: olet juuri lisännyt Java-palvelinkerroksen käyttöjärjestelmääsi!

Varmista, että Tomcat on käynnissä

Ennen kuin jatkat, varmista, että voit käyttää Tomcatia. Käynnistä joko Windows-palvelu tai suorita startup.sh tai startup.bat tiedosto komentoriviltä.

Jos avaat nyt selaimen ja siirry osoitteeseen paikallinen isäntä: 8080, sinua pitäisi toivottaa seuraava näyttö:

Matthew Tyson

Jos kohtaat ongelmia Tomcatin käytössä, voit etsiä vianetsinnän Tomcatin ohjeista.

Suorita esimerkki Tomcat-palvelinsovelluksesta

Katsotaanpa nyt Java-palvelinsovellusta. Mukavasti Tomcat on sisällyttänyt muutamia yksinkertaisia ​​esimerkkejä.

Klikkaa Esimerkkejä linkki näet Kehittäjän pikaopas -osio Tomcatin tervetulosivulla. Kun olet siellä, napsauta Servlet-esimerkkejä linkki.

Nyt näet yksinkertaisen Servlet-sovelluksen toiminnassa napsauttamalla Hei maailma näytteet Suorittaa linkki. Se tuo selaimesi // localhost: 8080 / esimerkit / servletit / servlet / HelloWorldExample URL, josta näet monivuotisen ohjelmoijan tervehdyksen.

Servlet-sovelluksen lähdekoodin tarkastelu

Napsauta selaimen Takaisin-nuolta ja napsauta sitten lähde linkki HelloWorld-sovellukseen. Lähde näkyy luettelossa 1.

Luettelo 1. Lähdekoodi HelloWorld-esimerkille

 tuo java.io. *; tuo javax.servlet. *; tuo javax.servlet.http. *; public class HelloWorld laajentaa HttpServlet {public void doGet (HttpServletRequest-pyyntö, HttpServletResponse vastaus) heittää IOException, ServletException {response.setContentType ("text / html"); PrintWriter out = vastaus.getWriter (); out.println (""); out.println (""); out.println ("Hei maailma!"); out.println (""); out.println (""); out.println (""); out.println (""); out.println (""); }} 

Tämä hyvin yksinkertainen koodiluettelo sisältää Java-palvelinsovelluksen peruskomponentit. Tarkastellaan sitä askel askeleelta.

Ensimmäinen rivi kutsuu tavallisen Java-tuonnin. Sen jälkeen ohjelma määrittelee uuden luokan, joka laajentaa HttpServlet luokassa. Tämä on kriittistä, koska servletit on pakko toteuttaa Servlet käyttöliittymän ajamiseen servlet-kontin sisällä.

Seuraavaksi Hei maailma luokka määrittelee kutsutun menetelmän doGet (). Tämä on vakiotapa servlet-sovelluksissa: se kehottaa palvelinta reitittämään HTTP GET pyyntöjä tähän menetelmään. Muut HTTP-menetelmät, kuten POST, hoidetaan vastaavasti nimetyillä menetelmillä, kuten doPost.

Huomaa, että doGet () on kaksi parametria: (HttpServletRequest-pyyntö, HttpServletResponse-vastaus). Nämä kaksi objektia edustavat pyyntöä ja vastausta. Ne tarjoavat pääsyn kaikkeen, mitä koodisi tarvitsee pyynnön käsittelemiseksi ja vastauksen antamiseksi. vuonna HelloWorld.doGet servlet-menetelmä, esimerkiksi vastaus objektia käytetään ilmoittamaan palvelimelle, minkä sisältötyypin otsikko annetaan. Tässä tapauksessa se on response.setContentType ("teksti / html");.

Lopuksi ohjelma hankkii vastauksesta Java Writer -objektin response.getWriter (). Kirjailija Sitten käytetään yksinkertaisen HTML-vastauksen luomiseen palataksesi selaimeen.

URL-kartoitus

Listing 1: n rakenne ja koodivirta ovat melko intuitiivisia, mutta on olemassa räikeä laiminlyönti. Mistä palvelin tietää liittävän // localhost: 8080 / esimerkit / servletit / servlet / HelloWorldExample URL-osoite HelloWorld.doGet menetelmä?

Löydät vastauksen tähän mysteeriin sovelluksen metadatasta. Jokainen Java-verkkosovellus sisältää tavallisen metadatatiedoston nimeltä web.xml, joka kertoo palvelimelle, miten URL-osoitteet kartoitetaan palvelinsovelluksiin.

Mitä metadata on?

Metadata on mitä tahansa tietoa, jota käytetään ohjelmiston toiminnan ohjaamiseen itse ohjelmiston ulkopuolelta.

Tomcat-esimerkkisovelluksissa web.xml löytyy osoitteesta \ apache-tomcat-9.0.11 \ webapps \ esimerkit \ WEB-INF \ web.xml. \ WEB-INF \ web.xml on servletien metadatatiedoston vakio sijainti. Jos avaat tämän tiedoston, näet, kuinka palvelin on määritetty.

Lyhennetty web.xml Luettelossa 2 on vain tarvitsemamme tiedot keskusteluun.

Luettelo 2. Lähdekoodi Tomcat HelloWorld -esimerkille

     HelloWorldExample HelloWorldExample HelloWorldExample / servlet / servlet / HelloWorldExample 

Listaus 2 näyttää tyypillisen XML-tiedoston otsikon, joka viittaa Java-verkkosovelluskuvaajan malliin. Tätä seuraa kaksi merkintää: ja.

Kutsu antaa loogisen nimen, HelloWorldExample, HelloWorldExample luokka ja -kenttien kautta.

Kutsu määrittää kyseisen loogisen nimen arvo, mikä yhdistää koodin URL-osoitteeseen.

Huomaa, että kenttä tukee villikortteja erilaisten joustavien URL-kartoitusten käsittelemiseksi.

Muut servlet-ominaisuudet

URL-kartoituksen lisäksi servletit tarjoavat lisäominaisuuksia suodatukselle ja todennukselle. Suodattimet käytetään pyyntöjen käsittelyyn ja todennus käytetään osoittamaan yksinkertaisia ​​käyttäjiä ja rooleja URL-osoitemalleille. JavaServer Pages (JSP) -määritys tukee HTML: n luomista paljon tehokkaammin.

Johtopäätös

Tämä artikkeli on käsitteellinen yleiskatsaus Java-palvelimista, mukaan lukien URL-pyyntöjen ja vastausten käsittely Java-palvelimen sisällä. Näiden palvelinpuolen Java-peruselementtien ymmärtäminen auttaa integroimaan kehittyneempiä käsitteitä, kuten palvelimen työntö ja URL-kartoitusten ajonaikainen löytäminen, jotka ovat uusia Servlet 4.0: ssa.

Tämän tarinan "Mitä ovat Java-palvelinsovellukset? Pyyntöjen käsittely Java-verkkosovelluksille" julkaisi alun perin JavaWorld.

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