JavaServer Pages (JSP) to technologia programowania po stronie serwera, która umożliwia tworzenie dynamicznych stron internetowych i aplikacji. Odbywa się to poprzez osadzenie kodu Java w HTML, XML, DHTML lub innych typach dokumentów. Gdy klient, taki jak przeglądarka internetowa, wysyła żądanie do kontenera aplikacji Java, którym zazwyczaj jest serwer sieciowy, strona statyczna jest konwertowana w tle i wyświetlana jako zawartość dynamiczna w przeglądarce. Spekulowano, że JSP został wydany, aby konkurować z PHP, powszechnie używanym językiem programowania o otwartym kodzie źródłowym.
Chociaż JSP jest czasami kojarzony z Active Server Pages (ASP), w rzeczywistości są to dwie różne technologie. Największą różnicą jest to, że ASP jest rozwijany przez Microsoft® iw dużej mierze uważany za framework. Wynika to z jego zdolności do obsługi szerokiej gamy języków programowania obsługiwanych przez Microsoft® Component Object Model (COM). Stworzony przez Sun Microsystems® język JSP jest uważany za język programowania zorientowanego obiektowo.
Technologia JavaServer Pages umożliwia wstawianie kodu Java i wybranych predefiniowanych działań do statycznej zawartości strony internetowej. Ten kod jest kompilowany w czasie wykonywania dla każdego żądania skierowanego do strony. Serwer, kod Java i/lub dowolne niestandardowe oprogramowanie, które mogło zostać zaimplementowane, jest kontrolowane przez wstępnie zainstalowaną aplikację, znaną jako maszyna wirtualna (VM). Ta maszyna wirtualna integruje się z systemem operacyjnym hosta. Najpopularniejszą maszyną wirtualną używaną do uruchamiania aplikacji JSP jest Java Virtual Machine™ (JVM).
Z technicznego punktu widzenia JSP można postrzegać jako abstrakcję wysokiego poziomu serwletów Java, ponieważ zasadniczo działają na nich. Strony JavaServer są zwykle kompilowane przez kompilator Java. Ten kompilator albo generuje serwlety w postaci kodu Java, albo kodu bajtowego, który można bezpośrednio wykonać. Ponieważ można je zinterpretować, gdy tylko zostaną wysłane żądania, czas potrzebny na konwersję strony statycznej na zawartość dynamiczną jest często znacznie skrócony.
Wielu programistów preferuje JSP, ponieważ upraszcza programowanie, umożliwiając wstawianie kodu Java bezpośrednio do standardowych plików tekstowych. Jest to również niezależny, wieloplatformowy, przenośny język, który jest zgodny z mottem Java „napisz raz, uruchom wszędzie”. Oferując możliwość oddzielenia treści od podstawy strony, język pozwala programistom na tworzenie nowego kodu niezależnie od dotychczasowej pracy. JSP jest w dużej mierze uważany za solidną i wydajną technologię zarówno dla aspektów programowania po stronie serwera, jak i klienta.