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?
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()
{
}
}