2 回答

TA貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊
在提到它可以在 Web 應(yīng)用程序中的什么地方使用之前,我想提一下關(guān)于攔截器的 2 個(gè)事實(shí) -
在 spring 中,攔截器位于 DispatecherServlet 和 Controller 之間(你已經(jīng)知道了)
攔截器界面就像 -
public interface HandlerInterceptor {
boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler);
void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView mav);
void afterCompletion(HttpServletRequest request, HttpServeletResponse response, Object handler, Exception ex);
}
基于以上事實(shí),您可以在以下情況下使用攔截器 -
您可以在渲染視圖之前做額外的工作。例如,當(dāng)全局導(dǎo)航欄 (GNB) 要求根據(jù)其權(quán)限以不同方式顯示項(xiàng)目時(shí),可以處理網(wǎng)頁(yè)。
可以模仿AOP。
@RequestMappingIf
該聲明為請(qǐng)求指定了一個(gè)請(qǐng)求,然后它的 HandlerMethod(@Controller
) 將被調(diào)用一個(gè)處理程序 HandlerMethod。HandlerMethod 通過(guò)識(shí)別附加信息,例如方法簽名,您可以確定是否運(yùn)行邏輯。這樣您就可以使用攔截器作為登錄(攔截HttpServletRequest
),修改 JSON 或在轉(zhuǎn)到控制器之前或之后對(duì)其進(jìn)行驗(yàn)證。

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超6個(gè)贊
攔截器的一些實(shí)時(shí)用法:
維護(hù)會(huì)話/會(huì)話管理。
電子郵件拍攝和數(shù)據(jù)庫(kù)檢查/記錄。
身份驗(yàn)證和授權(quán)驗(yàn)證。
請(qǐng)求時(shí)間計(jì)算。/ 性能調(diào)整。ETC。
添加回答
舉報(bào)