Филтрҳо, Интерсепторҳо ва Листенерҳо дар 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 |