1.Khái niệm.
- Có thể hiểu một cách đơn giản Filter là bộ lọc, nhiệm vụ là lọc dữ liệu từ phía người dùng trước hoặc sau khi nó chạm tới Routing. Do đó nếu bạn tận dụng tốt được Filter bạn sẽ tạo ra bộ ứng dụng phòng thủ chuyên nghiệp trong website của bạn. Điều này sẽ giúp bạn xử lý dữ liệu tối ưu hơn.
2.Vòng đời của Filter
Vòng đời của một FIlter giống như vòng đời của một Servlet: khởi tạo, thi hành và tiêu hủy. Việc khởi tạo một filter chỉ được thực hiện một lần khi Web Application lần đầu gọi Filter đã sử dụng , phần thì hành của một Filter được gọi khi có request hay response cần dùng filter đó, khi Web Application hoàn toàn không còn dùng filter nữa thì vòng đời của filter sẽ kết thúc.
- void init(FilterConfig config) throws ServletException: Hàm khởi tạo các thông số cho Filter, được thi hành khi khởi tạo Filter
- void destroy(): hàm hủy Filter
- void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException: hàm thực thi, được thi hành khi có resquest hay response dùng filter.
Vòng đời của Filter. |
3.Cách làm việc của Filter.
Cách làm việc của Filter. |
-Khi yêu cầu gửi trong Web Container, nó sẽ kiểm tra bộ lọc có mẫu URL phù hợp với URL được yêu cầu.
-Web container đặt các bộ lọc đầu tiên với một kết hợp mẫu URL và mã bộ lọc được thực thi.
- Nếu bộ lọc khác có một mẫu URL phù hợp, mã của nó sau đó được thực hiện. Điều này tiếp tục cho đến khi không có bộ lọc với các mẫu URL phù hợp.
-Nếu không có lỗi xảy ra, yêu cầu đi đến các servlet mục tiêu.
-Servlet trả về phản ứng(response) lại cho người gọi của nó. Bộ lọc cuối cùng được áp dụng cho các yêu cầu là bộ lọc đầu tiên áp dụng cho các phản ứng.
-Cuối cùng phản ứng sẽ được thông qua Web container.
-Web container đặt các bộ lọc đầu tiên với một kết hợp mẫu URL và mã bộ lọc được thực thi.
- Nếu bộ lọc khác có một mẫu URL phù hợp, mã của nó sau đó được thực hiện. Điều này tiếp tục cho đến khi không có bộ lọc với các mẫu URL phù hợp.
-Nếu không có lỗi xảy ra, yêu cầu đi đến các servlet mục tiêu.
-Servlet trả về phản ứng(response) lại cho người gọi của nó. Bộ lọc cuối cùng được áp dụng cho các yêu cầu là bộ lọc đầu tiên áp dụng cho các phản ứng.
-Cuối cùng phản ứng sẽ được thông qua Web container.
4.Demo
Tạo 1 Filter class trong Project đã tạo trước đó. |
Điền đầy đủ thông tin Class Name và packet... |
Tích vào Add information. |
Chọn Edit rồi chọn Servlet: Home như trên. |
RunFile Home và ta được như trên. |
Như ảnh trên ta thấy không thể vào thẳng trang Home mà không Login.
Theo tôi thấy sử dụng tốt filter thì có thể tạo ra một bộ phòng thủ chuyên nghiệp cho application của bạn điều này có thể giúp chúng ta xử lí dữ liệu và quản lý tốt hơn. Cảm ơn.
Các bạn có thể tải Demo của tôi tại đây.
Không có nhận xét nào:
Đăng nhận xét