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.
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 |
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
KonsolendruckergebnisseMulti-Interceptor-Vorgang
Die Schritte sind die gleichen wie oben. Schreiben Sie einen MyHandlerInterceptor2-Vorgang und testen Sie ihn Ausführungssequenz. Das ist es.
Beschreibung der Interceptor-MethodepreHandle() | 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!