pagini JavaServer (JSP) este o tehnologie standard Java care vă permite să scrieți pagini dinamice, bazate pe date pentru aplicațiile dvs. web Java. JSP este construit pe partea de sus a specificației servlet Java. Cele două tehnologii lucrează de obicei împreună, în special în aplicațiile Web Java mai vechi., De la o codificare perspectivă, diferența cea mai evidentă dintre ele este că cu servlet-uri scrie cod Java și apoi încorpora client-side de marcare (HTML) în cod, întrucât cu JSP începe cu client-side script sau marcare, apoi încorporați JSP tag-uri să se conecteze pagina pentru Java backend.
JSP este, de asemenea, strâns legată de JSF (JavaServer Faces), o specificație Java pentru construirea de aplicații web MVC (model-view-controller). JSP este relativ mai simplă și tehnologie mai veche decât JSF, care este standard pentru Java web cadre, cum ar fi Eclipse Mojarra, MyFaces, și PrimeFaces., Deși nu este neobișnuit să vezi JSP folosit ca interfață pentru aplicațiile JSF mai vechi, Facelets este tehnologia de vizualizare preferată pentru implementările JSF moderne.în timp ce JSP nu poate fi prima alegere pentru construirea de pagini web dinamice, este o tehnologie de bază Java Web. Paginile JSP sunt relativ rapide și ușor de construit și interacționează perfect cu servleturile Java într-un container servlet precum Tomcat. Veți întâlni JSP în aplicații Web Java mai vechi, și din când în când s-ar putea găsi util pentru construirea de pagini Web Java simple, dinamice., Ca dezvoltator Java, ar trebui să fii cel puțin familiarizat cu JSP.
Acest articol va fi o introducere rapidă la paginile JavaServer, inclusiv JSP standard Tag Library (JSTL). Exemple vă arată cum să scrieți o pagină HTML simplă, să încorporați etichete JSP pentru a vă conecta la un servlet Java și să rulați pagina într-un container servlet.Vezi articolele anterioare din această serie pentru a afla mai multe despre servleturile Java și fețele JavaServer.
scrierea paginilor JSP
o pagină JSP simplă (.jsp) constă din marcare HTML încorporat cu tag-uri JSP., Când fișierul este procesat pe server, HTML este redat ca vizualizarea aplicației, o pagină web. Etichetele JSP încorporate vor fi utilizate pentru a apela codul și datele din partea serverului. Diagrama din Figura 1 arată interacțiunea dintre HTML, JSP și serverul de aplicații web.
listarea 1 arată o pagină JSP simplă.
Lista 1., O pagină JSP simplă
<html> <body> <p>${2 * 2} should equal 4</p> </body></html>
în lista 1, vedeți un bloc de HTML care include o expresie JSP, care este o instrucțiune către serverul Java scrisă folosind limbajul expresiei (El). În expresia „${2 * 2}
„,”${}
” este sintaxa JSP pentru interpolarea codului în HTML. Când este executat, JSP va afișa rezultatele executării a ceea ce se află în interiorul expresiei. În acest caz, ieșirea va fi numărul 4.
JSP în containerul servlet
paginile JSP trebuie să fie implementate în interiorul unui container servlet Java., Pentru a implementa o aplicație web Java bazată pe JSP și servlets, vă va pachet dvs .. fișiere jsp, cod Java și metadate ale aplicației într-un .fișier de război, care este un simplu .fișier zip cu o structură convențională pentru aplicații web.odată ce ați încărcat JSP în containerul servlet, acesta va fi compilat într-un servlet. Servleturile JSP și Java au caracteristici similare, inclusiv capacitatea de a accesa și de a răspunde la solicitarea obiectelor. Apache Tomcat 9x este implementarea de referință pentru specificațiile Servlet 4.0 și JSP 2.3. (Rețineți că actualizările între JSP 2.,2 și 2.3 sunt relativ minore.)
exemplu de aplicație pentru JSP
vom folosi o aplicație exemplu în Tomcat pentru a obține ai început cu pagini JavaServer. Dacă nu aveți deja Tomcat instalat, navigați la pagina de descărcare Tomcat și selectați instalarea Tomcat pentru sistemul dvs. de operare. Ca de această scriere, Tomcat 9 este versiunea curentă, compatibil cu Servlet 4.0 și JSP 2.3.
puteți instala Tomcat ca un serviciu Windows, sau de a rula din linia de comandă cu /bin/catalina.sh start
sau /bin/catalina.bat
., În orice caz, porniți Tomcat, apoi mergeți la localhost:8080
pentru a vedea pagina de întâmpinare Tomcat prezentată în Figura 2.
Implicite Obiecte în Tomcat
Pe Tomcat pagina de întâmpinare, faceți clic pe Exemple link-ul, apoi faceți clic pe JSP Exemple.
apoi, deschideți Implicit Objects Execute web application. Figura 3 Arată ieșire pentru această aplicație. Luați un minut pentru a studia această ieșire.
parametrii de Cerere
Implicite obiecte sunt obiecte built-in accesibil printr-o pagina JSP. Ca dezvoltator de pagini web, veți utiliza aceste obiecte pentru a crea acces la lucruri precum parametrii de solicitare, care sunt datele trimise din browser atunci când emiteți o solicitare HTTP. Luați în considerare URL-ul browserului pentru obiecte implicite:
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" %>
sintaxa este destul de clară: importă funcțiile necesare și le atribuie un prefix (în acest caz „fn”) care poate fi utilizat în toate expresiile următoare.,
JSP Standard Tag Library (JSTL)
import
linie în Listă 2 apeluri taglib
, care este prescurtarea de la biblioteca de taguri, sau (în acest caz) JSP Standard Tag Library (JSTL). Bibliotecile de etichete definesc biți reutilizabili de funcționalitate pentru JSP. JSTL este biblioteca standard tag, care conține o colecție de taglibs care nava cu fiecare implementare servlet și JSP, inclusiv Tomcat.
biblioteca „funcții” este doar una dintre taglibs incluse cu JSTL., O altă comună taglib este core
bibliotecă, pe care le importa de asteptare:
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
Ca „fn”, denumirea de „c” este convențională, și veți vedea că pe cele mai multe pagini JSP.
Asigurarea pagini JSP
Un exemplu de etichetă de la biblioteca de bază este
<c:out value = "${'<div>'}"/>
care emite <div>
tag-ul cu XML scăpat deja. Această funcție este importantă deoarece afișarea conținutului direct pe o pagină web prin ${variable}
deschide ușa atacurilor de injecție script., Această funcție simplă este utilizată pentru a proteja paginile web de astfel de atacuri.biblioteca de bază include, de asemenea, diverse etichete pentru iterație și controlul fluxului (cum ar fi manipularea IF/ELSE).
apelarea taglibs în pagini JSP
acum, că ai un mâner pe elementele de bază JSP, să facem o modificare a aplicației exemplu. Pentru a începe, localizați aplicația obiect Implicit în instalarea Tomcat. Calea este: apache-tomcat-8.5.33/webapps/examples/jsp/jsp2/el
.,
Deschide acest fișier și localiza functions
include:
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
doar sub această linie, se adauga o noua linie:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
Hit Reveni și se adaugă o altă linie nouă:
<c:out value = "${'This is a test of the JSTL Core Library'}"/>
Acum reîncărcați pagina la http://localhost:8080/examples/jsp/jsp2/el/implicit-objects.jsp?foo=bar.
ar trebui să vedeți actualizările reflectate în ieșire.
aspectul unei aplicații web JSP
Tomcat urmează aspectul standard pentru servlet Java și pagini JSP., Structura generală este un folder cu numele aplicației, care este implementat în directorul Tomcat /webapps
.
în aplicația obiecte implicite, aplicația este /examples
. Deschiderea acel folder relevă trei copii: /WEB-INF
director, index.html
fișier, și un set de alte directoare.directorul
WEB-INF
conține metadate care îl informează pe Tomcat cum să ruleze aplicația.
restul conținutului, inclusiv indexul.,html, este direct accesibil, la fel cum ar fi într-un server web tipic. De asemenea, implicit-objects.jsp
este disponibil pentru vizualizare și este gestionat automat ca o pagină JSP (nu o pagină HTML) de către server.
Request-response architecture
într-o aplicație tipică servlets/JSP, servleturile primesc solicitări și interacționează cu componente și servicii din partea serverului (cum ar fi baza de date) pentru a le îndeplini. Odată manipulate, rezultatul cererii este transmis la o pagină JSP, care prezintă răspunsul.,
Un servlet folosește următoarea sintaxă atunci când trimite o solicitare de răspuns la o pagină JSP:
request.getRequestDispatcher("path/to/jsp.jsp").forward(req,res);
Orice date servlet-a introdus în diverse JSP domenii va fi accesibil pentru JSP. Un domeniu de aplicare este pur și simplu o gamă de viață pentru un anumit obiect. Cerere și răspuns obiecte sunt cerere scoped, ceea ce înseamnă că trăiesc pe durata cererii. Alte domenii includ domeniul de aplicare al paginii (care trăiește atâta timp cât pagina JSP) și domeniul de aplicare al sesiunii (care se încheie atunci când utilizatorul încheie sesiunea dată).,JavaServer Pages este o tehnologie bine cunoscută și versatilă pentru dezvoltarea vizualizărilor aplicațiilor Web Java. Combinate cu servleturi, paginile JSP sunt foarte puternice și oferă acces la întreaga gamă de capabilități Java. În timp ce JSP nu poate fi prima alegere pentru dezvoltarea unei aplicații Web Java moderne, veți întâlni pagini JSP în aplicații vechi. Este, de asemenea, o alegere bună pentru aplicații mai simple, unde doriți să conectați rapid interfața HTML la codul Java din partea serverului., Etichetele JSTL sunt capabile să gestioneze majoritatea cerințelor aplicațiilor web, iar bibliotecile terțe extind această funcționalitate pentru tehnologii specifice și cazuri de utilizare.