Heim  >  Artikel  >  Java  >  So verwenden Sie den SpringMVC-Interceptor von Java

So verwenden Sie den SpringMVC-Interceptor von Java

WBOY
WBOYnach vorne
2023-05-13 14:55:061363Durchsuche

Die Rolle des Interceptors

Der Interceptor von Spring MVC ähnelt dem Filter in der Servlet-Entwicklung und wird für die Vor- und Nachbearbeitung des Prozessors verwendet. Abfangjäger werden in einer bestimmten Reihenfolge zu einer Kette verbunden. Diese Kette wird Abfangkette genannt. Wenn auf eine abgefangene Methode oder ein abgefangenes Feld zugegriffen wird, werden die Interceptoren in der Interceptor-Kette in der Reihenfolge aufgerufen, in der sie zuvor definiert wurden. Abfangjäger sind auch die konkrete Umsetzung von AOP-Ideen.

Der Unterschied zwischen Interceptoren und Filtern

Interceptor-Schnellstart
Unterschiede Filter Intercepter
Verwendungsbereich ist Teil der Servlet-Spezifikation, die jedes Java-Webprojekt verwenden kann Es ist das SpringMVC.-Framework besitzen. Es kann nur von Projekten verwendet werden, die das SpringMVC-Framework verwenden.
Abfangbereich Nach der Konfiguration von /* im URL-Muster können Sie alle Ressourcen abfangen, auf die zugegriffen werden soll. ;mvc :mapping path=""/ > Nachdem /** konfiguriert wurde, können auch alle Ressourcen abgefangen werden, aber Sie können diejenigen ausschließen, die nicht abgefangen werden müssen, indem Sie das Tag übergeben
Benutzerdefinierte Abfangschritte:

① Erstellen Sie eine Interceptor-Klasse, um die HandlerInterceptor-Schnittstelle zu implementieren.

public class MyHandlerInterceptor1 implements HandlerInterceptor {
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
        System.out.println("preHandle running...");
        return true;
    }
    public void postHandle(HttpServletRequest request, HttpServletResponse 
        response, Object handler, ModelAndView modelAndView) {
        System.out.println("postHandle running...");
    }
    public void afterCompletion(HttpServletRequest request, HttpServletResponse 
        response, Object handler, Exception ex) {
        System.out.println("afterCompletion running...");
    } 
}
② Konfigurieren Sie den Interceptor.

<!--配置拦截器--> 
<interceptors>
 <interceptor>
  <mapping></mapping>
  <bean></bean>
 </interceptor>
</interceptors>
③ Testen Sie den Abfangeffekt des Interceptors (schreiben Sie die Zielmethode). (URL besuchen)

http://localhost:8080/project/quick23

Konsolendruckergebnisse

Multi-Interceptor-Vorgang

Die Schritte sind die gleichen wie oben. Schreiben Sie einen MyHandlerInterceptor2-Vorgang und testen Sie ihn Ausführungssequenz. Das ist es. So verwenden Sie den SpringMVC-Interceptor von Java

Beschreibung der Interceptor-Methode

Methodenname

BeschreibungpreHandle()Die Methode wird vor der Anforderungsverarbeitung aufgerufen. Der Rückgabewert dieser Methode ist vom Typ Boolean. Dies bedeutet, dass die Anforderung beendet ist und der nachfolgende Interceptor und Controller nicht erneut ausgeführt werden. Wenn der Rückgabewert wahr ist, wird die PreHandle-Methode des nächsten Interceptors weiterhin aufgerufen der preHandle-Methode ist wahr und wird aufgerufen, bevor das DispatcherServlet die Ansicht zum Rendern zurückgibt, sodass wir das ModelAndView-Objekt bedienen können, nachdem der Controller in dieser Methode verarbeitet wurde Wird ausgeführt, nachdem die gesamte Anforderung abgeschlossen ist, dh nachdem das DispatcherServlet die entsprechende Ansicht gerendert hat. Voraussetzung ist, dass der Rückgabewert der preHandle-Methode wahr ist, bevor sie aufgerufen werden kann

Das obige ist der detaillierte Inhalt vonSo verwenden Sie den SpringMVC-Interceptor von Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen