Strony serwera Dżakarta - Jakarta Server Pages

JSP
Rozszerzenie nazwy pliku
.jsp, .jspx, .jspf
Rodzaj mediów internetowych
aplikacja/jsp
Opracowany przez Fundacja Eclipse
Pierwsze wydanie 1999 ; 22 lata temu ( 1999 )
Najnowsze wydanie
3.0
(21 października 2020 ; 10 miesięcy temu ) ( 21.10.2020 )
Rodzaj formatu Dynamiczna strona internetowa
Standard JSR 245
Otwarty format ? tak
Strona internetowa projekty .eclipse .org /projekty /ee4j .jsp Edytuj to na Wikidata

Jakarta Server Pages ( JSP ; dawniej JavaServer Pages) to zbiór technologii, które pomagają programistom tworzyć dynamicznie generowane strony internetowe w oparciu o HTML , XML , SOAP lub inne typy dokumentów. Wydany w 1999 roku przez Sun Microsystems JSP jest podobny do PHP i ASP , ale używa języka programowania Java .

Aby wdrożyć i uruchomić Jakarta Server Pages, wymagany jest kompatybilny serwer internetowy z kontenerem serwletów , taki jak Apache Tomcat lub Jetty .

Przegląd

Architektura JSP Model 2.

Z punktu widzenia architektury JSP może być postrzegana jako abstrakcja wysokiego poziomu serwletów Javy . Strony JSP są tłumaczone na serwlety w czasie wykonywania, dlatego JSP jest serwletem; każdy serwlet JSP jest buforowany i ponownie używany do momentu zmodyfikowania oryginalnej strony JSP.

Jakarta Server Pages mogą być używane niezależnie lub jako komponent widoku projektu model-widok-kontroler po stronie serwera , zwykle z JavaBeans jako modelem i serwletami Java (lub frameworkiem, takim jak Apache Struts ) jako kontrolerem. Jest to rodzaj architektury Modelu 2 .

JSP umożliwia przeplatanie kodu Java i pewnych predefiniowanych działań ze statyczną zawartością znaczników internetowych, taką jak HTML. Wynikowa strona jest kompilowana i wykonywana na serwerze w celu dostarczenia dokumentu. Skompilowane strony, jak również wszelkie zależne biblioteki Java, zawierają kod bajtowy Java, a nie kod maszynowy . Jak każdy inny program .jar lub Java, kod musi być wykonywany w wirtualnej maszynie Java (JVM), która współdziała z systemem operacyjnym hosta serwera, aby zapewnić abstrakcyjne, neutralne dla platformy środowisko.

Strony JSP są zwykle używane do dostarczania dokumentów HTML i XML, ale dzięki wykorzystaniu OutputStream mogą dostarczać również inne typy danych.

Pojemnik Web tworzy JSP ukrytych obiektów jak wniosek, odpowiedź, sesja, aplikacji, config, strona, pageContext, na zewnątrz i wyjątku. JSP Engine tworzy te obiekty podczas fazy tłumaczenia.

Składnia

Strony JSP używają kilku ograniczników dla funkcji skryptowych . Najbardziej podstawowy to <% ... %>, który zawiera skryptlet JSP. Skryptlet to fragment kodu Java, który jest uruchamiany, gdy użytkownik zażąda strony. Inne częste ograniczniki należą <%= ... %>do wyrażeń, gdzie skrypty i ograniczniki są zastąpione w wyniku oceny ekspresji i dyrektyw , oznaczoną <%@ ... %>.

Kod Java nie musi być kompletny ani samowystarczalny w pojedynczym bloku skryptletu. Może zawierać znaczniki, pod warunkiem, że strona jako całość jest poprawna składniowo. Na przykład wszystkie bloki Java if/for/while otwarte w jednym skrypcie muszą zostać poprawnie zamknięte w późniejszym skrypcie, aby strona mogła się pomyślnie skompilować. Pozwala to na przemieszanie kodu i może skutkować złymi praktykami programistycznymi.

Treść zawarta w podzielonym bloku kodu Java (obejmującym wiele skryptletów) podlega temu kodowi. Treść wewnątrz bloku if pojawi się w danych wyjściowych tylko wtedy, gdy warunek if zostanie spełniony. Podobnie zawartość wewnątrz konstrukcji pętli może pojawiać się wiele razy w danych wyjściowych, w zależności od tego, ile razy zostanie uruchomiona treść pętli.

Poprawną pętlą for na stronie JSP byłaby następująca pętla :

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

Dane wyjściowe wyświetlane w przeglądarce internetowej użytkownika to:

Counting to three:

This number is 1.

This number is 2.

This number is 3.

OK.

Język wyrażeń

W wersji 2.0 specyfikacji JSP dodano obsługę języka Expression Language (EL), używanego do uzyskiwania dostępu do danych i funkcji w obiektach Java. W JSP 2.1 został złożony w Unified Expression Language , który jest również używany w JavaServer Faces .

Przykład składni EL :

Wartość „zmienna” w obiekcie „javabean” to ${javabean.zmienna}.

Dodatkowe tagi

Składnia JSP dodaje dodatkowe znaczniki, zwane akcjami JSP, aby wywołać wbudowaną funkcjonalność. Dodatkowo technologia pozwala na tworzenie niestandardowych bibliotek znaczników JSP, które działają jako rozszerzenia standardowej składni JSP. Jedną z takich bibliotek jest JSTL , z obsługą typowych zadań, takich jak iteracja i warunkowe (odpowiednik instrukcji "for" i "if" w Javie).

Kompilator

JavaServer Pages kompilator to program, który analizuje JSP i przekształca je w wykonywalnych serwlet . Program tego typu jest zwykle osadzony na serwerze aplikacji i uruchamiany automatycznie przy pierwszym dostępie do strony JSP, ale strony mogą być również prekompilowane w celu uzyskania lepszej wydajności lub kompilowane jako część procesu budowania w celu przetestowania pod kątem błędów.

Niektóre kontenery JSP obsługują konfigurowanie częstotliwości sprawdzania przez kontener znaczników czasowych plików JSP w celu sprawdzenia, czy strona uległa zmianie. Zazwyczaj ten znacznik czasu jest ustawiony na krótki interwał (na przykład sekundy) podczas opracowywania oprogramowania i dłuższy interwał (na przykład minuty, a nawet nigdy) dla wdrożonej aplikacji sieci Web .

Krytyka

W 2000 roku Jason Hunter, autor książki "Java Servlet Programming" opisał szereg "problemów" ze stronami JavaServer Pages. Niemniej jednak napisał, że chociaż JSP może nie być „najlepszym rozwiązaniem dla platformy Java”, to „rozwiązanie Java najbardziej przypomina rozwiązanie inne niż Java”, przez co miał na myśli Active Server Pages firmy Microsoft . Później dodał na swojej stronie notatkę, że JSP poprawiło się od 2000 roku, ale przytoczył również konkurentów, Apache Velocity i Tea (język szablonów). Obecnie istnieje kilka alternatyw, a wiele stron zorientowanych na JSP w większych aplikacjach internetowych jest uważanych za dług techniczny.

Zobacz też

Pojemniki na serwlety

Alternatywne szablony oparte na Javie

Bibliografia

Dalsza lektura

Zewnętrzne linki