2010-11-30 3 views
0

Im eine Web-Anwendung mit dem MVC-Entwurfsmuster zu schreiben .. sollte die Anwendung auf einen RMI-Server-Bereitstellung der Business-Teil (Modell)instantiate Modellobjekt in jsp Webprojekt

mein Problem verbinden ist, ich weiß nicht, wo ich sollte die Modellklasse instanziiert und auf die RMI, Zugang zu allen Servlets bereitstellt .. ich habe eine ServletContextListener und teilten sich die Referenz auf dem Servlet-Kontext verbinden, aber ich glaube nicht, dass der richtige Weg ist es im Voraus

dank zu tun

Antwort

0

Sie können Ihre Modell-/Business-Klassen über Ihren Controller instanziieren. Besser noch eine einzige Instanz (Just Create One) von jedem am Anfang der Anwendung. Sie können auch darüber faulenzen.

Instanziierung von Modell-/Business-Klassen von Ihren JSPs bedeutet deren Instanziierung aus View. Das verletzt natürlich das MVC-Muster.

Entweder Sie können Ihre Modell/Business-Klassen als Singleton, oder behalten Sie die Referenz im Servlet-Kontext. Beides ist in Ordnung und letzteres ist testfreundlicher. Ersteres kann auch testfreundlich gemacht werden, wenn Sie den Konstruktor nicht als private angeben, sondern nur ein gemeinsames Verständnis haben, dass es nicht dafür da ist, es überall zu instantiieren.

+0

so hat das Laden sie auf dem ServletContextListener kein Problem? – Daniel

+0

@Daniel: Nein, 'contextInitialized()' erhält in der Tat eine Benachrichtigung beim Start des Initialisierungsprozesses und wird vor jedem Servlet geladen. Es ist besser, es in einem Servlet zu tun, das 'OnLoad = 1 'ist und die Verweise im Servlet-Kontext behalten. –