56 votes

servlet vs filtre

Quelle est la différence entre une servlet et le filtre? Que recommandez-vous pour l'autorisation d'utilisation à des pages?

98voto

BalusC Points 498232

Utiliser un Filter lorsque vous souhaitez filtrer et/ou de modifier les demandes en fonction de conditions spécifiques. Utiliser un Servlet lorsque vous souhaitez contrôler, traiter et/ou de post-traiter les demandes.

Le tutoriel Java EE mentions suivantes sur les filtres:

Un filtre est un objet qui peut transformer l'en-tête et le contenu (ou les deux) d'une demande ou d'une réponse. Filtres différents à partir de composants web en ce que les filtres sont généralement pas eux-mêmes de créer une réponse. Au lieu de cela, un filtre fournit une fonctionnalité qui peut être "attaché" à n'importe quel type de ressource web. Par conséquent, un filtre ne doit pas avoir toute dépendance à une ressource web pour lequel il agit comme un filtre; de cette manière, il peut être composé de plus d'un type de ressource web.

Les principales tâches qu'un filtre peut effectuer sont les suivantes:

  • Requête de la demande et d'agir en conséquence.
  • Bloquer la demande et de la réponse de la paire de transmettre plus loin.
  • Modifier les en-têtes de requête et les données. Vous faites cela en fournissant une version personnalisée de la demande.
  • Modifier les en-têtes de réponse et de données. Vous faites cela en fournissant une version personnalisée de la réponse.
  • Interagir avec les ressources externes.

Pour l'autorisation, un Filter est le mieux adapté. Voici une base de lancement pour les exemple de la façon dont un filtre vérifie les demandes de l'utilisateur connecté:

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
    if (((HttpServletRequest) request).getSession().getAttribute("user") == null) {
        // User is not logged in. Redirect to login page.
        ((HttpServletResponse) response).sendRedirect("login");
    } else {
        // User is logged in. Just continue with request.
        chain.doFilter(request, response);
    }
}

20voto

kgiannakakis Points 62727

Les filtres sont les mieux adaptés pour l'autorisation. C'est parce qu'ils peuvent être configurées pour s'exécuter pour toutes les pages d'un site. Si vous avez seulement besoin d'un filtre pour protéger l'ensemble de vos pages.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X