Outils pour utilisateurs

Outils du site


helloworld:web:java:filter

Filtres

Il est possible d'exécuter une action lors de l'affichage d'une page depuis une classe, implémentant l'interface servlet.Filter, qui sera exécuté en fonction des filtres définis dans le fichier web.xml.

Ci-dessous un exemple où si la rubrique admin est accédée sans être administrateur, l'utilisateur est renvoyé sur la page principale du site.

Filtre.java
package com.llgc;
 
import java.io.IOException;
 
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
/**
 * Servlet Filter implementation class Filtre
 */
@WebFilter ("/admin/*")
public class Filtre implements Filter
{
  /**
   * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
   */
  public void doFilter (ServletRequest request, ServletResponse response, FilterChain chain)
      throws IOException, ServletException
  {
    if (((HttpServletRequest) request).isUserInRole ("admin"))
    {
      chain.doFilter (request, response);
    }
    else
    {
      ((HttpServletResponse) response).sendRedirect ("/EF/indexjsf5.xhtml");
    }
  }
 
  @Override
  public void destroy ()
  {
 
  }
 
  @Override
  public void init (FilterConfig arg0) throws ServletException
  {
  }
}
helloworld/web/java/filter.txt · Dernière modification : 2015/08/11 09:56 de root