Vom Nutzen der Servlets
Servlets sind im Vergleich zu JSP die ältere Technologie. Während wir uns bei JSP bemühen, möglichst wenig Java Code in einem HTML Gerüst unterzubringen, liegt bei Servlets der Focus auf der Java Programmierung. Servlets sind Java Klassen (mit *.java -Endung), die reinen Java - Code enthalten und wie JavaBeans kompiliert werden. Sie müssen auf dem Server installiert (deployed) werden. HTML wird mittels „print"-Anweisungen erzeugt. Sie können sich das Verhältnis von JSP und Servlets etwa so vorstellen wie den Unterschied zwischen serverseitigen Scriptsprachen (PHP, ASP) und klassischen CGI (Perl, C).
Andererseits sind auch JSP eine spezielle Form von Servlets, die durch die Servlet-Engine automatisch erzeugt werden. Tomcat ebenso wie andere Servlet-Engines besitzen Parser, die eine JSP-Datei in eine *.java Datei umschreiben, die den Servlet-Spezifikationen entspricht und zur Ausführung kompiliert wird. Prinzipiell können Sie daher mit JSP dasselbe machen wie mit Servlets und umgekehrt. Sie sollten sich aber jetzt nicht entscheiden, das eine oder das andere zu lernen, sondern JSP und Servlets als zwei verschiedene Wege begreifen, das Gewünschte zu erreichen.
Einige grundsätzliche Überlegungen zur Frage JSP oder Servlet:
JSP sollten Sie verwenden:
- wenn Seiteninhalte insbesondere Texte häufig geändert werden. JSP brauchen nicht deployed (installiert) zu werden sondern werden einfach ins entsprechende Verzeichnis kopiert und kompilieren automatisch auch bei laufendem Server,
- wenn Seiten wenig Funktionalität, aber aufwendiges HTML beinhalten. HTML mit print-Anweisungen zu schreiben ist mühsam, fehleranfällig und dauert lange.
- wenn Sie schnell etwas zusammenschreiben müssen, was möglichst gestern online gehen sollte.
Servlets bieten sich an:
- bei aufwändiger Programmierung. Servlets lassen sich wie andere Java-Klassen mit modernen Entwicklungsumgebungen komfortabel entwickeln, debuggen und testen.
- wenn Umgebungsparameter zentral konfiguriert werden sollen. Mehr dazu unten.
- wenn Sie auf eine Datenbank oder andere Services im Backend zugreifen. Servlets lassen sich gut in ein größeres Java Projekt integrieren und im Zusammenhang mit den entsprechenden Services entwickeln und testen.
- wenn Sie anderes als HTML oder XML ausgeben, spezielle Header schreiben oder mit offenen Connections arbeiten.
Brauchen Sie eine umfangreichen Programmierung mit Backend-Anbindung und aufwendiges HTML in einem, so nutzen Sie Servlets zusammen mit JSP.