Heim Java javaLernprogramm Detaillierte Einführung in den Spring MVC Interceptor

Detaillierte Einführung in den Spring MVC Interceptor

Sep 08, 2017 am 09:43 AM
spring 介绍 abfangen

Der Interceptor von Spring MVC befindet sich auf der HandlerMapping-Ebene. Jeder HandlerMapping kann seinen eigenen Interceptor haben.

Spring stellt uns Folgendes zur Verfügung 🎜>

org.springframework.web.servlet.HandlerInterceptor-Schnittstelle,

org.springframework.web.servlet.handler.HandlerInterceptorAdapter-Adapter,
implementieren Sie diese Schnittstelle oder erben Sie diese Klasse Sehr praktisch, um einen eigenen Abfangjäger zu implementieren.


verfügt über die folgenden drei Methoden:
Ausgeführt vor der Aktion:


Vor dem Generieren der Ansicht ausführen
 public boolean preHandle(HttpServletRequest request,
  HttpServletResponse response, Object handler);
Nach dem Login kopieren


Endgültig ausgeführt, kann zum Freigeben von Ressourcen verwendet werden
 public void postHandle(HttpServletRequest request,
  HttpServletResponse response, Object handler,
  ModelAndView modelAndView);
Nach dem Login kopieren


Implementieren Sie jeweils die Vorverarbeitung, die Nachverarbeitung (der Dienst wird aufgerufen und gibt ModelAndView zurück, aber die Seite wird nicht gerendert) und die Rückgabeverarbeitung (die Seite wurde gerendert)
 public void afterCompletion(HttpServletRequest request,
  HttpServletResponse response, Object handler, Exception ex)
Nach dem Login kopieren

In preHandle, Codierung und Sicherheit können durchgeführt werden.

In postHandle haben Sie die Möglichkeit, ModelAndView zu ändern.

In afterCompletion können Sie feststellen, ob eine Ausnahme aufgetreten ist, und diese ausführen Protokollierung basierend darauf, ob ex null ist.

Der Objekthandler im Parameter ist der nächste Interceptor.

Wie nutzt man Abfangjäger? Passen Sie einen Interceptor an und implementieren Sie die HandlerInterceptor-Schnittstelle:

Java-Code


Spring MVC tut es Sie verfügen nicht über einen vollständigen Abfangjäger und können nicht alle Anfragen davor und danach abfangen.
public class MyInteceptor implements HandlerInterceptor {   
  略。。。 
}
Nach dem Login kopieren

Der Interceptor von Spring MVC befindet sich auf der HandlerMapping-Ebene. Es können mehrere HandlerMappings vorhanden sein, und jedes HandlerMapping kann seinen eigenen Interceptor haben.

Wenn eine Anforderung die Implementierungsklassen der HandlerMapping-Schnittstelle nacheinander entsprechend dem Auftragswert von klein nach groß ausführt, je nachdem, was zuerst zurückgegeben wird, ist das nachfolgende HandlerMapping nicht beendet und dieser Vorgang ist abgeschlossen. . Fahren Sie einfach mit dem nächsten Vorgang fort.

Wann wird der Abfangjäger hingerichtet? Wenn eine Anfrage an ein HandlerMapping übergeben wird, sucht das HandlerMapping zunächst nach einem Prozessor, der die Anfrage bearbeitet. Wenn es sie findet, führt es den Interceptor aus und übergibt sie an den Zielprozessor.

Wenn kein Handler gefunden wird, wird dieser Interceptor nicht ausgeführt.

Es gibt drei Möglichkeiten, es in der Spring MVC-Konfigurationsdatei zu konfigurieren: Option 1, (ungefähr) Gesamtabfangjäger, alle URLs abfangen

Java-Code


Warum heißt es „ungefähr“? Wie bereits erwähnt, verfügt Spring nicht über einen Gesamtabfangjäger.
  <mvc:interceptors> 
  <bean class="com.app.mvc.MyInteceptor" /> 
</mvc:interceptors>
Nach dem Login kopieren

fügt für jedes HandlerMapping einen Interceptor ein. Es gibt immer ein HandlerMapping, das den Prozessor finden kann, und es kann höchstens ein Prozessor gefunden werden, sodass dieser Interceptor immer ausgeführt wird. Fungiert als totaler Abfangjäger.

<mvc:interceptors/>Wenn es sich um eine URL im REST-Stil handelt, werden auch statische Ressourcen abgefangen.


Option 2, (ungefährer) Total Interceptor, fängt übereinstimmende URLs ab.

Xml-Code


ist eine URL-Übereinstimmung mehr als Option 1.
<mvc:interceptors >  
 <mvc:interceptor>  
    <mvc:mapping path="/user/*" /> <!-- /user/* -->  
    <bean class="com.mvc.MyInteceptor"></bean>  
  </mvc:interceptor>  
</mvc:interceptors>
Nach dem Login kopieren

Wenn es sich um eine URL im REST-Stil handelt, werden auch statische Ressourcen abgefangen.


Option 3, Interceptor auf HandlerMappint.

Wenn es sich um eine URL im REST-Stil handelt, werden statische Ressourcen nicht abgefangen. Weil wir den Abfangjäger präzise injiziert haben.

Xml-Code


Wenn Sie
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">    
 <property name="interceptors">    
   <list>    
     <bean class="com.mvc.MyInteceptor"></bean>   
   </list>    
 </property>    
</bean>
Nach dem Login kopieren
verwenden, werden die beiden Beans DefaultAnnotationHandlerMapping und AnnotationMethodHandlerAdapter automatisch registriert, sodass keine Chance besteht um es noch einmal zu geben Es fügt das Interceptors-Attribut ein, sodass der Interceptor nicht angegeben werden kann.

<mvc:annotation-driven />, Natürlich können wir die beiden oben genannten Beans manuell konfigurieren, ohne <mvc:annotation-driven /> zu verwenden, und dann Interceptoren in das Interceptors-Attribut einfügen.


Tatsächlich empfehle ich nicht die Verwendung von

, sondern stattdessen das manuelle Schreiben detaillierter Konfigurationsdateien anstelle von

, was Ihnen eine bessere Kontrolle gibt. Wie ersetze ich <mvc:annotation-driven />,<mvc:annotation-driven /> durch

? Was genau hat er gemacht?

<mvc:annotation-driven />Ein Satz

hat tatsächlich die folgende Arbeit geleistet: (ohne das Hinzufügen Ihres eigenen definierten Interceptors)

<mvc:annotation-driven />Nachdem wir diese verstanden haben, haben wir mehr Kontrolle über Spring3 MVC und möchten es überall ändern Du gehst.

Xml-Code



Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in den Spring MVC Interceptor. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Detaillierte Einführung in Wapi Detaillierte Einführung in Wapi Jan 07, 2024 pm 09:14 PM

Benutzer haben möglicherweise den Begriff Wapi bei der Nutzung des Internets gesehen, aber einige Leute wissen definitiv nicht, was Wapi ist. Im Folgenden finden Sie eine detaillierte Einführung, um denjenigen, die es nicht wissen, das Verständnis zu erleichtern. Was ist Wapi: Antwort: Wapi ist die Infrastruktur für WLAN-Authentifizierung und Vertraulichkeit. Dies entspricht Funktionen wie Infrarot und Bluetooth, die im Allgemeinen in der Nähe von Orten wie Bürogebäuden verfügbar sind. Im Grunde sind sie Eigentum einer kleinen Abteilung, sodass der Umfang dieser Funktion nur wenige Kilometer beträgt. Verwandte Einführung in Wapi: 1. Wapi ist ein Übertragungsprotokoll im WLAN. 2. Diese Technologie kann die Probleme der Schmalbandkommunikation vermeiden und eine bessere Kommunikation ermöglichen. 3. Zur Übertragung des Signals ist nur ein Code erforderlich.

Ein neues Programmierparadigma, wenn Spring Boot auf OpenAI trifft Ein neues Programmierparadigma, wenn Spring Boot auf OpenAI trifft Feb 01, 2024 pm 09:18 PM

Im Jahr 2023 ist die KI-Technologie zu einem heißen Thema geworden und hat enorme Auswirkungen auf verschiedene Branchen, insbesondere im Programmierbereich. Die Bedeutung der KI-Technologie wird den Menschen zunehmend bewusst, und die Spring-Community bildet da keine Ausnahme. Mit der kontinuierlichen Weiterentwicklung der GenAI-Technologie (General Artificial Intelligence) ist es entscheidend und dringend geworden, die Erstellung von Anwendungen mit KI-Funktionen zu vereinfachen. Vor diesem Hintergrund entstand „SpringAI“ mit dem Ziel, den Prozess der Entwicklung von KI-Funktionsanwendungen zu vereinfachen, ihn einfach und intuitiv zu gestalten und unnötige Komplexität zu vermeiden. Durch „SpringAI“ können Entwickler einfacher Anwendungen mit KI-Funktionen erstellen, wodurch diese einfacher zu verwenden und zu bedienen sind.

Verwenden Sie Spring Boot und Spring AI, um generative Anwendungen für künstliche Intelligenz zu erstellen Verwenden Sie Spring Boot und Spring AI, um generative Anwendungen für künstliche Intelligenz zu erstellen Apr 28, 2024 am 11:46 AM

Als Branchenführer bietet Spring+AI durch seine leistungsstarke, flexible API und erweiterte Funktionen führende Lösungen für verschiedene Branchen. In diesem Thema werden wir uns mit den Anwendungsbeispielen von Spring+AI in verschiedenen Bereichen befassen. Jeder Fall wird zeigen, wie Spring+AI spezifische Anforderungen erfüllt, Ziele erreicht und diese LESSONSLEARNED auf ein breiteres Anwendungsspektrum ausdehnt. Ich hoffe, dieses Thema kann Sie dazu inspirieren, die unendlichen Möglichkeiten von Spring+AI tiefer zu verstehen und zu nutzen. Das Spring-Framework hat eine mehr als 20-jährige Geschichte im Bereich der Softwareentwicklung, und seit der Veröffentlichung der Spring Boot 1.0-Version sind 10 Jahre vergangen. Nun kann niemand diesen Frühling bestreiten

Detaillierte Erklärung, ob Win11 das PUBG-Spiel ausführen kann Detaillierte Erklärung, ob Win11 das PUBG-Spiel ausführen kann Jan 06, 2024 pm 07:17 PM

Pubg, auch bekannt als PlayerUnknown's Battlegrounds, ist ein sehr klassisches Battle-Royale-Shooter-Spiel, das seit seiner Popularität im Jahr 2016 viele Spieler angezogen hat. Nach der kürzlichen Einführung des Win11-Systems möchten viele Spieler es auf Win11 spielen. Folgen wir dem Editor, um zu sehen, ob Win11 Pubg spielen kann. Kann Win11 Pubg spielen? Antwort: Win11 kann Pubg spielen. 1. Zu Beginn von Win11 wurden viele Spieler von Pubg ausgeschlossen, da Win11 TPM aktivieren musste. 2. Basierend auf dem Feedback der Spieler hat Blue Hole dieses Problem jedoch gelöst, und jetzt können Sie Pubg unter Win11 normal spielen. 3. Wenn Sie eine Kneipe treffen

Was sind die Implementierungsmethoden für programmatische Frühlingstransaktionen? Was sind die Implementierungsmethoden für programmatische Frühlingstransaktionen? Jan 08, 2024 am 10:23 AM

So implementieren Sie programmgesteuerte Spring-Transaktionen: 1. Verwenden Sie TransactionCallback und TransactionCallbackWithoutResult; 4. Verwenden Sie TransactionTemplate in Kombination mit @Transactional;

So legen Sie die Transaktionsisolationsstufe im Frühjahr fest So legen Sie die Transaktionsisolationsstufe im Frühjahr fest Jan 26, 2024 pm 05:38 PM

So legen Sie die Transaktionsisolationsstufe in Spring fest: 1. Verwenden Sie die Annotation @Transactional. 3. Legen Sie sie in der Spring-Konfigurationsdatei fest. 4. Legen Sie sie in der Java-Konfigurationsklasse fest. Detaillierte Einführung: 1. Verwenden Sie die Annotation @Transactional, fügen Sie die Annotation @Transactional zu der Klasse oder Methode hinzu, die eine Transaktionsverwaltung erfordert, und legen Sie die Isolationsstufe im Attribut fest. 2. In der Spring-Konfigurationsdatei usw.

Wir stellen die neueste Sound-Tuning-Methode für Win 11 vor Wir stellen die neueste Sound-Tuning-Methode für Win 11 vor Jan 08, 2024 pm 06:41 PM

Nach dem Update auf das neueste Win11 stellen viele Benutzer fest, dass sich der Sound ihres Systems leicht verändert hat, sie wissen jedoch nicht, wie sie ihn anpassen können. Deshalb bietet Ihnen diese Website heute eine Einführung in die neueste Win11-Soundanpassungsmethode für Ihren Computer. Die Bedienung ist nicht schwer und die Auswahl ist vielfältig. Laden Sie sie herunter und probieren Sie sie aus. So passen Sie den Sound des neuesten Computersystems Windows 11 an 1. Klicken Sie zunächst mit der rechten Maustaste auf das Soundsymbol in der unteren rechten Ecke des Desktops und wählen Sie „Wiedergabeeinstellungen“. 2. Geben Sie dann die Einstellungen ein und klicken Sie in der Wiedergabeleiste auf „Lautsprecher“. 3. Klicken Sie anschließend unten rechts auf „Eigenschaften“. 4. Klicken Sie in den Eigenschaften auf die Optionsleiste „Erweitern“. 5. Wenn zu diesem Zeitpunkt das √ vor „Alle Soundeffekte deaktivieren“ aktiviert ist, brechen Sie den Vorgang ab. 6. Danach können Sie unten die Soundeffekte zum Einstellen auswählen und klicken

PyCharm-Einsteigerhandbuch: Umfassende Analyse von Ersetzungsfunktionen PyCharm-Einsteigerhandbuch: Umfassende Analyse von Ersetzungsfunktionen Feb 25, 2024 am 11:15 AM

PyCharm ist eine leistungsstarke integrierte Python-Entwicklungsumgebung mit umfangreichen Funktionen und Tools, die die Entwicklungseffizienz erheblich verbessern können. Unter diesen ist die Ersetzungsfunktion eine der im Entwicklungsprozess häufig verwendeten Funktionen, die Entwicklern helfen kann, den Code schnell zu ändern und die Codequalität zu verbessern. In diesem Artikel wird die Ersetzungsfunktion von PyCharm ausführlich vorgestellt, kombiniert mit spezifischen Codebeispielen, um Anfängern zu helfen, diese Funktion besser zu beherrschen und zu verwenden. Einführung in die Ersetzungsfunktion Die Ersetzungsfunktion von PyCharm kann Entwicklern dabei helfen, bestimmten Text im Code schnell zu ersetzen

See all articles