Quelle est la différence entre un Servlet et Filtre? Que recommandez-vous d'utiliser pour l'autorisation des pages?Servlet vs Filter
Répondre
Utilisez un Filter
lorsque vous souhaitez filtrer et/ou modifier les demandes en fonction de conditions spécifiques. Utilisez un Servlet
lorsque vous souhaitez demandes de contrôle, prétraitement et/ou post-traitement.
Le Java EE tutorial mentionne ce qui suit sur les filtres:
Un filtre est un objet qui peut transformer l'en-tête et le contenu (ou les deux) d'une requête ou d'une réponse. Les filtres diffèrent des composants Web car les filtres ne créent généralement pas de réponse. Au lieu de cela, un filtre fournit des fonctionnalités qui peuvent être "attachées" à n'importe quel type de ressource Web. Par conséquent, un filtre ne devrait pas avoir de dépendances sur une ressource web pour laquelle il agit comme un filtre; De cette façon, il peut être composé avec plus d'un type de ressource web.
Les tâches principales qu'un filtre peut effectuer sont les suivantes:
- Interrogez la demande et agir en conséquence.
- Empêche la paire requête-réponse de passer plus loin.
- Modifiez les en-têtes et les données de la demande. Vous le faites en fournissant une version personnalisée de la demande.
- Modifiez les en-têtes et les données de réponse. Vous le faites en fournissant une version personnalisée de la réponse.
- Interagir avec des ressources externes.
Pour autorisation, un Filter
est le mieux adapté. Voici un exemple de coup d'envoi de base de la façon dont une demande de contrôles de filtre pour 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);
}
}
Les filtres sont les mieux adaptés pour l'autorisation. C'est parce qu'ils peuvent être configurés pour s'exécuter pour toutes les pages d'un site. Vous n'avez donc besoin que d'un seul filtre pour protéger toutes vos pages.
Toutes les pages = les pages qui peuvent nécessiter une connexion. – UnKnown
Utiliser le filtre que nous pouvons améliorer servlet performance-- lorsque la demande vient nous pouvons effectuer des pré-traitement sur demande, si satisfait demande nous peut transmettre à servlet sinon donner un message au client fournir des informations appropriées dans la demande ..
- 1. Problème de redirection de Java Servlet Filter
- 2. Servlet Filter: Le socket doit être référencé dans doFilter()
- 3. config Guice Servlet ne fonctionne pas sans API Servlet
- 4. Active Directory Filter memberof
- 5. Filter MySQL résultats
- 6. jquery filter .not()
- 7. DirectShow Source Filter
- 8. C# DirectorySearcher filter
- 9. Filter jQuery Deux arguments
- 10. Joomla Filter Menu
- 11. Jquery .Filter Fonction Question
- 12. ColdFusion EntityLoad Filter
- 13. Blackberry Text Filter
- 14. -ms-filter avec javascript
- 15. jquery - filter enfant divs?
- 16. Git smudge filter
- 17. array collection filter flex
- 18. Reporting Services 2005 Filter
- 19. Identity Filter Linq .Where
- 20. Kalman Filter pour Android
- 21. CakePHP Filter Search
- 22. Caliburn re-run filter
- 23. MOSS 2007 BDC Filter
- 24. YUI Datatable Column Filter
- 25. Dropdownlist to Filter GridView
- 26. DataTable Filter mystère
- 27. XSS PHP Log Filter?
- 28. php array filter
- 29. FIlter répertoires basés sur l'horodatage
- 30. Modèles django filter() et extra()
merci pour la clarification +1 pour cela –
Le lien fourni est très bon. merci pour cela aussi. –