Benny: JSP soll empfangene Bean an ein Servlet weiterleiten?!

Hi.

Also ich hab ein Servlet welches eine JSP "A" aufruft und dieser im Request eine Bean "B" übergibt. In dieser JSP hab ich nun einen Button, der eine neue JSP "C" über ein Servlet "D" aufruft. In diesem Servlet benötige ich nun einige Daten aus der, in der ersten JSP verwendeten Bean "B". Ich könnte natürlich in der JSP "A" die benötigten Daten auslesen, in Inputs packen und mit einer Form ans Servlet "D" übergeben. Das wäre allerdings recht umständlich und nicht im Sinne der Objektorientierung.

Die Frage ist also, ob ich die Bean "B" in einem anderen Servlet (als das in dem ich die Bean erzeuge) verwenden kann.

Liebe Grüße und vielen Dank im Voraus

  1. Servus!

    [...]
    Die Frage ist also, ob ich die Bean "B" in einem anderen Servlet (als das in dem ich die Bean erzeuge) verwenden kann.

    Nur, wenn Du Bean "B" in die HttpSession legst und dafür sorgst, dass der Benutzer diese Session auch im Fall von ausgeschalteten Cookies (URL-Rewriting) behält.
    Dein Argument "Objektorientierung" ist hier nicht ganz stichhaltig, weil der zustandslose Request/Response-Zyklus durch die Verwendung von HTTP (ich gehe davon aus, dass es sich um ein HttpServlet handelt) vorgegeben ist.

    Schöne Grüße,

    Peter

    1. Wenn ich das also richtig verstehe, ist die Bean "B" nach aufruf der JSP "A" nicht merh vorhanden und kann deswegen nicht in einem anderen Servlet verwendet werden. Es sei denn, ich lege die Bean in der Session ab. Richtig?

      1. Wenn ich das also richtig verstehe, ist die Bean "B" nach aufruf der JSP "A" nicht merh vorhanden und kann deswegen nicht in einem anderen Servlet verwendet werden. Es sei denn, ich lege die Bean in der Session ab. Richtig?

        ob diese Bean bereits nach dem kompletten Absenden des Requests für den Garbage Collector freigegeben wird, kann ich Dir aus dem Kopf nicht sagen (das dürfte die für Deine verwendete Version relevante Spezifikation regeln), aber in der Praxis ist es so: Objekte im Scope des Requests sind nach der Abarbeitung des Requests (d.h. aller Servlets und Filter für diesen Request) nicht mehr zugänglich.