在springMVC自定義攔截器
具體方法及標籤
<!-- 自定義攔截器 -->
<!-- 當設置多個攔截器時,先按順序調用preHandle方法,然後逆序調用每個攔截器的postHandle和afterCompletion方法 -->
<mvc:interceptors>
<mvc:interceptor>
<!-- 攔截路徑 -->
<mvc:mapping path="/my/**" />
<!-- 不攔截路徑 -->
<mvc:exclude-mapping path="/static/**" />
<!-- 攔截類 -->
<bean class="com.jy.service.springMvcHandlerInterceptorAdapter" />
</mvc:interceptor>
</mvc:interceptors>
springMvcHandlerInterceptorAdapter代碼如下
public class springMvcHandlerInterceptorAdapter extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
System.out.println("--------------------preHandle---------------------");
String host = request.getRemoteHost();
System.out.println("host:"+host);
String url = request.getRequestURI();
System.out.println("url:"+url);
return true;
}
@Override
public void postHandle(
HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)
throws Exception {
System.out.println("--------------------postHandle---------------------");
}
@Override
public void afterCompletion(
HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
System.out.println("--------------------afterCompletion---------------------");
}
}
調用方法
@Controller
@RequestMapping(value="/my")
public class indexController {
@RequestMapping(value="/index")
public String index() {
System.out.println("----------indexController-------------");
return "index";
}
}
瀏覽器127.0.0.1/sonweb001/my/index查看調用順序
可以看到調用順序爲preHandle》Controller》postHandle》afterCompletion