Wie kann ich in einer Vaadin 7 App auf ServletContext zugreifen?

7

Wie greife ich auf das aktuelle ServletContext von meinem Vaadin aus zu? 7 App?

Ich möchte das Objekt ServletContext verwenden setAttribute , getAttribute , removeAttribute und getAttributeNames Methoden, um einen globalen Status für meine Vaadin App zu verwalten.

Wenn diese Methoden zu diesem Zweck nicht für Vaadin-Apps geeignet sind, erklären Sie dies bitte.

    
Basil Bourque 13.01.2015, 23:45
quelle

1 Antwort

20

tl; dr

%Vor%

VaadinServlet

Die VaadinServlet -Klasse erbt ein getServletContext Methode.

Um das VaadinServlet -Objekt zu erhalten, rufen Sie die statische Klassenmethode getCurrent .

Von fast überall in Ihrer Vaadin App aus, machen Sie so etwas:

%Vor%

CAVEAT
Funktioniert nicht in Hintergrundthreads. In von Ihnen gestarteten Threads gibt dieser Befehl NULL zurück. Wie dokumentiert:

  

In anderen Fällen (z. B. aus Hintergrundthreads, die auf andere Weise gestartet wurden) wird das aktuelle Servlet nicht automatisch definiert.

@WebListener ( ServletContextListener )

Übrigens möchten Sie wahrscheinlich einen solchen globalen Status behandeln, wenn die Webanwendung im Container bereitgestellt (gestartet) wird.

Sie können sich mit der @WebListener Anmerkung zu Ihrer Klasse, die die ServletContextListener -Schnittstelle implementiert. Beide Methoden dieser Schnittstelle, contextInitialized und contextDestroyed , Es wird ein ServletContextEvent übergeben, über das Sie auf ServletContext Objekt durch Aufruf von %Co_de% .

%Vor%

Dieser Hook wird als Teil Ihrer Vaadin-App aufgerufen, die initialisiert wird, bevor Sie das Vaadin-Servlet (oder einen anderen Servlet / Filter in Ihrer Web-App) ausführen. Um das Dokument für die Methode getServletContext zu zitieren:

  

Erhält eine Benachrichtigung, dass der Initialisierungsvorgang der Webanwendung gestartet wird.   Alle ServletContextListeners werden über die Kontextinitialisierung benachrichtigt, bevor Filter oder Servlets in der Webanwendung initialisiert werden.

    
Basil Bourque 14.01.2015, 00:21
quelle

Tags und Links