2 回答

TA貢獻1765條經驗 獲得超5個贊
在提到它可以在 Web 應用程序中的什么地方使用之前,我想提一下關于攔截器的 2 個事實 -
在 spring 中,攔截器位于 DispatecherServlet 和 Controller 之間(你已經知道了)
攔截器界面就像 -
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);
}
基于以上事實,您可以在以下情況下使用攔截器 -
您可以在渲染視圖之前做額外的工作。例如,當全局導航欄 (GNB) 要求根據其權限以不同方式顯示項目時,可以處理網頁。
可以模仿AOP。
@RequestMappingIf
該聲明為請求指定了一個請求,然后它的 HandlerMethod(@Controller
) 將被調用一個處理程序 HandlerMethod。HandlerMethod 通過識別附加信息,例如方法簽名,您可以確定是否運行邏輯。這樣您就可以使用攔截器作為登錄(攔截HttpServletRequest
),修改 JSON 或在轉到控制器之前或之后對其進行驗證。
添加回答
舉報