JavaServer Page
In HTML-Seiten kann Java-Code direkt als sog. Scriptlets eingebettet werden und es können JavaBeans benutzt werden. Solche JavaServer Pages werden "hinter den Kulissen" in Servlets umgesetzt, die dann auf dem Webserver ausgeführt werden. Damit können dynamische Inhalte erzeugt werden. Java ermöglicht serverseitig den Zugriff zu Datenbanken (JDBC) und im Rahmen von J2EE vieles andere mehr. So können auf Basis der Web-Technologie (Web-Browser, Web-Server und J2EE) ganze "Web-Applikationen" erstellt werden.
Diese serverseitige Java-Programmierung dient zur Ablösung der uralten CGI-Technologie, die viele Nachteile hatte.
Alle JSP-Elemente können in der HTML-Seite auch in strikter XML-Form abgefasst werden.
Da das Servlet zuerst auf dem Web-Server ausgeführt wird und dann das Ergebnis als eine ganz normale HTML-Seite an den Web-Browser geschickt wird, können solche Web-Applikationen mit beliebigen normalen Web-Browsern laufen. Lediglich der Web-Server muss in der Lage sein, die JSPs/Servlets auszuführen. Das kann der Apache-Web-Server mit Erweiterungen zur JSP-Servlet-Umsetzung und zur Servlet-Ausführung (sog. Servlet Engines) auf vielen Plattformen. JavaServer Pages sind somit eine offene Technologie auf Basis von Java.
JSPs wurden von Sun auf die bereits länger vorhandene Servlet-Technologie "aufgesattelt" (1998 JSP 0.90), um einerseits Microsofts ASPs zu begegnen und andererseits die Anwendung der Servlet-Technologie zu vereinfachen. In Servlets mussten bis zur Erfindung der JSPs nämlich grosse Mengen HTML-Code mitgeführt werden. Diese statischen HTML-Teile werden nun in die JavaServer Page ausgelagert, sodass im Servlet nur noch die dynamische Verarbeitungslogik verbleibt. Es besteht nun allerdings die umgekehrte Möglichkeit, die als statisch gedachte JSP mit grossen Mengen Java-Scriptlets anzureicheren und so Spaghetticode auf höherem Niveau zu erreichen. Es ist also entwicklerseitig eine hohe Disziplin erforderlich, sich an den Developer Guide von Sun zu halten. Hier kommt das Entwurfsmuster "Model-View-Controller" und auch die JSP-Tag-Libraries ins Spiel.
Siehe: Apache, Active Server Pages, Java, JDBC, JavaBeans, Servlet, Spaghetticode, Web-Server, XML