- 一般的,對瀏覽器的請求進行攔截過濾,是通過Filter 實現,在 springMVC 中提供的 HandlerInterceptorAdapter 這個適配器,集成這個便可以實現Filter 所有功能進行攔截,
- HandlerInterceptorAdapter 有4個方法
- preHandle(): 預處理, 在業務處理器被調用之前執行,常用做權限驗證,字符集等
- postHandle(): 在業務處理執行完成返回渲染頁面之前執行;
- afterCompletion() 在業務處理器被調用之後執行
@Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // 獲取並校驗登錄認證註解 if(handler instanceof HandlerMethod) { }else{ return true; } if(annotation == null){ return true; } //從header中獲取token String token = request.getHeader("token"); //如果header中不存在token,則從參數中獲取token if(StringUtils.isBlank(token)){ token = request.getParameter("token"); } //token爲空 if(StringUtils.isBlank(token)){ throw new RRException("token不能爲空"); } //查詢token信息 //設置userId到request裏,後續根據userId,獲取用戶信息 request.setAttribute(USER_KEY, tokenEntity.getUserId()); return true; }
springMVC 過濾/攔截器 HandlerInterceptorAdapter
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.