Maison  >  Article  >  Java  >  Comment utiliser l'intercepteur SpringMVC de Java

Comment utiliser l'intercepteur SpringMVC de Java

WBOY
WBOYavant
2023-05-13 14:55:061357parcourir

Le rôle de l'intercepteur

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

Plage d'interceptionAprès avoir configuré /* dans le modèle d'URL, vous pouvez intercepter toutes les ressources accessibles ;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 :① Créez une classe d'intercepteur pour implémenter l'interface HandlerInterceptor② Configurez l'intercepteur③ Testez l'effet d'interception de l'intercepteur (écrivez la méthode cible) (visiter l'URL)Résultats de l'impression de la console
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...");
    } 
}
<!--配置拦截器--> 
<interceptors>
 <interceptor>
  <mapping></mapping>
  <bean></bean>
 </interceptor>
</interceptors>
@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;
}
http://localhost:8080/project/quick23
Opération multi-intercepteur

Les étapes sont les mêmes que ci-dessus Écrivez une opération MyHandlerInterceptor2 et testez-la. séquence d’exécution. C’est tout.

Description de la méthode d'intercepteur

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

Comment utiliser lintercepteur SpringMVC de Java

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer