一、攔截器
1.攔截器的配置
- SpringMVC中的攔截器用于攔截控制器方法的執(zhí)行
- SpringMVC中的攔截器需要實現(xiàn)HandlerInterceptor
- SpringMVC的攔截器必須在SpringMVC的配置文件進行配置
①創(chuàng)建攔截器,繼承接口HandlerInterceptor.
@Component
public class FirstInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
return false;//攔截
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}
?②在springMVC配置文件里配置攔截器
<!--攔截器1 攔截所有的請求-->
<mvc:interceptors>
<bean class="com.atguigu.interceptor.FirstInterceptor"></bean>
</mvc:interceptors>
?<!--攔截所有的請求,除了/-->
<!--攔截器2 攔截所有的請求-->
<mvc:interceptors>
<mvc:interceptor>
<!--攔截所有的請求,除了/-->
<mvc:mapping path="/**"/>
<mvc:exclude-mapping path="/"/>
<ref bean="firstInterceptor"></ref>
</mvc:interceptor>
</mvc:interceptors>
2.攔截器的三個抽象方法
①preHandle:控制器方法執(zhí)行之前執(zhí)行preHandle()。preHandle方法返回true放行,調用控制器方法。返回False攔截,不調用控制器方法。
②postHandle:控制器方法執(zhí)行之后執(zhí)行postHandle()
③afterComplation:處理完視圖和模型數(shù)據(jù),渲染視圖完畢之后執(zhí)行afterComplation
3.多個攔截器的執(zhí)行順序
若每個攔截器的preHandle()都返回true
此時多個攔截器的執(zhí)行順序和攔截器在SpringMVC的配置文件的配置順序有關:
preHandle()會按照配置的順序執(zhí)行,而postHandle()和afterComplation()會按照配置的反序執(zhí)行
若某個攔截器的preHandle()返回了false文章來源:http://www.zghlxwxcb.cn/news/detail-478401.html
preHandle()返回false和它之前的攔截器的preHandle()都會執(zhí)行,postHandle()都不執(zhí)行,返回false的攔截器之前的攔截器的afterComplation()會執(zhí)行文章來源地址http://www.zghlxwxcb.cn/news/detail-478401.html
到了這里,關于第9章:SpringMVC的攔截器的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!