最近用java的springBoot框架開發一個登陸的功能,發現springboot有個頗有意思的功能就是攔截器能能php
其實攔截器就至關於php的構造函數,不對,應該是包含了php的構造函數。java
具體步驟以下:spring
也就是框架在啓動的時候先要建立一個攔截器api
新建類而後去繼承WebMvcConfigurerAdapter,而後重寫addInterceptors這個方法,建立攔截器就在這個方法裏面springboot
@Override public void addInterceptors(InterceptorRegistry registry) { //註冊自定義攔截器,添加攔截路徑和排除攔截路徑 registry.addInterceptor(new InterceptorConfig()).addPathPatterns("api/path/**").excludePathPatterns("api/path/login");
addInterceptor:建立攔截器對象框架
addPathPatterns:url正則匹配ide
excludePathPatterns:排除的路徑函數
(注意:addInterceptors這個方法所在的類必需要加註釋@Configuration不然是行不通的,網上好多和我相同的方法,都是沒有這個註解)post
public class AuthInterceptor implements HandlerInterceptor{ /** * 進入請求的時候攔截 */ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { Log.info("---------------------開始進入請求地址攔截----------------------------"); return false; } /** * 視圖渲染以前攔截 */ @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { Log.info("---------------------處理請求完成後視圖渲染以前的處理操做----------------------------"); } /** * 視圖渲染以後 */ @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { Log.info("---------------------視圖渲染以後的操做----------------------------"); } }
preHandle:這個方法是url地址剛請求的時候就進這個方法url
postHandle:這個方法是請求的方法執行完了,要渲染頁面了,那個先進這個方法
afterCompletion:這個方法是頁面渲染後觸發這個方法
若是是登陸註冊就用preHandle這個作攔截就能夠了,若是返回true就經過攔截器了,不然不經過