Java Server Pages (JSP) jest technologią służącą do tworzenia dynamicznych stron WWW. JSP wchodzi w skład platformy J2EE, co oznacza, że produkty wspierające J2EE potrafią obsługiwać strony JSP. Obecna specyfikacja JSP ma numer 1.2 i opiera się na specyfikacji serwletów o numerze 2.3.
Zalety JSP:
przenośność - strony JSP można tworzyć i uruchamiać na dowolnej platformie. Cecha ta wynika po części z właściwości języka Java.
wysoka jakość narzędzi - do tworzenia stron JSP stworzono wiele bardzo dobrych narzędzi. Należą do nich: Forte for Java, Oracle JDeveloper, Borland JBuilder. Pozwalają one także na testowanie działania stron.
ścisły podział ról przy tworzeniu stron WWW - wynika z rozdzielenia logiki i prezentacji na stronie. Oznacza to, że jedna osoba może zajmować się grafiką i projektowaniem rozmieszczenia informacji na stronie. Inna osoba w tym czasie może zajmować się pisaniem komponentów odpowiedzialnych za dostarczenie tej informacji, po przetworzeniu danych uzyskanych z innych źródeł (np. bazy danych).
wielokrotne używanie komponentów i bibliotek tagów - komponenty i biblioteki tagów istnieją niezależnie od stron, na których są wykorzystywane.
Strona JSP to dokument tekstowy opisujący, jak przetwarzać żądanie (request), aby otrzymać odpowiedź (response). Dokument taki składa się z elementów HTML (lub XML) wzbogaconych przez dodanie składników pozwalających na dynamiczne generowanie zawartości strony. Elementy dodawane przez JSP to:
Zostaną one opisane w dalszej części prezentacji.
Strona JSP przy pierwszym uruchomieniu jest tłumaczona do serwletu, a następnie kompilowana. Przy obsłudze żądania wykonywany jest więc już skompilowany kod Javy. Aby uwzględnić tę różnicę, w specyfikacji wprowadzono podział na:
fazę tłumaczenia strony
fazę obsługi żądania klienta
Strona JSP jest wykonywana w tzw. kontenerze JSP, który dostarcza jej usług wymaganych przez specyfikację. Kontener JSP może być modułem serwera WWW lub częścią serwera aplikacji. Musi obsługiwać protokół HTTP.
Strony JSP wypełniają te same zadania, które mogą być realizowane przez serwlety. Powstaje więc pytanie, dlaczego je wprowadzono i czy istnieją problemy, przy których JSP wykazuje przewagę nad serwletami?
stron JSP należy używać, kiedy odpowiedź dla użytkownika ma postać tekstową
serwlety wykazują przewagę, gdy dane dla użytkownika należy przesłać w postaci binarnej oraz gdy np. należy przekierować żądanie klienta