Vòng đời yêu cầu theo đặc tả servlet đi qua một chuỗi các bộ lọc trước khi được thực thi bởi một servlet.
này là khá trực quan khi bạn nhìn vào chữ ký cho phương pháp doFilter trong giao diện Filter
doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
Đó là, trong bộ lọc mà bạn có quyền truy cập vào các request và response và chuỗi. Hợp đồng là bạn, với tư cách là người triển khai, nên gọi số chain
trước hoặc sau các thao tác bạn thực hiện trong bộ lọc hoặc hoàn toàn không muốn thực hiện. Gọi chain.doFilter(...)
sẽ khiến bộ lọc tiếp theo trong chuỗi bộ lọc có ánh xạ khớp với URL được yêu cầu sẽ được thực thi. Thành viên cuối cùng của chuỗi là servlet có ánh xạ khớp với URL được yêu cầu.
Về mặt kỹ thuật, bạn có thể thực hiện mọi thứ trong bộ lọc mà bạn có thể thực hiện trong servlet. Bạn có thể xây dựng ứng dụng của mình để thực hiện tất cả việc xử lý và hiển thị trong một bộ lọc và có một servlet trống không làm gì cả. Điểm khác biệt chính là nếu không có servlet được ánh xạ đối với một URL đã cho, vùng chứa phải trả lời với lỗi 404 do đó luôn phải có một servlet được ánh xạ với bất kỳ URL nào bạn muốn phân phát. Bạn cũng có thể chỉ có một servlet được ánh xạ với một URL, nhưng bạn có thể có bất kỳ số lượng bộ lọc nào.
bạn đã đọc về bộ lọc servlet và servlet chưa?Bất kỳ bộ lọc bao phủ tài nguyên nào cần xóa mọi thứ cho bạn – Bozho
@Bozho Tôi đã làm, nhưng tôi đoán tôi cần http://www.coderanch.com/t/57899/Struts/Difference-between-servlet-struts để hiểu những gì tôi không biết Tôi không hiểu (...) – JVerstry