JavaServer Pages™ (JSP™) to technologia programowania dla witryn internetowych, która umożliwia bezproblemową integrację programów Java™ z normalnym funkcjonowaniem witryny internetowej oraz z aktywnymi dokumentami w języku HyperText Markup Language (HTML). Technologia może być wykorzystywana do wyświetlania danych dynamicznych lub przetwarzania danych wprowadzanych przez użytkownika. Ma również tę zaletę, że jest w stanie uzyskać dostęp do informacji na serwerze, na którym działa, i jest przenośny do dowolnego systemu lub serwera internetowego z zainstalowanym odpowiednim pakietem programów.
Jedną z największych różnic podczas tworzenia interaktywnych lub dynamicznych witryn internetowych za pomocą JavaServer Pages™ jest to, że strony można łatwo używać na dowolnym serwerze sieciowym, na którym działa program i który jest w stanie je zinterpretować. Przenośność tego typu programów jest możliwa dzięki takim programom, jak Apache Tomcat™, które mogą działać na kilku platformach i serwerach internetowych, umożliwiając obsługę JavaServer Pages™. Programy te mogą działać w tle lub na innych serwerach internetowych, aby zapewnić wymaganą funkcjonalność. Rzeczywiste strony są często czytelne dla człowieka i wyglądają jak zwykłe strony HTML z osadzoną w kodzie Java™.
Istnieje wiele różnic między JavaServer Pages™ a bardziej tradycyjnymi językami internetowymi. Jednym z nich jest to, że istnieje niewiele ograniczeń bezpieczeństwa w komunikacji między serwerem sieciowym a stronami, ponieważ są one zintegrowane. Stanowi to wyraźny kontrast w stosunku do innych języków wspólnego interfejsu bramy (CGI), które są uruchamiane niezależnie od serwera WWW i mają poważne ograniczenia dotyczące działań, które mogą wykonywać.
Bardzo wygodna różnica dla programistów polega na tym, że kod Java™ można umieścić bezpośrednio na stronie HTML i wykonać z poziomu strony, tak jakby był częścią innego bloku kodu znajdującego się w innym miejscu. Dzięki Java Server Pages™ można załadować stronę HTML, a dynamicznie generowane fragmenty po prostu wstawić w razie potrzeby. Różni się to od wielu języków CGI, w których wykonywany kod źródłowy musi generować całą stronę HTML z poziomu programu. Proces ten można uzupełnić, pozwalając serwerowi na kompilację kodu Java™ w locie zamiast go wstępnie kompilować, co znacznie ułatwia wprowadzanie zmian i konserwację witryny.
JavaServer Pages™ oferuje bardziej zaawansowany interfejs programowania niż inne podobne języki. Niektóre języki skryptowe są używane, ponieważ są łatwo dostępne lub są specjalnie zaprojektowane do wykonywania podzbioru funkcji sieciowych. Programista WWW korzystający z JavaServer Pages™ ma dostęp do niemal całego języka Java™ podczas tworzenia witryny internetowej, co pozwala na korzystanie z zaawansowanych funkcji oraz możliwość używania i ładowania nowych bibliotek w razie potrzeby. Jest to potężna funkcja, która może usprawnić dostęp do baz danych, korzystać z nowych protokołów i komunikować się ze zdalnymi serwerami.