SpringMVC框架學習筆記(6)——攔截器

SpringMVC攔截器須要實現接口HandlerInterceptorjava

有3個方法,分別在請求處理前、請求處理後和在DispatcherServlet處理後執行web

實現代碼:spring

package interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

public class MyInterceptor implements HandlerInterceptor {

    //在DispatcherServlet處理後執行,清理工做
    @Override
    public void afterCompletion(HttpServletRequest arg0,
            HttpServletResponse arg1, Object arg2, Exception arg3)
            throws Exception {

    }

    //在請求處理方法後執行
    @Override
    public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
            Object arg2, ModelAndView arg3) throws Exception {
        System.out.println("-----處理後-----");

    }

    //在請求處理方法前執行
    //返回true執行下一個攔截器,返回false不執行
    @Override
    public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1,
            Object arg2) throws Exception {
        System.out.println("-----處理前-----");
        return true;
    }

}
View Code

如何將攔截器配置到對應請求上spring-mvc

首先引入SpringMVC命名空間mvc

xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd"

配置攔截器app

<mvc:interceptors>
   <mvc:interceptor>
       <mvc:mapping path="/**"/>
       <bean class="interceptor.MyInterceptor"></bean>
   </mvc:interceptor>
</mvc:interceptors>

interceptors表示多個攔截器ide

interceptor表示單個攔截器post

/**表示根路徑及根路徑下全部子路徑spa

/test/*表示test的一級子路徑好比/test/testcode

/test/**表示test的一級子路徑及一級子路徑下的全部子路徑

bean指向的是配置的攔截器

bean直接寫在interceptors裏表示通用攔截器

相關文章
相關標籤/搜索