# MVC mit Bean, JSP und Servlet



## weeedoo (9. Mrz 2011)

Hallo miteinander,
ich möchte das unten dargestellte Muster realisieren.
Mein Servlet erstellt als Reaktion auf den Request, mithilfe einer EJB, eine Instanz einer "Bean-tauglichen" Klasse und delegiert den Request an die entsprechende JSP weiter. Jetzt steh ich leider auf dem Schlauch, wie die JSP eine Referenz auf die erzeugte Bean bekommt.
Höchstwahrscheinlich ist das trivial, aber als JEE noob würde ich mich über eine kleine Hilfestellung freuen  






Quelle: jGuru: JavaServer Pages Fundamentals, Short Course Contents

Besten Dank und Gruß,
Jan


----------



## maki (9. Mrz 2011)

Du kannst die Bean an den Request ranhängen oder in einem der Scope unterbringen.


----------



## weeedoo (9. Mrz 2011)

ooookay, ich dachte ich müsste zwanghaft diese jsp:useBean Direktive benutzen   

Vielen Dank


----------



## maki (9. Mrz 2011)

Kannst du natürlich auch, je nachdem.

Nebenbei, JSPs sind Legacy, werden nicht mehr weiterentwickelt, aber in alten Projekten noch sehr oft anzutreffen.


----------



## weeedoo (9. Mrz 2011)

Die Wahl fiel auf JSP da recht flott ein erster Prototyp stehen muss und die Lernkurve erscheint mir flacher als zB bei JSF, aber danke für die Info.

Würde das Einbinden der Instanz via useBean irgendwelche Vorteile bringen?
Und wäre folgende Vorgehensweise richtig?

[XML]
<jsp:useBean id="myBean" scope="request" class="KlasseXY" />

<%
    myBean=(KlasseXY)request.getAttribute("xyz");
%>
[/XML]


----------



## maki (9. Mrz 2011)

Scriptlets sind immer zu vermeiden, wird 'ne Katastrophe auf Dauer wenn man XML, HTML, JavaScript, CSS und Java einer einzigen Datei hat.
Gibt ja genug Taglibs für JSP, JSTL als Beispiel.

Nebenbei bemerkt, was du dsa machst gehört zu JEE, Java WebApps sind keine triviale Sache, in keinsterweise zB. mit PHP zu vergleichen, man braucht einiges mehr an Hintergrundwissen als Anfänger normalerweise haben.
Schnellgesschriebene Prototypen sind leider eine weitverbreitete Seuche


----------



## mvitz-guest (9. Mrz 2011)

Noch leichter geht es übrigens über die Expression Language (EL). Wenn du eine Bean in den request-Scoped bindest, kannst du anstelle deines Beispieles einfach:

${myBean.xyz}

schreiben.


----------

