Können wir ein Servlet ohne Servlet-Mapping im web.xml-Eintrag aufrufen?

8

In einem der Code sah ich, dass es keine <servlet-mapping> -Tags gab und nur seine wie unten deklariert

%Vor%

kann dies funktionieren ohne <servlet-mapping> und Arbeit an <load-on-startup>1</load-on-startup> ??

Dieses Servlet wird beim Serverstart geladen, um eine Verbindung zur Datenbank herzustellen und beim Caching wenig zu tun.

PS: Dies ist auf Servlet 2.0 + Version und nicht kommentiert.

danke Punith

    
Punith Raj 26.09.2012, 13:25
quelle

2 Antworten

7

Der von Ihnen gepostete Code definiert etwas, was Sie als "Initialisierungs-Servlet" bezeichnen könnten. Es wird nicht direkt von außen (über eine URL) aufgerufen, sondern vom Servlet-Container gestartet.

Es ist gültig, aber auf die Clients kann nicht zugegriffen werden. Es wird oft für Initialisierungszwecke verwendet. Sie können auf Servlets ohne <servlet-mapping> mit Servlets 3.0-Annotationen zugreifen.

Beachten Sie, dass <load-on-startup> keinen wahren / falschen Wert (0/1) enthält, sondern eine Ganzzahl, die eine Startreihenfolge darstellt. Höhere Zahl bedeutet, dass das Servlet nach die mit der niedrigeren Nummer geladen wird.

    
Piotr Nowicki 26.09.2012, 13:28
quelle
2

Dieses Muster wird häufig für die Initialisierung einer Java EE-Webanwendung verwendet. Zum Beispiel ist es ein beliebter Workaround für sehnsüchtige @Singleton Annotation, die in EJB 3.1 eingeführt wurde.

    
MaDa 26.09.2012 13:28
quelle