Ich verwende Spring MVC und habe erfolgreich einen WebApplicationInitializer (mit dem ServletContainerInitializer von Tomcat) ohne eine web.xml-Datei eingerichtet. Hinzufügen von Filtern (wie Spring Security) und Servlets (wie Dispatcher) ist kein Problem, und sie funktionieren gut. Ich kann init-params auch einstellen, wenn ich dies tun muss.
Was ich nicht herausfinden kann, ist, wie man einige der speziellen Tags, die normalerweise in der web.xml existieren, einrichtet. Zum Beispiel möchte ich eine benutzerdefinierte 403-Fehlerseite einrichten. Normalerweise würde ich dies in web.xml mit:
tun %Vor%Aber ich kann nicht herausfinden, wie man das innerhalb des WebApplicationInitializers (der auf den ServletContext zugreifen kann) tut.
Ich habe das gleiche Problem mit Session-Timeout- und Welcome-Dateien. Ich habe ungefähr zwei Tage gesucht, aber programmgesteuert noch nicht gesehen. Ziel ist es, die Datei web.xml vollständig zu entfernen und stattdessen die Initialisierungsklasse zu verwenden.
Irgendwelche Ideen?
Sieht nicht so aus, als ob dies über WebApplicationInitializer möglich ist. Sie müssen für diese Konfiguration zusammen mit einigen anderen, die mit dieser Frage aufgelistet sind, bei web.xml bleiben - Verwenden von Spring MVC 3.1+ WebApplicationInitializer zur programmgesteuerten Konfiguration der Sitzungskonfiguration und der Fehlerseite
Für Seitenfehler siehe folgende Antwort: Wie erstelle ich einen Filter, um festzustellen, ob der Benutzer eine Seite angefordert hat, die nicht gefunden wurde?
- Machen Sie einen Filter
- Verwenden Sie HttpServletResponseWrapper und überschreiben Sie sendError () und setStatus ()
- Übergeben Sie die eingepackte Antwort über chain.doFilter (req, wrapper)
- Wenn Sie einen sendError () in Ihrem Wrapper erhalten, sehen Sie, ob es ein 404 ist.
- Ergreifen Sie eine angemessene Antwort.
Sie sollten versuchen, Ihren eigenen SessionListener zu erstellen und ihn dann dem servletContext Ihres WebApplicationInitializer hinzuzufügen.
In etwa so:
%Vor%Fügen Sie dann in Ihrem WebContentInitializer folgende Zeile hinzu:
%Vor%Tags und Links spring spring-mvc