Quelle est la différence entre une servlet et le filtre? Que recommandez-vous pour l'autorisation d'utilisation à des pages?
Réponses
Trop de publicités?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);
}
}