標籤:system pat extend nbsp inter creat created mvc beans
HandlerInterceptor
攔截器用的機會不多,在這裡做資料簽名校正不錯,不過更多的人喜歡寫Filter,
這個切面神奇的地方是:可以在頁面渲染的不同階段使用Writer,如果需要往所有頁面添加一點浮水印或者通用代碼,代碼可以寫在這。
import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * 請求攔截器, * * Created by 12614 on 2018/5/11. */public class TestInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception { System.out.println("TestInterceptor: preHandle"); //TODO 請求攔截處理邏輯 return true; } @Override public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception { System.out.println("TestInterceptor: postHandle"); //TODO 頁面渲染前置邏輯 //E.G. httpServletResponse.getWriter().write("-----------------------"); } @Override public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception { System.out.println("TestInterceptor: afterCompletion"); //TODO 頁面渲染後置邏輯 //E.G. httpServletResponse.getWriter().write("========================"); }}Spring配置
<mvc:interceptors> <mvc:interceptor> <!--進行攔截的路徑--> <mvc:mapping path="/**"/> <!--不進行攔截的路徑--> <mvc:exclude-mapping path="/lib/**" /> <beans:bean class="xxxxx全類名"/> </mvc:interceptor></mvc:interceptors>
SpringBoot配置
import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.InterceptorRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;/** * Created by 12614 on 2018/5/11. */@Configurationpublic class ApplicationConfigurer extends WebMvcConfigurerAdapter { @Override public void addInterceptors(InterceptorRegistry registry) { super.addInterceptors(registry); registry.addInterceptor(new TestInterceptor()) .addPathPatterns("/**.ftl","/**.json"); }}
SpringBoot(三)HandlerInterceptor