Thứ Tư, 18 tháng 6, 2014

Tìm hiểu về Filter

I. Khái niệm filter :

-Filter chúng ta có thể hiểu một cách đơn giản là bộ lọc, nhiệm vụ của nó 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. Vì thế, 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.
-Filter được sử dụng  trước khi xử lý yêu cầu và sau  khi thực hiện của phản ứng. Số lượng các filter không hạn chế. Filter được cấu hình trong mô tả triển khai của một ứng dụng web.

II.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.

III.Filter API :

Filter API là một phần của Servlet API , Interface Filter có trong gói javax.servlet
+ void init(FilterConfig filterConfig): được trợ giúp bởi web container để chỉ ra một bộ lọc mà nó đang được đặt vào dịch vụ.
+ void doFilter(ServletRequest request, ServletResponse response, FilterChain chain): gọi bởi container mỗi lần một cặp yêu cầu / đáp ứng được truyền qua chuỗi do một yêu cầu khách hàng cho một nguồn tài nguyên ở cuối của chuỗi.
+void destroy(): để chỉ ra một bộ lọc mà nó đang được đưa ra khỏi dịch vụ.

IV. Ứng dụng trên bài Demo JDBC

Bước 1 : Ta thấy rằng , ở bài lần trước , nếu ta không đăng nhập mà nhập thẳng url như sau  http://localhost:8080/DemoAssignmentpart1.2/HomeServlet thì nó vẫn cho phép ta vào thẳng trang Home mà không cần gõ username và password , điều này là sự thiếu sót vô cùng lớn. Ta dùng filter để khắc phục như sau :

* Tạo filter trong Web Application đã có :

Chọn Add Information
Chọn Edit , ta chọn HomeServlet 
Code trong Filter vừa tạo như sau : 


Đây là kết quả chúng ta thấy , chúng ta không thể vào thẳng trang Home mà bỏ qua bước đăng nhập nữa :
Các bạn có thể download Demo tại đây

V. Cảm nhận

Theo tôi thấy nếu chúng ta có thể sử dụng tốt filter thì có thể tạo ra một bộ phòng thủ chuyên nghiệp cho ứng dụng của mình, điều này có thể giúp chúng ta xử lí dữ liệu tốt hơn.

Không có nhận xét nào:

Đăng nhận xét