1. Einführung in Web.xml -Konfigurationsknoten
(1) Kontext-Param
Formatdefinition
<Context-Param> <param-name> contextconfigLocation </param-name> <param-value> classPath: Spring/Spring-mybatis.xml </param-value> </context-param>
Wirkung:
- Dieses Element wird verwendet, um die Kontextinitialisierungsparameter innerhalb des Anwendungsbereichs (das gesamte Webprojekt) zu deklarieren.
- Der Paramenname legt den Parameternamen des Kontextes fest. Muss ein eindeutiger Name sein
- Der Param-Wert legt den Wert des Parameternamens fest. Das Beispiel hier wird der Speicherort der Federkonfigurationsdatei angeben.
(2) Zuhörer
Formatdefinition
// Listenklasse Gibt die Hörklasse an, die servletContextListener erbt. Es enthält die Initialisierungsmethode kontextinitialisiert (ServletConteEvent Ereignis) und die Center-Methode contextDestoryed (servletContexEvent Ereignis) <Hörer> <hörerklasse> org.springframework.web.Context.ContextloaderListener </Hörer-Class> </Listener>
Funktion: Dieses Element wird verwendet, um eine Hörerklasse zu registrieren. Sie können Benachrichtigungen darüber erhalten, wann ein Ereignis auftritt und was als Antwort verwendet werden soll. Event -Hörer werden beim Festlegen, Ändern und Löschen von Sitzungen oder Servlet -Umgebungen benachrichtigt. Oft in Kombination mit Kontext-Param verwendet.
(3) Filter
Formatdefinition
<Filter> <Filter-name> charakteritätsgerichtete </filter-name> <filterklasse> org.springframework.web.filter.CharactercodingFilter </filter-classe> <init-param> </param-VAME </param-name> <param-value> utf-8 </param-value> </init-param> </filter> <filter-mapping> <filter-name> charakterencodierungfilter </filter-name> <URL-Muster>/*</url-pattern> </filtermapping>
Funktion: Wird verwendet, um einen Filter für Webcontainer anzugeben. Der Filter kann Benutzeranfragen vor einer Anforderung vorstellen, bevor eine Anforderung das Servlet erreicht oder HTTP -Antworten verarbeitet, wenn Sie das Servlet verlassen. Führen Sie vor dem Ausführen des Servlets zunächst das Filterprogramm aus und führen Sie einige Vorverarbeitungsarbeiten dafür durch. Ändern Sie die Anfrage und Antwort entsprechend den Programmanforderungen; Fangen Sie die Ausführung des Servlets ab, nachdem das Servlet aufgerufen wurde.
(4) Servlet
- Formatdefinition
// Feder MVC konfigurieren und das Servlet angeben, um die Anforderung zu verarbeiten. Es gibt zwei Möglichkeiten zu: // 1. Die Standardadresse der MVC-Konfigurationsdatei lautet: /web-inf/$ Sie können den Speicherort der MVC -Konfigurationsdatei durch Konfiguration ändern. Sie müssen den Speicherort der MVC -Konfigurationsdatei beim Konfigurieren des DispatcherServlet angeben. // Die zweite Methode wird hier verwendet. <param-value> classPath: fing/springmvc.xml </param-value> </init-param> <Load-on-Startups> 1 </load-on-Startup> </servlet> <Servlet-Mapping> <Servlet-name> DispatchServlet </servlet-name> <url-pattern>*. shtml </url-pattern>*. shtml </url-pattern> </url-pattern>.
Wirkung:
- Erstellen und senden Sie eine vollständige HTML -Seite, die dynamischen Inhalte basierend auf der Art der Client -Anfrage enthält.
- Erstellen Sie einen Teil der HTML -Seiten (HTML -Snippets), die in eine vorhandene HTML -Seite eingebettet werden können.
- Lesen Sie versteckte Daten, die vom Client gesendet wurden.
- Lesen Sie die vom Client gesendeten Anzeigedaten;
- Kommunikation mit anderen Serverressourcen (einschließlich Datenbanken und Java -Anwendungen);
2. Web.xml Ladevorgang (Schritte):
- Beim Starten eines Webprojekts wird der Container (z. B. Tomcat und Apache) zwei Knoten in seiner Konfigurationsdatei Web.xml, Context-Param und Listener lesen.
- Unmittelbar danach erstellt der Container einen ServletContext (auch als Servlet -Kontext bezeichnet), der vom gesamten Webprojekt innerhalb des Anwendungsbereichs verwendet werden kann.
- Der Container wandelt <context-Param> in Schlüsselwertpaare um und überreicht es dem ServletContext.
- Der Container erstellt eine Klasseninstanz in <hörer>, dh einen Hörer. (Hinweis: Die vom Hörer definierte Klasse kann eine benutzerdefinierte Klasse sein, muss jedoch den ServletContextListener erben).
- In der Hörmethode wird eine kontextinitive (servletContexevent args) Initialisierungsmethode vorhanden. In dieser Methode erhalten wir: servletContext = servletContexEvent.getServletContext (); Der Wert von context-param = ServletContext.getInitParameter ("Context-Param-Schlüssel"); In dieser Klasse muss es auch eine kontextdestryed (servletContexevent -Ereignis) Zerstörungsmethode geben. Wird verwendet, um Ressourcen vor dem Schließen der Anwendung zu veröffentlichen, z. B. das Schließen der Datenbankverbindung.
- Nachdem Sie den Wert dieses Kontext-Param erhalten haben, können Sie einige Operationen ausführen. Beachten Sie, dass Ihr Webprojekt derzeit nicht vollständig gestartet wurde. Diese Aktion wird früher sein als alle Servlets. Mit anderen Worten, zu diesem Zeitpunkt werden die Vorgänge, die Sie mit den wichtigsten Werten in <Context-Param> ausführen, ausgeführt, bevor Ihr Webprojekt vollständig gestartet wird.
- Zum Beispiel. Möglicherweise möchten Sie die Datenbank öffnen, bevor das Projekt beginnt. Anschließend können Sie die Datenbankverbindungsmethode in <Context-Param> festlegen und die Datenbankverbindung in der Hörklasse initialisieren.
Ergänzendes Wissen: ServletContext ist ein globaler Raum zum Speichern von Informationen. Wenn der Server startet, existiert er. Wenn der Server geschlossen ist, wird er freigegeben. Anfrage, ein Benutzer kann mehrere Sitzungen, einen Benutzer und einen ServletContext haben, alle Benutzer teilen sich einen. Um Platz zu sparen und die Effizienz zu verbessern, ist es daher sicher, notwendige wichtige Threads zu platzieren, die alle Benutzer teilen müssen. In einer Einkaufswebsite möchten Benutzer beispielsweise auf die detaillierten Produktinformationen zugreifen. Wenn er in die Sitzungsdomäne platziert wird, muss jeder Benutzer auf die Datenbank zugreifen, was zu ineffizient ist. Und in einem ServletContext greift der Server nach Start auf die Datenbank zu und legt die Produktinformationen in die Datenbank ein, sodass alle Benutzer über den Kontext auf die Produktinformationen zugreifen können.
A.
- Die Ladereihenfolge von Web.xml-Knoten hat nichts mit der Reihenfolge ihrer Position in Web.xml zu tun, dh der <filter> wird nicht zuerst geladen, nur weil <Filter> vor <Context-Param> geschrieben wird.
- Wie oben erwähnt, wird <Context-Param> verwendet, um ServletContext, d. H. Kontextinformationen der Anwendung, Schlüsselwertpaare bereitzustellen. Der Hörer, Servlet und andere Knoten werden diese Kontextinformationen während des Initialisierungsprozesses verwenden. Daher sind wir schließlich zu dem Schluss gekommen, dass die Ladereihenfolge des web.xml-Knotens: Kontext-Param-> Listener-> Filter-> Servlet sein sollte.
- Für einen bestimmten Art von Konfigurationsknoten ist die Positionssequenz erforderlich. Nehmen Sie Servlet als Beispiel. Der Konfigurationsknoten, der sich auf Servlet bezieht, ist Servlet-Mapping. Für Servlets und Servlet-Mapping mit demselben Bedienungsnamen des Konfigurationsabschnitts muss das Servlet-Mapping nach Servlet definiert werden. Andernfalls wurde bei der Parsen an Servlet-Mapping noch nicht definiert. Wenn jedes Servlet zu Beginn des Webcontainers initialisiert wird, wird er in der Reihenfolge initialisiert, in der der Abschnitt "Servlet -Konfiguration" angezeigt wird.
- Endgültige Schlussfolgerung: Die Ladereihenfolge von web.xml lautet: [Context -Param -> Listener -> Filter -> Servlet -> Spring], und die Reihenfolge der tatsächlichen Programmaufrufe zwischen Knoten desselben Typs wird gemäß der entsprechenden Zuordnungsreihenfolge aufgerufen.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.