Sobes.tech
Middle

Филтрҳо, Интерсепторҳо ва Листенерҳо дар Spring чӣ фарқ доранд?

sobes.tech AI

Ҷавоб аз AI

  • Филтрҳо (Spring Web): Дар сатҳи сервлетҳо дархостҳо ва ҷавобҳоро мегиранд. Барои тағир додани дархост/ҷавоб, тасдиқ, иҷозат ва сабт пеш аз расидани дархост ба контроллер истифода мешаванд. Ба намунаҳои URL татбиқ мешаванд.

  • Interceptors (Spring MVC): Дар сатҳи Spring MVC дархостҳоро мегиранд. Пас аз филтрҳо, аммо пеш аз коркарди дархост аз ҷониби контроллер. (preHandle), (postHandle) ва (afterCompletion) имкон медиҳанд, ки амалҳоро пас аз коркарди дархост иҷро кунанд. Барои тағир додани модел, санҷиши ҳуқуқҳо дар сатҳи контроллер истифода мешаванд. Ба методҳои контроллер татбиқ мешаванд.

  • Listeners (Spring Context): Ба ҳодисаҳои дар контексти Spring ҷавоб медиҳанд. Дар вақти оғоз ё боздошти контекст, ё дар вақти гирифтани навъи муайяни ҳодиса амалҳоро иҷро мекунанд. Барои оғоз кардани захираҳо, тозакунӣ ё иҷрои вазифаҳо дар вақти тағирёбии ҳолати барнома истифода мешаванд. Аз дархостҳои веб мустақиланд. Интерфейси ApplicationListener-ро иҷро мекунанд.

Инҷо муқоиса дар ҷадвал:

Хусусият Филтрҳо Interceptors Listeners
Сатҳ Servlet Spring MVC Spring Context
Вақт Пеш ва баъд аз сервлет Пеш, баъд ва дар анҷоми Вақте ки ҳодиса рӯй медиҳад
Ба чӣ татбиқ мешаванд намунаҳои URL Методҳои контроллер Навъҳои ҳодиса
Ҳадаф Тағир додани дархостҳо/ҷавобҳо, тасдиқ Манипулясияи модел, иҷозат дар сатҳи контроллер Ҳамоҳангсозӣ бо ҳодисаҳои контекст
Интерфейс javax.servlet.Filter org.springframework.web.servlet.HandlerInterceptor org.springframework.context.ApplicationListener