Programiranje

Kaj je JSP? Uvod v strani JavaServer

JavaServer Pages (JSP) je standardna tehnologija Java, ki vam omogoča pisanje dinamičnih, podatkovno vodenih strani za vaše spletne aplikacije Java. JSP je zgrajen na vrhu specifikacije Java Servlet. Tehnologiji običajno delujeta skupaj, zlasti v starejših spletnih aplikacijah Java. Z vidika kodiranja je najočitnejša razlika med njimi v tem, da s strežniki napišete kodo Java in nato v to kodo vdelate oznake na strani odjemalca (na primer HTML), medtem ko pri JSP začnete s skriptom ali oznako na strani odjemalca, nato vdelate Oznake JSP za povezavo vaše strani z zaledjem Java.

JSP je tesno povezan tudi z JSF (JavaServer Faces), specifikacijo Java za izdelavo spletnih aplikacij MVC (model-view-controller). JSP je razmeroma preprostejša in starejša tehnologija kot JSF, ki je standard za spletne okvire Java, kot so Eclipse Mojarra, MyFaces in PrimeFaces. Čeprav ni neobičajno videti, da se JSP uporablja kot vmesnik za starejše aplikacije JSF, je Facelets najprimernejša tehnologija pogleda za sodobne izvedbe JSF.

Čeprav JSP morda ni vaša prva izbira za izdelavo dinamičnih spletnih strani, je ključna spletna tehnologija Java. Strani JSP je razmeroma hitro in enostavno zgraditi in brezhibno komunicirajo z Java servleti v vsebniku servlet, kot je Tomcat. JSP boste srečali v starejših spletnih aplikacijah Java in občasno se vam zdi koristen za izdelavo preprostih, dinamičnih spletnih strani Java. Kot razvijalec Java bi morali biti vsaj seznanjeni z JSP.

Ta članek bo hiter uvod v strani JavaServer, vključno s knjižnico standardnih oznak JSP (JSTL). Primeri vam pokažejo, kako napišete preprosto stran HTML, vdelate oznake JSP za povezavo s programčkom Java in zaženete stran v vsebniku strežnika.

Oglejte si prejšnje članke v tej seriji, če želite izvedeti več o Java servletih in JavaServer Faces.

JSP v Džakarti EE

Po izidu Java EE 8 je Oracle preselil skrbništvo nad Java Enterprise Edition (Java EE) v fundacijo Eclipse. V prihodnosti je bila podjetniška platforma Java preimenovana v Jakarta EE. Skupaj s specifikacijami Java Servlet in JSF je JSP ena izmed spletnih tehnologij Java, ki je vključena v stalno podporo in nadgradnje v Džakarti EE.

Pisanje strani JSP

Preprosta stran JSP (.jsp) je sestavljena iz oznak HTML, vdelanih z oznakami JSP. Ko se datoteka obdela na strežniku, se HTML upodobi kot pogled aplikacije, kot spletna stran. Vdelane oznake JSP bodo uporabljene za klicanje kode in podatkov na strani strežnika. Diagram na sliki 1 prikazuje interakcijo med HTML, JSP in strežnikom spletnih aplikacij.

Matthew Tyson

Seznam 1 prikazuje preprosto stran JSP.

Seznam 1. Preprosta stran JSP

$ {2 * 2} naj bo enako 4

V seznamu 1 vidite blok HTML, ki vključuje Izraz JSP, ki je navodilo strežniku Java, napisano z uporabo jezika izražanja (EL). V izrazu "${2 * 2}","${}"je sintaksa JSP za interpolacijo kode v HTML. Ko jo izvede, bo JSP prikazal rezultate izvrševanja vsega, kar je znotraj izraza. V tem primeru bo izhod številka 4.

JSP v vsebniku strežniškega programčka

Strani JSP morajo biti razmeščene znotraj vsebnika Java programčkov. Če želite razviti spletno aplikacijo Java, ki temelji na JSP in strežniških programčkih, boste datoteke .jsp, kodo Java in metapodatke aplikacije zapakirali v datoteko .war, ki je preprosta datoteka .zip z običajno strukturo za spletne aplikacije.

Ko naložite JSP v svoj vsebnik strežniškega programčka, bo zbran v strežniški programček. JSP-ji in programčki Java imajo podobne značilnosti, vključno z zmožnostjo dostopa do predmetov zahteve in odzivanja nanje. Apache Tomcat 9x je referenčna izvedba za specifikacije Servlet 4.0 in JSP 2.3. (Upoštevajte, da so posodobitve med JSP 2.2 in 2.3 razmeroma majhne.)

Vsebnik strežnika v primerjavi s strežnikom aplikacij

V svetu Jave je a posoda za servlet, znan tudi kot spletni strežnik, je kot lažja (pivska) različica aplikacijskega strežnika. Vsebnik strežniškega programčka obravnava interakcije med zahtevami in odzivi in ​​omogoča, da se te interakcije povežejo s podskupino zmogljivosti Java Java za spletne aplikacije. Aplikacijski strežnik Java vključuje vsebnik strežniškega programčka kot del celotnega sklada Java Java, vključno z EJB, JPA, JMS in drugimi.

Primer aplikacije za JSP

Za začetek uporabe strani JavaServer bomo uporabili primer aplikacije v programu Tomcat. Če še niste namestili Tomcata, pojdite na stran za prenos Tomcata in izberite namestitev Tomcata za svoj operacijski sistem. Od tega trenutka je Tomcat 9 trenutna izdaja, združljiva s Servlet 4.0 in JSP 2.3.

Tomcat lahko namestite kot storitev za Windows ali pa ga zaženete iz ukazne vrstice z /bin/catalina.sh začetek ali /bin/catalina.bat. Kakor koli že, zaženite Tomcat, nato pa pojdite na localhost: 8080 za ogled strani dobrodošlice Tomcat, prikazane na sliki 2.

Matthew Tyson

Implicitni predmeti v programu Tomcat

Na pozdravni strani Tomcat kliknite Primeri in kliknite Primeri JSP.

Nato odprite Izvedba implicitnih predmetov spletna aplikacija. Slika 3 prikazuje rezultate za to aplikacijo. Vzemite si minuto, da preučite te rezultate.

Matthew Tyson

Zahtevaj parametre

Implicitni predmeti so vgrajeni predmeti, dostopni prek strani JSP. Kot razvijalec spletnih strani boste te predmete uporabljali za ustvarjanje dostopa do stvari, kot so parametri zahteve, ki so podatki, poslani iz brskalnika ob izdaji zahteve HTTP. Upoštevajte URL brskalnika za implicitne predmete:

 //localhost:8080/examples/jsp/jsp2/el/implicit-objects.jsp?foo=bar 

Param je ? foo = bar, in to lahko vidite v rezultatih na spletni strani, kjer je v tabeli prikaz "EL Expression", vrednost pa "bar". Če želite to preizkusiti, spremenite URL v //localhost:8080/examples/jsp/jsp2/el/implicit-objects.jsp?foo=zork, zadeti Enter, in videli boste, da se sprememba odraža v izhodu.

Ta primer je zelo preprost uvod v uporabo oznak JSP za dostop do parametrov zahtev na strani strežnika. V tem primeru stran JSP uporablja vgrajeni (implicitni) predmet, ki se imenuje param za dostop do parametrov zahtev spletne aplikacije. The param object je na voljo znotraj sintakse izraza JSP, ki ste jo videli na seznamu 1.

V tem primeru smo uporabili izraz za nekaj matematike: ${2 * 2}, ki izpišejo 4.

V tem primeru se izraz uporablja za dostop do predmeta in polja na tem predmetu: $ {param.foo}.

JSP v spletni aplikaciji

Na strani Implicitni predmeti kliknite puščico nazaj, nato pa Vir povezava. To vas bo pripeljalo do kode JSP za spletno aplikacijo Implicit Objects, ki je prikazana na seznamu 2.

Seznam 2. Koda JSP za spletno aplikacijo Implicit Objects

     Jezik izražanja JSP 2.0 - implicitni predmeti 
Ta primer prikazuje nekatere implicitne predmete, ki so na voljo v jeziku izražanja. Na voljo so naslednji implicitni predmeti (tukaj niso vsi prikazani):
  • pageContext - objekt PageContext
  • pageScope - zemljevid, ki preslika imena atributov v obsegu strani v njihove vrednosti
  • requestScope - zemljevid, ki preslika imena atributov z obsegom zahteve na njihove vrednosti
  • sessionScope - zemljevid, ki preslika imena atributov v obsegu seje na njihove vrednosti
  • applicationScope - zemljevid, ki preslika imena atributov v obsegu aplikacije na njihove vrednosti
  • param - zemljevid, ki preslika imena imen v eno vrednost parametra String
  • paramValues ​​- zemljevid, ki preslika imena imen v niz [] vseh vrednosti za ta parameter
  • header - Zemljevid, ki preslika imena imen v eno vrednost glave String
  • headerValues ​​- zemljevid, ki preslika imena imen v niz [] vseh vrednosti za to glavo
  • initParam - zemljevid, ki preslika imena imen parametrov za inicializacijo konteksta na njihovo vrednost parametra String
  • piškotek - zemljevid, ki preslika imena piškotkov v en predmet piškotka.
Spremeni parameter foo =

EL izrazRezultat
\ $ {param.foo}$ {fn: escapeXml (param ["foo"])}
\ $ {param ["foo"]}$ {fn: escapeXml (param ["foo"])}
\ $ {header ["host"]}$ {fn: escapeXml (header ["host"])}
\ $ {header ["accept"]}$ {fn: escapeXml (header ["accept"])}
\ $ {header ["user-agent"]}$ {fn: escapeXml (header ["user-agent"])}

JSP funkcije

Če HTML poznate, bi moral biti seznam 2 videti precej znan. Imate pričakovani HTML elementi, čemur sledi ${ } Sintaksa izraza JSP, predstavljena v seznamu 1. Vendar upoštevajte vrednost za param.foo: $ {fn: escapeXml (param ["foo"])} . "fn: escapeXML ()"je funkcija JSP.

A Funkcija JSP zajema del funkcionalnosti za večkratno uporabo. V tem primeru je funkcionalnost pobeg XML. JSP ponuja različne funkcije, funkcije pa lahko ustvarite tudi sami. Če želite uporabiti funkcijo, njeno knjižnico uvozite na svojo stran JSP in nato pokličite funkcijo.

V seznamu 2 je escapeXML funkcija je vključena v vrstico:

Sintaksa je precej jasna: uvozi zahtevane funkcije in jim dodeli predpono (v tem primeru "fn"), ki jo je mogoče uporabiti v vseh naslednjih izrazih.

Standardna knjižnica oznak JSP (JSTL)

The uvoz v klicih s seznama 2 taglib, kar je okrajšava za knjižnica oznakali (v tem primeru) knjižnica standardnih oznak JSP (JSTL). Knjižnice oznak definirajo bite funkcionalnosti za večkratno uporabo za JSP. JSTL je standardna knjižnica oznak, ki vsebuje zbirko taglibov, ki so priložene vsakemu strežniku in izvedbi JSP, vključno s Tomcatom.

Knjižnica "functions" je le eden od taglibov, vključenih v JSTL. Še en pogost taglib je jedro knjižnico, ki jo uvozite s klicem:

Tako kot "fn" je tudi oznaka "c" običajna in jo boste videli na večini strani JSP.

Zaščita strani JSP

Primer oznake iz jedrne knjižnice je

ki izpiše oznaka z XML že pobegnila. Ta funkcija je pomembna, ker oddaja vsebino neposredno na spletno stran prek $ {spremenljivka} odpira vrata napadom vbrizgavanja skriptov. Ta preprosta funkcija se uporablja za zaščito spletnih strani pred takimi napadi.

Osnovna knjižnica vključuje tudi različne oznake za ponovitev in nadzor pretoka (na primer ravnanje IF / ELSE).

Klasifikacije oznak JSTL

V JSTL je vključenih pet sklopov oznak, od katerih je vsaka zasnovana za določeno področje funkcionalnosti spletnih aplikacij:

  • Jedro JSTL: Ukvarjanje z logiko in izvajanjem; običajna oznaka: "c"
  • Oblikovanje JSTL: ukvarjanje z oblikovanjem (na primer datumi) in internacionalizacijo; običajna oznaka: "fmt".
  • JSTL SQL: obravnavanje poizvedovanja po podatkovnih bazah SQL (to se v pogledu pogleda običajno ne priporoča); običajna oznaka: "sql".
  • JSTL XML: ukvarjanje z delom z dokumenti XML; običajna oznaka: "x".
  • Funkcije JSTL: obravnava predvsem manipulacije z nizom; običajna oznaka: "fn".

Klicanje taglibov na straneh JSP

Zdaj, ko imate osnove za osnove JSP, spremenimo primer aplikacije. Za začetek poiščite aplikacijo Implicit Object v namestitvi Tomcat. Pot je: apache-tomcat-8.5.33 / webapps / examples / jsp / jsp2 / el.

Odprite to datoteko in poiščite funkcije vključujejo:

tik pod to vrstico dodajte novo vrstico:

Pritisnite Vrni in dodajte novo vrstico:

Zdaj znova naložite stran na //localhost:8080/examples/jsp/jsp2/el/implicit-objects.jsp?foo=bar.

V izhodu bi morali videti svoje posodobitve.

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