Hvad er JSP? Introduktion til JavaServer Pages

JavaServer Pages (JSP) er en Java-standardteknologi, der giver dig mulighed for at skrive dynamiske, datadrevne sider til dine Java-applicationsebapplikationer. JSP er bygget oven på Java Servlet specifikation. De to teknologier arbejder typisk sammen, især i ældre Java-applicationsebapplikationer., Fra en kodning perspektiv, den mest åbenlyse forskel mellem dem er, at med servlets du skrive Java kode og derefter integrere klient-side markup (som HTML) til at kode, der henviser til, med JSP du starte med client-side script eller kode, derefter integrere JSP-tags til at forbinde din side til Java backend.

JSP er også tæt knyttet til JSF (JavaServer Faces), en Java specification for opbygning af MVC (model-view-controller) web applikationer. JSP er en relativt enklere og ældre teknologi end JSF, som er standarden for Java frameworksebrammer som Eclipse Mojarra, MyFaces og PrimeFaces., Selvom det ikke er ualmindeligt at se JSP brugt som frontend til ældre JSF-applikationer, er Facelets den foretrukne visningsteknologi til moderne JSF-implementeringer.

selvom JSP muligvis ikke er dit første valg til opbygning af dynamiske webebsider, er det en kerne Java-webebteknologi. JSP sider er relativt hurtige og nemme at bygge, og de interagerer problemfrit med Java servlets i en servlet container som Tomcat. Du vil støde på JSP i ældre Java – applicationsebapplikationer, og fra tid til anden kan du finde det nyttigt til at opbygge enkle, dynamiske Java-pagesebsider., Som Java-udvikler skal du i det mindste være bekendt med JSP.

denne artikel vil være en hurtig introduktion til JavaServer-sider, herunder JSP Standard Tag Library (JSTL). Eksempler viser dig, hvordan du skriver en simpel HTML-side, indlejrer JSP-tags for at oprette forbindelse til en Java-servlet og køre siden i en servlet-container.

se tidligere artikler i denne serie for at lære mere om Java servlets og JavaServer ansigter.

skrivning JSP sider

en simpel JSP side (.jsp) består af HTML markup indlejret med JSP tags., Når filen behandles på serveren, gengives HTML ‘ en som applikationsvisningen, en webebside. De indlejrede JSP tags vil blive brugt til at kalde server-side kode og data. Diagrammet i Figur 1 viser samspillet mellem HTML, JSP og applicationebapplikationsserveren.

Matthew Tyson

Figur 1. JSP oversigt

liste 1 viser en simpel JSP side.

liste 1., En simpel JSP-side

<html> <body> <p>${2 * 2} should equal 4</p> </body></html>

I Liste 1 Ser du en blok HTML, der indeholder et JSP-udtryk, som er en instruktion til Java-serveren skrevet ved hjælp af E .pression Language (EL). I udtrykket”${2 * 2}“er”${} ” JSP-syntaks for interpolering af kode i HTML. Når den udføres, udsender JSP resultaterne af udførelsen, hvad der er inde i udtrykket. I dette tilfælde vil udgangen være nummer 4.

JSP i servlet container

JSP sider skal implementeres inde i en Java servlet container., For at implementere en Java applicationebapplikation baseret på JSP og servlets, du vil pakke din .jsp-filer, Java-kode og applikationsmetadata i en .krig fil, som er en simpel .zipip-fil med en konventionel struktur for webeb-applikationer.

Når du har indlæst JSP i din servlet container, vil det blive samlet i en servlet. JSP ‘ er og Java-servlets deler lignende egenskaber, herunder muligheden for at få adgang til og svare på anmodningsobjekter. Apache Tomcat 9.er referenceimplementeringen til Servlet 4.0 og JSP 2.3 specifikationerne. (Bemærk, at opdateringer mellem JSP 2.,2 og 2.3 er forholdsvis små.)

Eksempel app til JSP

Vi bruger et eksempelprogram i Tomcat for at komme i gang med JavaServer Pages. Hvis du ikke allerede har Tomcat installeret, skal du gå til Tomcat-do .nloadsiden og vælge Tomcat-installationen til dit operativsystem. Fra denne skrivning er Tomcat 9 den aktuelle udgivelse, kompatibel med Servlet 4.0 og JSP 2.3.

Du kan installere Tomcat som en Windows-tjeneste, eller køre den fra kommandolinjen med /bin/catalina.sh start eller /bin/catalina.bat., Uanset hvad, start Tomcat, og gå derefter til localhost:8080 for at se Tomcat-velkomstsiden vist i figur 2.

Matthew Tyson

Figur 2. Tomcat-velkomstside

implicitte objekter i Tomcat

på Tomcat-velkomstsiden skal du klikke på linket eksempler og derefter klikke på JSP-eksempler.

åbn derefter de implicitte objekter Udfør webebapplikation. Figur 3 viser output til denne applikation. Brug et minut på at studere denne output.

Matthew Tyson

Figur 3., Sample JSP output

Anmodningsparametre

implicitte objekter er indbyggede objekter, der er tilgængelige via en JSP-side. Som developerebsideudvikler bruger du disse objekter til at oprette adgang til ting som anmodningsparametre, som er de data, der sendes fra bro .seren, når du udsteder en HTTP-anmodning. Overveje browseren WEBADRESSEN for den Implicitte Objekter:

This example is a very simple introduction to using JSP tags to access server-side request parameters. In this case, the JSP page uses the built-in (implicit) object called param to access the web application’s request parameters. The param object is available inside the JSP expression syntax that you saw in Listing 1.

In that example, we used an expression to do some math: ${2 * 2}, which output 4.

In this example, the expression is used to access an object and a field on that object: ${param.foo}.

JSP in a web application

On the Implicit Objects page, click the back arrow, followed by the Source link. This will lead you to the JSP code for the Implicit Objects web app, which is shown in Listing 2.

Listing 2. JSP code for the Implicit Objects web app

JSP functions

A JSP function encapsulates a chunk of reusable functionality. In this case, the functionality is to escape XML. JSP offers a variety of functions, and you can also create functions yourself. To use a function, you import its library into your JSP page, then call the function.

In Listing 2, the escapeXML function is included with the line:

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

syntaks er temmelig klar: det importerer de nødvendige funktioner og tildeler dem et præfiks (i dette tilfælde “fn”), der kan bruges i alle de følgende udtryk.,

JSP Standard Tag Library (JSTL)

import linje i Liste 2 opkald taglib, som er en forkortelse for tag bibliotek, eller (i dette tilfælde) JSP Standard Tag Library (JSTL). Tag biblioteker definere genanvendelige bits af funktionalitet til JSP. JSTL er standard tag bibliotek, der indeholder en samling af taglibs at skibet med hver servlet og JSP implementering, herunder Tomcat.

biblioteket “funktioner” er blot en af de taglibs, der følger med JSTL., Et andet fælles taglib er core bibliotek, som du importerer ved at ringe til:

<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>

Som “fn”, “c” betegnelsen er konventionelle, og du vil se det på tværs af de fleste JSP-sider.

sikring af JSP-sider

et eksempel tag fra kernebiblioteket er

<c:out value = "${'<div>'}"/> 

som udsender<div> tag med XML allerede undsluppet. Denne funktion er vigtig, fordi output af indhold direkte til en webebside via ${variable} åbner døren til scriptinjektionsangreb., Denne enkle funktion bruges til at beskytte webebsider mod sådanne angreb.

kernebiblioteket indeholder også forskellige tags til iteration og Flo .kontrol (som IF / ELSE håndtering).

opkald taglibs i JSP sider

nu hvor du har et håndtag på JSP basics, lad os foretage en ændring af eksempelprogrammet. For at starte skal du finde Implicit Object-appen i din Tomcat-installation. Stien er: apache-tomcat-8.5.33/webapps/examples/jsp/jsp2/el.,

Åbn denne fil, og find functions er:

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

lige under denne linje, tilføje en ny linje:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

Slå Tilbage og tilføje en ny linje:

<c:out value = "${'This is a test of the JSTL Core Library'}"/>

Nu genindlæs side http://localhost:8080/examples/jsp/jsp2/el/implicit-objects.jsp?foo=bar.

Du bør se dine opdateringer afspejles i output.

Layout af en JSP-applicationebapplikation

Tomcat følger standardlayoutet for Java servlet-og JSP-sider., Den generelle struktur er en mappe med navnet på applikationen, som er indsat i Tomcat ‘ s /webapps bibliotek.

i Implicit Objects-appen er applikationen /examples. Åbning af denne mappe afslører tre vigtige børn:/WEB-INF – mappen,index.html – filen og et sæt andre mapper.

WEB-INF – mappen indeholder metadata, der informerer Tomcat om, hvordan du kører appen.

resten af indholdet, herunder indeks.,html, er direkte tilgængelig, ligesom det ville være i en typisk .ebserver. På samme måde er implicit-objects.jsp tilgængelig for visning og håndteres automatisk som en JSP-side (ikke en HTML-side) af serveren.

re .uest-response architecture

i en typisk servlets / JSP-applikation modtager servlets anmodninger og interagerer med komponenter og tjenester på serversiden (såsom databasen) for at opfylde dem. Når det er håndteret, videresendes forespørgselsresultatet til en JSP-side, der præsenterer svaret.,

En servlet bruger følgende syntaks, når der sendes en anmodning om svar på en JSP-side:

request.getRequestDispatcher("path/to/jsp.jsp").forward(req,res);

Hvad data, servlet har indsat i forskellige JSP scopes vil være tilgængelige for JSP. Et omfang er simpelthen en række liv for et givet objekt. Anmodning og respons objekter er anmodning scoped, hvilket betyder at de lever for varigheden af anmodningen. Andre anvendelsesområder inkluderer sideomfang (lever så længe JSP-siden gør) og sessionsomfang (afslutter, når brugeren afslutter den givne session).,

konklusion

JavaServer Pages er en velkendt og alsidig teknologi til udvikling af Java-viewsebapplikationsvisninger. Kombineret med servlets, JSP sider er meget kraftfuld, og give adgang til hele spektret af Java kapaciteter. Selvom JSP muligvis ikke er dit første valg til at udvikle en moderne Java-webebapplikation, vil du støde på JSP-sider i ældre applikationer. Det er også et godt valg til enklere applikationer, hvor du hurtigt vil forbinde din HTML-frontend til Java-kode på serversiden., JSTL-tags er i stand til at håndtere de fleste requirementsebapplikationskrav, og tredjepartsbiblioteker udvider denne funktionalitet til specifikke teknologier og brugssager.

Share

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *