Jakartas serversidor - Jakarta Server Pages

JSP
Filnamnstillägg
.jsp, .jspx, .jspf
Internetmedietyp
ansökan/jsp
Utvecklad av Eclipse Foundation
Initial release 1999 ; 22 år sedan ( 1999 )
Senaste släppningen
3.0
(21 oktober 2020 ; för 10 månader sedan ) ( 2020-10-21 )
Typ av format Dynamisk webbsida
Standard JSR 245
Öppet format ? Ja
Hemsida projects .eclipse .org /projects /ee4j .jsp Redigera detta på Wikidata

Jakarta Server Pages ( JSP ; tidigare JavaServer Pages) är en samling tekniker som hjälper programutvecklare att skapa dynamiskt genererade webbsidor baserade på HTML , XML , SOAP eller andra dokumenttyper. JSP, som släpptes 1999 av Sun Microsystems , liknar PHP och ASP , men använder programmeringsspråket Java .

För att distribuera och köra Jakarta Server Pages krävs en kompatibel webbserver med en servletbehållare , till exempel Apache Tomcat eller Jetty .

Översikt

Image
JSP Model 2 -arkitekturen.

Arkitektoniskt kan JSP ses som en abstraktion på hög nivå av Java-servlets . JSP översätts till servlets vid körning, därför är JSP en Servlet; varje JSP-servlet cachelagras och återanvänds tills den ursprungliga JSPen har ändrats.

Jakarta Server Pages kan användas oberoende eller som vykomponent i en modell-view-controller- design på serversidan , normalt med JavaBeans som modell och Java servlets (eller ett ramverk som Apache Struts ) som controller. Detta är en typ av modell 2 -arkitektur.

JSP gör att Java -kod och vissa fördefinierade åtgärder kan sammanfogas med statiskt webbmarkeringsinnehåll, till exempel HTML. Den resulterande sidan sammanställs och körs på servern för att leverera ett dokument. De sammanställda sidorna, liksom alla beroende Java -bibliotek, innehåller Java -bytekod snarare än maskinkod . Liksom alla andra .jar- eller Java-program måste koden köras i en virtuell Java-maskin (JVM) som interagerar med serverns värdoperativsystem för att ge en abstrakt, plattformneutral miljö.

JSP används vanligtvis för att leverera HTML- och XML -dokument, men genom att använda OutputStream kan de också leverera andra typer av data.

Den Web container skapar JSP implicita föremål som begäran, svar, session, ansökan, config, sida, pageContext, ut och undantag. JSP Engine skapar dessa objekt under översättningsfasen.

Syntax

JSP -sidor använder flera avgränsare för skriptfunktioner . Det mest grundläggande är <% ... %>, som omsluter ett JSP -scriptlet. Ett scriptlet är ett fragment av Java -kod som körs när användaren begär sidan. Andra vanliga avgränsare inkluderar <%= ... %>för uttryck, där scriptlet och avgränsare ersätts med resultatet av utvärdering av uttrycket, och direktiv , betecknade med <%@ ... %>.

Java-kod krävs inte för att vara komplett eller fristående i ett enda scriptletblock. Det kan spridas över markeringsinnehåll, förutsatt att sidan som helhet är syntaktiskt korrekt. Till exempel måste alla Java if/for/while -block som öppnas i ett scriptlet stängas korrekt i ett senare scriptlet för att sidan ska kunna kompileras. Detta gör att kod kan blandas och kan leda till dålig programmering.

Innehåll som faller in i ett delat block av Java -kod (som spänner över flera scriptletar) omfattas av den koden. Innehåll i ett if -block visas bara i utdata när if -villkoret utvärderas till sant. På samma sätt kan innehåll i en loopkonstruktion visas flera gånger i utdata, beroende på hur många gånger loop -kroppen körs.

Följande skulle vara giltigt för loop på en JSP -sida:

<p>Counting to three:</p>
<% for (int i=1; i<4; i++) { %>
    <p>This number is <%= i %>.</p>
<% } %>
<p>OK.</p>

Utmatningen som visas i användarens webbläsare skulle vara:

Counting to three:

This number is 1.

This number is 2.

This number is 3.

OK.

Uttrycksspråk

Version 2.0 av JSP -specifikationen lade till stöd för Expression Language (EL), som används för att komma åt data och funktioner i Java -objekt. I JSP 2.1 lades den in i Unified Expression Language , som också används i JavaServer Faces .

Ett exempel på EL -syntax :

Värdet på "variabel" i objektet "javabean" är $ {javabean.variable}.

Ytterligare taggar

JSP-syntaxen lägger till ytterligare taggar, kallade JSP-åtgärder, för att åberopa inbyggd funktionalitet. Dessutom möjliggör tekniken skapande av anpassade JSP -taggbibliotek som fungerar som tillägg till standard JSP -syntax. Ett sådant bibliotek är JSTL , med stöd för vanliga uppgifter som iteration och villkor (motsvarande "för" och "om" -uttalanden i Java.)

Kompilator

En JavaServer Pages -kompilator är ett program som analyserar JSP och omvandlar dem till körbara Java Servlets . Ett program av denna typ är vanligtvis inbäddat i applikationsservern och körs automatiskt första gången en JSP öppnas, men sidor kan också förkompileras för bättre prestanda eller sammanställas som en del av byggprocessen för att testa för fel.

Vissa JSP behållare stöder konfigurera hur ofta kontroller container JSP -fil tidsstämplar för att se om sidan har ändrats. Vanligtvis skulle denna tidsstämpel vara inställd på ett kort intervall (kanske sekunder) under mjukvaruutveckling och ett längre intervall (kanske minuter, eller till och med aldrig) för en distribuerad webbapplikation .

Kritik

År 2000 beskrev Jason Hunter, författare till "Java Servlet Programming" ett antal "problem" med JavaServer Pages. Ändå skrev han att även om JSP kanske inte är den "bästa lösningen för Java-plattformen" var det "Java-lösningen som är mest lik den icke-Java-lösningen", med vilket han menade Microsofts Active Server Pages . Senare lade han till en lapp på sin webbplats där det stod att JSP hade förbättrats sedan 2000, men också nämnt sina konkurrenter, Apache Velocity and Tea (mallspråk). Idag finns det flera alternativ och ett antal JSP-orienterade sidor i större webbappar anses vara teknisk skuld.

Se även

Servlet behållare

Java-baserade mallalternativ

Referenser

Vidare läsning

externa länkar