L'intercepteur de Spring MVC est similaire au filtre dans le développement de servlets et est utilisé pour le prétraitement et le post-traitement du processeur. Les intercepteurs sont connectés en une chaîne dans un certain ordre. Cette chaîne est appelée Interceptor Chain. Lors de l'accès à une méthode ou à un champ intercepté, les intercepteurs de la chaîne d'intercepteurs seront appelés dans l'ordre dans lequel ils ont été précédemment définis. Les intercepteurs sont également la mise en œuvre spécifique des idées AOP. "La différence entre les intercepteurs et les filtres" . Il ne peut être utilisé que par les projets qui utilisent le framework SpringMVC
;mvc :mapping path=""/. > Une fois /** configuré, toutes les ressources peuvent également être interceptées, mais vous pouvez exclure celles qui n'ont pas besoin d'être interceptées en passant la balise | Démarrage rapide de l'intercepteur | Étapes d'interception personnalisées : |
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..."); } }
Copier après la connexion
| ② Configurez l'intercepteur
Copier après la connexion
| ③ Testez l'effet d'interception de l'intercepteur (écrivez la méthode cible)
@RequestMapping("/quick23") @ResponseBody public ModelAndView quickMethod23() throws IOException, ParseException { System.out.println("目标方法执行...."); ModelAndView modelAndView = new ModelAndView(); modelAndView.addObject("name","modelname"); modelAndView.setViewName("index"); return modelAndView; }
Copier après la connexion
| (visiter l'URL)
http://localhost:8080/project/quick23 | Résultats de l'impression de la console |
Nom de la méthode
Description
preHandle()
La méthode sera appelée avant le traitement de la demande. La valeur de retour de cette méthode est de type booléen. Lorsqu'elle renvoie Lorsque faux, cela signifie que la requête est terminée et que l'Interceptor et le Controller suivants ne seront plus exécutés ; lorsque la valeur de retour est vraie, la méthode preHandle du prochain Interceptor continuera à être appelée après le traitement, à condition que la valeur de retour soit respectée. de la méthode preHandle est vraie, et elle sera appelée avant que le DispatcherServlet ne renvoie la vue pour le rendu, afin que nous puissions utiliser l'objet ModelAndView après le traitement du Controller dans cette méthode
afterCompletion() Cette méthode sera. exécuté une fois la requête entière terminée, c'est-à-dire après que le DispatcherServlet ait rendu la vue correspondante. Le principe est que la valeur de retour de la méthode preHandle est vraie avant de pouvoir être appelée .Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!