springmvc標籤之mvc:interceptors

在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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章