Maison  >  Article  >  Java  >  Comment utiliser le filtre et l'écouteur en Java

Comment utiliser le filtre et l'écouteur en Java

王林
王林avant
2023-05-20 08:58:111418parcourir

    Filtre : Filtre

    Concept

    Filtre dans la vie : purificateur d'eau , Purificateurs d'air, bandits, filtres sur le Web : lors de l'accès aux ressources du serveur, les filtres peuvent intercepter les requêtes et remplir certaines fonctions spéciales. La fonction de filtre :

    est généralement utilisée pour réaliser des opérations courantes. Tels que : la vérification de la connexion, le traitement d'encodage unifié, le filtrage des caractères sensibles... # 1. Définissez une classe et implémentez l'interface Filter

    2 Remplacez la méthode

    3. Configurez le chemin d'interception

    .

    web.xml

    annotation

    • code
    • # 🎜🎜#
      @WebFilter("/*")//访问所有资源之前,都会执行该过滤器
      public class FilterDemo1 implements Filter {
      	@Override
      	public void init(FilterConfig filterConfig) throws ServletException {
      
      	}
      
      	@Override
      	public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
      		System.out.println("filterDemo1被执行了....");
      
      
      		//放行
      		filterChain.doFilter(servletRequest,servletResponse);
      
      	}
      
      	@Override
      	public void destroy() {
      
      	}
      }
    • Détails du filtre

    • configuration web.xml

    <filter>
    	<filter-name>demo1</filter-name>
    	<filter-class>cn.zjq.web.filter.FilterDemo1</filter-class>
    </filter>
    <filter-mapping>
    	<filter-name>demo1</filter-name>
    	<!-- 拦截路径 -->
    	<url-pattern>/*</url-pattern>
    </filter-mapping>
    Processus d'exécution du filtre

    #🎜 🎜#

    Filtre d'exécution

    Ressources après sortie d'exécution

      Revenez et exécutez le code sous le code de version du filtre
    • Méthode du cycle de vie du filtre

      #🎜🎜 #
    • init : Après le démarrage du serveur, un objet Filter sera créé puis la méthode init sera appelée. Exécuté une seule fois. Utilisé pour charger les ressources

    doFilter : Sera exécuté à chaque fois qu'une requête est interceptée pour une ressource. Exécuté plusieurs fois

    destroy : Après l'arrêt du serveur, l'objet Filter est détruit. Si le serveur est arrêté normalement, la méthode destroy sera exécutée. Exécuté une seule fois. Utilisé pour libérer des ressources
    • Détails de configuration du filtre
    • Configuration du chemin d'interception :
    • #🎜 🎜 #
    • Chemin de ressource spécifique : /index.jsp Uniquement lors de l'accès à la ressource index.jsp, le filtre sera exécuté

    Répertoire d'interception : /user/* Lors de l'accès à toutes les ressources sous /user, le filtre sera exécuté

    Interception du nom du suffixe : *.jsp Lors de l'accès à toutes les ressources avec le nom de suffixe jsp , le filtre sera exécuté

    • Intercepter toutes les ressources : /* Lors de l'accès à toutes les ressources, le filtre sera exécuté

    • # 🎜🎜#Configuration de la méthode d'interception : la manière dont les ressources sont accessibles

    • Configuration de l'annotation :
    • Set dispatcherTypes Attribute

    REQUEST : Valeur par défaut. Le navigateur demande directement la ressource

    FORWARD : transférer l'accès à la ressource
    • INCLUDE : inclure l'accès à la ressource#🎜🎜 #
      ERROR : Erreur lors du passage à la ressource
    • ASYNC : Accès asynchrone à la ressource
    • #🎜 🎜#

      Balise de paramètre de configuration Web.xml
    • Chaîne de filtres (configurer plusieurs filtres)

    • Exécution commander : S'il y a deux filtres : filtre 1 et filtre 2

    • filtre 1

    Filtre 2# 🎜🎜#

    ResourceExecution

    Filtre 2

      #🎜 🎜## 🎜🎜# Filtre 1
    • Problème d'ordre du filtre :
    • Configuration de l'annotation : Comparez selon les règles de comparaison de chaînes du nom de classe. La plus petite valeur est exécutée en premier
    • Entre AFilter et BFilter, AFilter est exécuté en premier. 2. configuration web.xml : Celui qui le définit ci-dessus l'exécutera en premier
    • Listener: listening

    • Concept

      : les trois composants majeurs du Web un. Mécanisme d'écoute d'événement

    Événement : un événement

    • Source de l'événement : où l'événement s'est produit#🎜🎜 #

    Listener : un objet

    Auditeur enregistré : liez les événements, les sources d'événements et les auditeurs ensemble. Lorsqu'un événement se produit sur la source de l'événement, exécutez le code du listener

    ServletContextListener : Écoutez les méthodes de création et de destruction de l'objet ServletContext :
      : Après le L'objet ServletContext est créé Cette étape de méthode sera appelée :
    • Définir une classe pour implémenter l'interface ServletContextListener
    • #🎜🎜 #Méthode de copie#🎜🎜 #
    • Configuration

    • web.xml
    • #🎜🎜 #
      <listener>
        <listener-class>cn.zjq.web.listener.ContextLoaderListener</listener-class>
      </listener>
    Spécifiez les paramètres d'initialisation

    void contextDestroyed(ServletContextEvent sce) :ServletContext对象被销毁之前会调用该方法 void contextInitialized(ServletContextEvent sce) Remarque :

      @WebListener

    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