Start Initialisierung

Problem

Oft möchte man beim Start einer JSF Applikation eine Methode ausführen oder ein Objekt in den Application Scope legen. Früher hat man das in der Methode HttpServlet.init() erledigt was bei einer JSF Anwendungen nicht möglich ist.

Lösung

Registrierung eines zweiten Servlet, das nur notwendige Initalisierungen für die Web Applikation durchführt. Mit dem Parameter load-on-startup in der Datei web.xml definiert man, dass das Initialisierungs Servlet vor dem JSF Servlet gestartet werden soll.

<servlet> <servlet-name>JSF Initialization Servlet</servlet-name> <servlet-class>de.icoding.controller.InitServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>2</load-on-startup> </servlet>

Für das Initialisierungs Servlet wird kein Servlet Mapping definiert.

Mit der Methode ServletContext.setAttribute(key,object); kann man im Initialisierungs Servlet spezielle Objekte in den Application Scope legen. Auch Scheduler können hier als separate Threads gestartet werden.

Resourcen

[1] JSF 1.2
[2] web.xml

Johannes Hammoud Start Initialisierung 07.06.2008

I Coding : Community über Java Programmierung

Sprache Englisch+-

Java JSF JavaScript HTML CSS NetBeans GlassFish MySQL

Impressum

Besuche
6307229
Heute
391