Co to jest JSP? Wprowadzenie do JavaServer Pages

JavaServer Pages (JSP) jest standardową technologią Java, która umożliwia pisanie dynamicznych, opartych na danych stron dla aplikacji internetowych Java. JSP jest zbudowany na bazie specyfikacji Java Servlet. Te dwie technologie zazwyczaj współpracują ze sobą, szczególnie w starszych aplikacjach internetowych Java., Z punktu widzenia kodowania najbardziej oczywistą różnicą między nimi jest to, że w servletach piszesz kod Java, a następnie osadzasz znaczniki po stronie klienta (np. HTML) w tym kodzie, podczas gdy w JSP zaczynasz od skryptu po stronie klienta lub znaczników, a następnie osadzasz znaczniki JSP, aby połączyć swoją stronę z zapleczem Java.

JSP jest również blisko spokrewniony z JSF (JavaServer Faces), specyfikacją Javy służącą do budowania aplikacji internetowych MVC (model-view-controller). JSP jest stosunkowo prostszą i starszą technologią niż JSF, która jest standardem dla frameworków internetowych Java, takich jak Eclipse Mojarra, MyFaces i PrimeFaces., Chociaż często JSP jest używany jako nakładka dla starszych aplikacji JSF, Facelets jest preferowaną technologią widoku dla nowoczesnych implementacji JSF.

chociaż JSP może nie być pierwszym wyborem do budowania dynamicznych stron internetowych, jest to podstawowa technologia internetowa Java. Strony JSP są stosunkowo szybkie i łatwe do zbudowania oraz bezproblemowo współdziałają z Serwletami Javy w kontenerze serwletów, takim jak Tomcat. JSP można napotkać w starszych aplikacjach internetowych Java i od czasu do czasu może okazać się przydatny do budowania prostych, dynamicznych stron internetowych Java., Jako programista Javy powinieneś przynajmniej znać JSP.

Ten artykuł będzie szybkim wprowadzeniem do stron JavaServer, w tym standardowej biblioteki znaczników JSP (JSTL). Przykłady pokazują, jak napisać prostą stronę HTML, osadzić znaczniki JSP, aby połączyć się z serwletem Java, i uruchomić stronę w kontenerze serwleta.

Zobacz poprzednie artykuły z tej serii, aby dowiedzieć się więcej o serwletach Java i twarzach JavaServer.

pisanie stron JSP

prosta strona JSP (.jsp) składa się ze znaczników HTML osadzonych ze znacznikami JSP., Gdy plik jest przetwarzany na serwerze, HTML jest renderowany jako widok aplikacji, strona internetowa. Osadzone znaczniki JSP będą używane do wywoływania kodu i danych po stronie serwera. Diagram na rysunku 1 pokazuje interakcję między HTML, JSP i serwerem aplikacji internetowej.

Matthew Tyson

Rysunek 1. Przegląd JSP

Lista 1 pokazuje prostą stronę JSP.

notowanie 1., Prosta strona JSP

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

w liście 1 widzisz blok HTML zawierający wyrażenie JSP, które jest instrukcją dla serwera Java napisaną przy użyciu języka wyrażeń (EL). W wyrażeniu „${2 * 2}„, „${}” jest składnią JSP do interpolacji kodu do HTML. Po wykonaniu, JSP wyświetli wyniki wykonania tego, co znajduje się wewnątrz wyrażenia. W takim przypadku wyjściem będzie Liczba 4.

JSP w kontenerze serwletów

strony JSP muszą być wdrożone wewnątrz kontenera serwletów Java., Aby wdrożyć aplikację internetową Java opartą na JSP i servletach, spakujesz swój .pliki jsp, kod Java i metadane aplikacji w .plik wojenny, który jest prosty .plik zip o konwencjonalnej strukturze dla aplikacji internetowych.

Po załadowaniu JSP do kontenera servleta zostanie on skompilowany w servlet. Serwlety JSP i Java mają podobne cechy, w tym możliwość dostępu do obiektów żądań i reagowania na nie. Apache Tomcat 9x jest implementacją referencyjną dla specyfikacji Servlet 4.0 i JSP 2.3. (Należy pamiętać, że aktualizacje między JSP 2.,2 i 2.3 są stosunkowo niewielkie.)

Przykładowa aplikacja dla JSP

użyjemy przykładowej aplikacji w Tomcat, aby rozpocząć pracę z JavaServer Pages. Jeśli nie masz jeszcze zainstalowanego programu Tomcat, przejdź do strony pobierania programu Tomcat i wybierz instalację programu Tomcat dla swojego systemu operacyjnego. W chwili pisania tego tekstu Tomcat 9 jest aktualnym wydaniem, kompatybilnym z Servletem 4.0 i JSP 2.3.

możesz zainstalować Tomcat jako usługę systemu Windows lub uruchomić go z wiersza poleceń za pomocą/bin/catalina.sh start lub/bin/catalina.bat., Tak czy inaczej, Uruchom Tomcat, a następnie przejdź do localhost:8080, aby zobaczyć stronę powitalną Tomcat pokazaną na rysunku 2.

Matthew Tyson

Rysunek 2. Strona powitalna Tomcat

Obiekty niejawne w Tomcat

na stronie powitalnej Tomcat kliknij link przykłady, a następnie kliknij przykłady JSP.

następnie otwórz domyślne Obiekty wykonujące aplikację webową. Rysunek 3 pokazuje wyjście dla tej aplikacji. Poświęć chwilę, aby przestudiować ten wynik.

Matthew Tyson

Rysunek 3., Przykładowe wyjście JSP

parametry żądania

Obiekty niejawne są wbudowanymi obiektami dostępnymi za pośrednictwem strony JSP. Jako programista stron internetowych będziesz używać tych obiektów do tworzenia dostępu do takich rzeczy, jak parametry żądania, które są danymi wysyłanymi z przeglądarki podczas wysyłania żądania HTTP. Rozważ adres URL przeglądarki dla obiektów niejawnych:

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" %>

składnia jest dość jasna: importuje wymagane funkcje i przypisuje im prefiks (w tym przypadku „fn”), który może być używany we wszystkich poniższych wyrażeniach.,

standardowa biblioteka znaczników JSP (JSTL)

liniaimport w liście 2 wywołańtaglib, która jest skrótem od biblioteki znaczników, lub (w tym przypadku) standardowa biblioteka znaczników JSP (JSTL). Biblioteki znaczników definiują bity funkcji wielokrotnego użytku dla JSP. JSTL jest standardową biblioteką tagów, zawierającą zbiór taglib wysyłanych z każdą implementacją servleta i JSP, w tym Tomcata.

biblioteka „functions” jest tylko jednym z taglib dołączonych do JSTL., Innym powszechnym taglib jest biblioteka core, którą importujesz wywołując:

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

podobnie jak „fn”, oznaczenie „c” jest konwencjonalne i będzie widoczne na większości stron JSP.

zabezpieczanie stron JSP

przykładowym znacznikiem z biblioteki głównej jest

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

, który wypisuje znacznik<div> z już uzyskanym XML. Ta funkcja jest ważna, ponieważ przesyłanie treści bezpośrednio do strony internetowej za pomocą ${variable} otwiera drzwi do ataków script injection., Ta prosta funkcja służy do ochrony stron internetowych przed takimi atakami.

biblioteka core zawiera również różne tagi do iteracji i kontroli przepływu (jak obsługa IF/ELSE).

wywołanie taglib na stronach JSP

teraz, gdy już znasz podstawy JSP, dokonajmy zmiany w przykładowej aplikacji. Aby rozpocząć, znajdź aplikację obiektu ukrytego w instalacji Tomcat. Ścieżka jest: apache-tomcat-8.5.33/webapps/examples/jsp/jsp2/el.,

otwórz ten plik i zlokalizuj functions include:

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

tuż pod tą linią Dodaj nową linię:

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

naciśnij Return i dodaj kolejną nową linię:

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

teraz przeładuj stronę pod adresem http://localhost:8080/examples/jsp/jsp2/el/implicit-objects.jsp?foo=bar.

powinieneś zobaczyć swoje aktualizacje odzwierciedlone w wynikach.

układ aplikacji webowej JSP

Tomcat jest zgodny ze standardowym układem dla stron Java servlet i JSP., Ogólna struktura to folder z nazwą aplikacji, który jest wdrożony w katalogu Tomcat /webapps.

w aplikacji obiekty ukryte aplikacja jest/examples. Otwarcie tego folderu ujawnia trzy ważne dzieci: katalog /WEB-INF, plik index.html I Zestaw innych katalogów.

katalogWEB-INF zawiera metadane informujące o uruchomieniu aplikacji Tomcat.

reszta treści, w tym indeks.,html, jest bezpośrednio dostępny, tak jak w typowym serwerze WWW. Podobnie, implicit-objects.jsp jest dostępna do wyświetlenia i jest automatycznie obsługiwana jako strona JSP (Nie strona HTML) przez serwer.

Architektura Request-response

w typowej aplikacji servlets / JSP serwlety odbierają żądania i współdziałają z komponentami i usługami po stronie serwera (takimi jak baza danych), aby je spełnić. Po przetworzeniu, wynik żądania jest przesyłany do strony JSP, która przedstawia odpowiedź.,

podczas wysyłania odpowiedzi na żądanie na stronę JSP servlet używa następującej składni:

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

wszelkie dane, które Servlet wstawił do różnych zakresów JSP, będą dostępne dla JSP. Zakres to po prostu zakres życia danego obiektu. Obiekty Request I response są objęte zakresem żądania, co oznacza, że działają przez czas trwania żądania. Inne zakresy obejmują zakres strony (żyjący tak długo, jak strona JSP) i zakres sesji (kończący się, gdy użytkownik kończy daną sesję).,

JavaServer Pages to znana i wszechstronna technologia do tworzenia widoków aplikacji internetowych Java. W połączeniu z serwletami, strony JSP są bardzo wydajne i zapewniają dostęp do całego zakresu możliwości Javy. Chociaż JSP może nie być pierwszym wyborem do tworzenia nowoczesnej aplikacji internetowej Java, napotkasz strony JSP w starszych aplikacjach. Jest to również dobry wybór dla prostszych aplikacji, w których chcesz szybko podłączyć nakładkę HTML do kodu Java po stronie serwera., Znaczniki JSTL są w stanie obsłużyć większość wymagań aplikacji internetowych, a biblioteki innych firm rozszerzają tę funkcjonalność dla określonych technologii i przypadków użycia.

Share

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *