# Best practice JSP und Servlets



## mlit77 (21. Feb 2014)

Hallo,
hab mich schon ein wenig mit jsp und servlets JSTL auseinandergesetzt und habe verschiedenste Umsetzungen im Internet gefunden.
Jetzt möchte ich mal wissen was vorwiegend in der Praxis eingesetzt wird bzw. wie die beste Umsetzung aussieht.

Folgendes habe ich schon gesehen:
a) Ausschließliche Nutzung von Servlets: sql code in servlets inkl. Generierung der Antwortseiten
b) Ausschließliche Nutzung von JSP: Mischmasch aus Java und html Anweisungen
c) Anwendung des MVC Konzepts:
Servlets agieren als Controller bzw. leiten Anfragen weiter
JSP Seiten (Views) enthalten die sql-Anweisungen (jstl) mittels vordefinierter Tags
d) Anwendung des MVC Konzepts: Java Klassen werden analog Tabellen abgebildet.
- über Beans werden Daten ermittelt, geändert
- JSPs (Views)

Meine Frage: Sollte man es objektorientiert mit den jeweiligen Java Klassen angehen - oder eher relational (sql Anweisungen in den JSP Seiten - keine Beans).

Ich finde den Ansatz ohne Beans aber mit JSTL - sql Anweisungen in den jsp Seiten (Nutzung vordefinierter Tags) sehr praktisch und mit wenig Aufwand verbunden

Wie machen es kleine, mittlere Softwarefirmen ?

Vielen Dank.

VG mlit


----------



## fisherman (23. Mrz 2014)

Datenbankzugriffe sind Aufgabe des Models. In professionellen Projekten macht das Model das aber nicht direkt, sondern gibt diese Aufgabe ggf. über eine Vermittlungsschicht an eine Datenbank-nahe Schicht weiter, die mit Persistenz-Frameworks wie beispielsweise Hibernate/JPA realisiert wird.

Am ehesten entspricht das deinen in Punkt d) genannten Beschreibungen.

Servlets sollten nur als Controller, JSP nur als View verwendet werden.

Übungshalber und zur Erweiterung der Kenntnisse kann man natürlich alles wild durcheinander werfen, man sollte sich dabei aber bewusst sein, dass das dann nicht best practice ist, und sich auch keinen worst practice-Stil angewöhnen.

Wie das kleine und mittlere Softwarefirmen machen, hängt u.a. davon ab, welches Personal sie in der Entwicklungsabteilung haben.


----------

