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

Spring Boot Interceptor và những điều cần biết

0 0 15

Người đăng: Hồ Huy Luật

Theo Viblo Asia

1. Spring Interceptor là gì?

Trong Spring , khi một request được gửi đến controller, trước khi request được xử lý bởi Controller, nó phải vượt qua các Interceptor (0 hoặc nhiều).

Spring Interceptor là một khái niệm khá giống với Servlet Filter.

Spring Interceptor chỉ áp dụng đối với các request đang được gửi đến một Controller.

image.png

Bạn có thể sử dụng Interceptor để làm một số việc, chẳng hạn như ghi lại Log, thêm hoặc cập nhập các cấu hình trước khi request được xử lý bởi Controller, ... Một trong các ứng dụng Spring Boot Mvc có sử dụng Interceptor là "Ứng dụng web đa ngôn ngữ"

  • Lớp Interceptor của bạn cần phải thực hiện interface org.springframework.web.servlet.HandlerInterceptor hoặc mở rộng từ lớp org.springframework.web.servlet.handler.HandlerInterceptorAdapter.

image.png

Bạn cần phải triển khai 3 phương thức trừu tượng:

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)

public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)

public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)

Chú ý: phương thức preHandle trả về true hoặc false. Nếu trả về true nghĩa là request sẽ tiếp tục đi tới đích của nó (Là một Controller) .
  • Một request có thể phải vượt qua nhiều Interceptor image.png

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

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.

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

Tóm lại, việc 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

Tài nguyên nghiên cứu sâu Html

1. Articles and standards. . HTML 5.

0 0 198

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

Embedded Template in Go

Getting Start. Part of developing a web application usually revolves around working with HTML as user interface.

0 0 57

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

Full Stack Developer Roadmap 2021

Cách để trở thành một Full Stack Web Developer trên thế giới hiện nay. Các công ty đang luôn săn đón những developer có nhiều kĩ năng để cung cấp cho họ sự linh hoạt trong các dự án.

0 0 38

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

Những kiến thức hay về Gradient: Gradient đẹp nhất chỉ được tìm thấy ở ngoài thiên nhiên!

. Quen thuộc từ lâu với rất nhiều người, nền Gradient chỉ là những bức nền với 2 hay nhiều dải màu sắc được hòa trộn với nhau. Đơn giản là vậy, nhưng càng ngày Gradient càng phổ biến hơn trong thiết kế Website ngày nay.

0 0 300

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

What Is Session Fixation?

Session Fixation là một kỹ thuật tấn công web. Kẻ tấn công lừa người dùng sử dụng session ID đặc biệt.

0 0 46

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

Làm thế nào để Design của Website thu hút hơn?

Xin chào các bạn. Bởi thế, không phải bàn cãi, thiết kế giao diện vừa thu hút, vừa chuyên nghiệp và ấn tượng là một trong những yếu tố quan trọng nhất trong cả quá trình phát triển 1 website.

0 0 36