PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : JSP -> Servlet -> Bean -> JSP ?


jesbo
08.05.2007, 08:40
Hallo,

für eine Belegarbeit innerhalb meines Studiums muss ich eine Web-Applikation schreiben, die 3 Services zur Verfügung stellt.

Ich habe mir gedacht, das ich eine Startseite habe (.jsp) und über Links auf ein Vermittler (Servlet) zu greife und dieses mit Hilfe von if...else bestimmt welches WorkerBean aufgerufen werden soll. Dieses wiederum soll dann die Ausgabe auf einer .jsp machen.

Nun ist meine Frage,
1. wie sage ich dem Servlet welches WorkerBean es nutzen soll?
2. wie sage ich dem WorkerBean das es eine .jsp aufrufen soll, welche dann die z.B. errechneten Werte anzeigt?

Oder liege ich mit meiner Überlegung komplett falsch und muss

Startseite --> Servlet --> Bean --> Servlet --> .jsp ?

Danke schonmal!!!


eViL_oNe
08.05.2007, 08:46
zur Ausgabe in .jsp eignet sich etwa der RequestDispatcher. Allerdings würde ich davon abraten, die Bean dazu zu missbrauchen, auf eine .jsp zu forwarden. Das würde bedeuten, dass die ganze Anwendung mit Parametern Request und Response sowie den ganzen Exceptions "verseucht" ist. Bereite in der Bean die Ausgabe vor und gib sie ans Servlet zurück, welches darauf hin die .jsp aufruft

perdian
08.05.2007, 09:30
und dieses mit Hilfe von if...else bestimmt welches WorkerBean aufgerufen werden soll.If-Else-Kaskaden im Code von vorneherein vorzusehen ist äußerst schlecher Stil.

Oder liege ich mit meiner Überlegung komplett falsch und muss
Startseite --> Servlet --> Bean --> Servlet --> .jsp ?Prinzipiell genau das. Google mal nach "Model View Controller (MVC)" und mach dich mit dem Konzept vertraut.

eViL_oNe
08.05.2007, 19:54
Nachtrag, auch weil die Terminologie MVC gefallen ist: Für mich übernimmt ein Servlet die Aufgabe eines Controllers, eine JSP die der View. Die Kommunikation zwischen den beiden kann etwa durch die Beans geschehen. Der Controller leitet nur weiter auf eine View, er übernimmt allerdings keine Aufgaben von ihr (etwa die Aufbereitung von Daten für die Oberfläche!).

Das folgende ist dann meine practice im Bezug auf MVC, ich habe etwa so meine DA in J2EE aufgebaut -- man kann natürlich auch anderer Meinung sein ;)

Jedes Servlet würde ich als einen UseCase ansehen. In seltenen Fällen, etwa wenn mehrere UseCases nur leichte Variationen einer Funktionalität sind (etw a das Neuanlegen und Bearbeiten von Objekten) würde ich mehrere UseCases zu einem übergeordneten (Verwaltung von Objekten) verschmelzen und durch ein Servlet modellieren. Jedes Servlet ist nach dem gleichen Muster aufgebaut:

a. Forwarden auf eine JSP (RequestDispatcher.forward)
b. Aufbereitung des Requests und dessen Übergabe an die Geschäftslogik, die wiederum auf das Model delegiert

jesbo
08.05.2007, 20:51
ok...danke erstmal für die antworten.

ich werd es dann mal ausprobieren mit weiterleitung von servlet an bean und wieder zurück und die jsp einzig als ausgabe nutzen.