Wenn Ihre Webanwendung komplex genug ist, dass die Anzahl der Aktionen die Anzahl der Servlets überschreiten kann, die Sie verarbeiten können, dann sollten Sie ein Webframework betrachten, um dieses Problem zu abstrahieren .
Ihre Servlet-Schicht ein paar Dinge nur tun sollten:
- Yank Eingabe von Anfrage
- Dispatch-Objekte Sitzungsstatus verwalten zu/von Geschäftsobjektschicht
- Push-Daten in die Antwort
- Weiterleiten an eine Ansicht
- Handle Fehler/schlechte Eingabe/Ausgabe
Fast alles andere, das in ein Servlet gesteckt wird, ist eine schlechte Idee.
Wenn Sie einige einfache Richtlinien befolgen, kann ein einfaches Servlet einen Eingabeprozessor aufrufen, um Daten von der Anfrage und von Daten, die sich in der Sitzung befinden, in ein geeignetes Objekt umzuwandeln. Dieses Objekt kann dann an eine BizObject-Ebene übergeben werden. Diese Ebene gibt Informationen zurück, die möglicherweise in der Sitzung gespeichert wurden, und einige Objekte, die an die Ansicht übergeben werden.
Ich erzwang eine 40-Zeilen-Regel für Servlet-Service-Methoden. Wenn Sie über 40 Zeilen gingen, erwartete ich eine gute Erklärung.
Ich arbeitete an einer 80k Linie Java Web App, die zwei Servlets hatte, keine 40 Zeilen überschritten. Es behandelte ungefähr 60 Formen/Zustände.
Zu keinem Zeitpunkt dachte ich, es wäre einfacher zu verwalten/pflegen/ändern die App, wenn mehr Code im Servlet wäre.
Nur als Hinweis, wenn Leute über ein einzelnes Servlet sprechen, denken sie entweder an Front Controller Pattern oder ihre Java-spezifische Annahme, die als MVC Model 2 bekannt ist und wenn Leute über mehrere Servlets sprechen, denken sie daran traditionelles MVC-Muster. – Esko