web-dev-qa-db-fra.com

Comment appliquer un filtre de servlet uniquement aux demandes avec HTTP POST

Dans mon application, je veux appliquer un filtre, mais je ne veux pas que toutes les demandes doivent aller à ce filtre.

Ce sera un problème de performances, car nous avons déjà d'autres filtres.

Je veux que mon filtre s'applique uniquement aux requêtes HTTP POST. Y a-t-il un moyen?

25
Kiran

Il n'y a aucune fonctionnalité facilement disponible pour cela. Un Filter n'a pas de surcharge lors de l'application à toutes les méthodes HTTP. Mais, si vous avez une logique à l'intérieur du code Filter qui a des frais généraux, vous ne devez pas appliquer cette logique aux méthodes HTTP indésirables.

Voici l exemple de code:

public class HttpMethodFilter implements Filter
{
   public void init(FilterConfig filterConfig) throws ServletException
   {

   }

   public void doFilter(ServletRequest request, ServletResponse response,
       FilterChain filterChain) throws IOException, ServletException
   {
       HttpServletRequest httpRequest = (HttpServletRequest) request;        
       if(httpRequest.getMethod().equalsIgnoreCase("POST")){

       }
       filterChain.doFilter(request, response);
   }

   public void destroy()
   {

   }
}
34
Ramesh PVK