- vừa được xem lúc

Giống và khác nhau giữa Filter và Interceptor trong Java Spring

0 0 22

Người đăng: NamTC

Theo Viblo Asia

Filter và Interceptor là hai thành phần khác nhau được sử dụng trong Spring MVC để thực hiện các tác vụ trước hoặc sau khi một yêu cầu HTTP được xử lý.

Filter là một thành phần được triển khai bởi lớp javax.servlet.Filter. Filter được gọi trước khi một yêu cầu HTTP được xử lý bởi một bộ điều khiển. Filter có thể được sử dụng để thực hiện các tác vụ như:

  • Thêm hoặc thay đổi đầu đề HTTP.
  • Kiểm tra quyền của người dùng.
  • Ghi nhật ký hoạt động của người dùng.
  • Thống kê thời gian phản hồi của yêu cầu.

Interceptor là một thành phần được triển khai bởi giao diện org.springframework.web.servlet.HandlerInterceptor. Interceptor được gọi trước hoặc sau khi một yêu cầu HTTP được xử lý bởi một bộ điều khiển. Interceptor có thể được sử dụng để thực hiện các tác vụ tương tự như filter.

Sự khác biệt chính giữa filter và interceptor là filter được gọi trước khi bộ điều khiển được gọi, trong khi interceptor được gọi sau khi bộ điều khiển được gọi. Điều này có nghĩa là filter có thể được sử dụng để thực hiện các tác vụ mà không cần biết bộ điều khiển nào sẽ được gọi. Interceptor, mặt khác, chỉ có thể được sử dụng để thực hiện các tác vụ liên quan đến bộ điều khiển được gọi.

Dưới đây là một bảng so sánh các tính năng của filter và interceptor:

Tính năng Filter Interceptor
Được gọi trước hay sau bộ điều khiển Trước Sau
Có thể được sử dụng để thực hiện các tác vụ mà không cần biết bộ điều khiển nào sẽ được gọi Không
Có thể được sử dụng để thực hiện các tác vụ liên quan đến bộ điều khiển được gọi Không
Được triển khai bởi lớp javax.servlet.Filter Giao diện org.springframework.web.servlet.HandlerInterceptor

Lựa chọn sử dụng filter hay interceptor phụ thuộc vào nhu cầu cụ thể của ứng dụng. Nếu bạn cần thực hiện các tác vụ mà không cần biết bộ điều khiển nào sẽ được gọi, thì bạn nên sử dụng filter. Nếu bạn cần thực hiện các tác vụ liên quan đến bộ điều khiển được gọi, thì bạn nên sử dụng interceptor.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Java Spring - Tổng hợp các chủ đề từ cơ bản đến nâng cao

Trong bài viết này mình xin được tổng hợp một số chủ đề từ cơ bản đến nâng cao khi lập trình web với Java. Bên cạnh các kiến thức căn bản như làm thế nào để tạo mới project từ https://start.

0 0 63

- vừa được xem lúc

[JAVA] (Overview) Phần 1 - Spring vs. Spring Boot vs. Spring MVC

Tổng quan. Spring Framework từ lâu đã không còn xa lạ gì đối với lập trình viên Java nói chung và Java Web nói riêng, nó cung cấp rất nhiều tính năng giúp xây dựng sản phẩm một cách thuận tiện và nhan

0 0 48

- vừa được xem lúc

Spring Boot - Firebase push notification

1. Tạo tài khoản trên FCM console.

0 0 39

- vừa được xem lúc

Hikari: Connection is not available, request timeout after 30000ms

Ngày xửa ngày xưa... mà cũng không xưa lắm, câu chuyện xảy ra mới cách đây vài năm trước... Nhưng đừng lo, nếu chuyện đó xảy ra thì hi vọng Google đã kịp index bài viết của mình để các bạn search ra v

0 0 27

- vừa được xem lúc

Spring boot 3.0 và Spring security 6.0

Như mọi người đã biết thì Spring Boot đã ra mắt phiên bản thứ 3 vào cuối tháng 11(24/11/2022) mang theo khá nhiều sự thay đổi, một trong số đó là Spring Security. Nếu như ở phiên bản Spring Security 5

0 0 34

- vừa được xem lúc

(Phần 2) Spring boot 3.0 và Spring Security 6.0

Trong phần 1 của series https://viblo.asia/p/phan-1-spring-boot-30-va-spring-security-60-GAWVpdBYV05 chúng ta đã hoàn thành bước config cho ứng dụng.

0 0 19