JSP (ang. JavaServlet Pages) – technologia umożliwiająca tworzenie dynamicznych dokumentów WWW w formatach HTML, XHTML, DHTML oraz XML z wykorzystaniem języka Java, wplecionego w kod HTML danej strony. W tym aspekcie, jest to rozwiązanie podobne do PHP.
Strona JSP w procesie translacji jest zamieniana na serwlet (z reguły mała aplikacja napisana w Javie uruchamiana po stronie serwera w kontenerze serwletów). Każde wywołanie strony JSP z poziomu klienta (przeglądarki) wykonywane jest przez skompilowany serwlet. Jeśli użyta zostanie prekompilacja (kompilacja wstępna) to już podczas uruchamiania aplikacji wszystkie strony JSP zostaną przetłumaczone na serwlety.
Elementy strony JSP
[edytuj | edytuj kod]Strony JSP składają się z następujących elementów:
- treść statyczna - przepisywana bez modyfikacji do generowanego dokumentu
- dyrektywy JSP - informacje kontrolujące proces generowania dokumentu
- elementy skryptowe - skryplety (kod w języku Java kontrolujący proces generowania dokumentu) oraz elementy składniowe tzw. Expression Language
- akcje JSP - tagi XML wywołujące określone metody serwerowe
Przykładowa strona JSP
[edytuj | edytuj kod] <%@ page language="java" contentType="text/html; charset=ISO-8859-2"
pageEncoding="ISO-8859-2"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%! int k=5; %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2"/>
<title>Przykładowa strona JSP</title>
</head>
<body>
Aktualny czas: <%=java.util.Calendar.getInstance().getTime()%>
<%
for (int i=0; i<k; ++i) {
%>
Liczba: <%=i%> <br />
<%
}
%>
</body>
</html>
- Wiersze 1-2 - dyrektywa ustawiająca typ zawartości, kodowanie itp.
- Wiersz 5 - skryplet deklarujący zmienną języka Java
- Wiersz 12 - skryplet zwracający wartość zmiennej języka Java
- Wiersze 13-15, 16 i 17-19 - skryplety sterujące generowaniem dokumentu
Pozostałe linie zawierają czysty kod HTML.
Kolejny przykład
[edytuj | edytuj kod]Powyższa pętla (linia 13-19). zapisana prościej przy wykorzystaniu biblioteki core ze zbioru JSTL i języka wyrażeń EL (ang. Expression Language).
...
<c:forEach var="i" begin="0" end="4" step="1">
Liczba: ${i} <br />
</c:forEach>
...