Jaka jest różnica między filtrem Servlet i Filter? Co zalecamy, aby autoryzować strony?Servlet vs Filter
Odpowiedz
Użyj Filter
, gdy chcesz filtrować i/lub modyfikować żądania na podstawie określonych warunków. Użyj Servlet
, jeśli chcesz kontrolować, preprocesować i/lub postprocesować żądania.
Java EE tutorial wspomina o następujących filtrów:
Filtr jest obiektem, który może zmienić nagłówek i treść (lub oba) żądania lub odpowiedzi. Filtry różnią się od komponentów internetowych tym, że filtry zwykle same nie tworzą odpowiedzi. Zamiast tego filtr zapewnia funkcjonalność, którą można "podłączyć" do dowolnego zasobu sieciowego. W konsekwencji filtr nie powinien mieć żadnych zależności od zasobu sieciowego, dla którego działa jako filtr; w ten sposób można go skomponować z więcej niż jednym typem zasobu sieciowego.
Główne zadania, które filtr może wykonać to w następujący sposób:
- Zapytanie żądanie i podjąć odpowiednie działania.
- Zablokuj parę żądanie-odpowiedź przed przekazaniem dalej.
- Zmodyfikuj nagłówki i dane żądania. Robisz to, zapewniając dostosowaną wersję żądania.
- Zmodyfikuj nagłówki odpowiedzi i dane. Robisz to, zapewniając dostosowaną wersję odpowiedzi.
- Współdziałać z zasobami zewnętrznymi.
uzyskać pozwolenia, Filter
jest najlepsza. Oto prosty przykład kickoff tego, jak sprawdza filtry wnioski o zalogowanego użytkownika:
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);
}
}
Filtry najlepiej nadają się do autoryzacji. Dzieje się tak, ponieważ można je skonfigurować tak, aby działały dla wszystkich stron witryny. Potrzebujesz tylko jednego filtra, aby chronić wszystkie swoje strony.
Wszystkie strony = strony, które mogą wymagać zalogowania. – UnKnown
Używając filtra możemy poprawić aplet performance-- gdy żądanie pochodzi możemy wykonać wstępne przetwarzanie na żądanie, jeśli zamówienie spełnia wtedy może przekazać do serwletu, w przeciwnym razie przekazać wiadomość klientowi, podając odpowiednie informacje na żądanie.
- 1. Spring Boot java.lang.NoClassDefFoundError: javax/servlet/Filter
- 2. Servlet Raw vs. Spring MVC
- 3. Co to jest odpowiednik PHP w Java Servlet Filter?
- 4. jQuery: która jest szybsza w tym przypadku (.find) vs (.filter)
- 5. git filter-branch --msg-filter do zmiany wiadomości pushed commit
- 6. Servlet mapowanie ze sprężyną
- 7. Applet v/s Servlet
- 8. parametry Servlet i doPut
- 9. Servlet @WebServlet urlPatterns
- 10. java.lang.NoClassDefFoundError: javax/servlet/servletContext
- 11. Contdown na Servlet Sesji
- 12. datatables data filter
- 13. Java Filter Dla Logstash
- 14. Entity Framework Filter Index
- 15. Filter Comment Spam? PHP
- 16. ColdFusion EntityLoad Filter
- 17. Android SearchView Filter ListView
- 18. Servlet Gson(). ToJson infinite loop
- 19. Reuse Nashorn ScriptEngine in Servlet
- 20. Assetic Symfony2 less + compress filter
- 21. ArrayAdapter niestandardowy Filter w ListView
- 22. Django Filter Query Foreign Key
- 23. Filter RadTreeView Przedmioty według RadDataFilter
- 24. multidplyr i group_by() i filter()
- 25. ng-repeat filter on boolean
- 26. Store result of Jinja filter
- 27. Ruby: filter array by regex?
- 28. Filter Outlook terminy według kategorii
- 29. Django ORM - objects.filter() vs. objects.all(). Filter() - który z nich jest preferowany?
- 30. CDH4 Hbase za pomocą Pig ERROR 2998 java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/filter/Filter
dzięki za wyjaśnienie +1 za to –
Podane łącze jest bardzo dobre. dzięki za to też. –