springMVC的拦截器,主要作用是对用户的请求进行处理,主要用来做权限验证,或者是来判断用户是否登陆,日志记录,或者限制时间点访问。
使用时请求url若与拦截的路径匹配时,对HttpServletRequest和HttpServletResponse做处理,处理完之后再经过controller拦截进行业务逻辑处理。
一、具体在SpringMVC-servlet.xml的配置如下。
<mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**"/> <bean id="sessionInterceptor" class="toutiao.interceptor.SessionInterceptor" /> </mvc:interceptor> <mvc:interceptor> <mvc:mapping path="/**"/> <bean class="toutiao.interceptor.AdminInterceptor"> <property name="mappingURL" value=".*/admin/.*"/> </bean> </mvc:interceptor> </mvc:interceptors>
二、java类必须实现HandlerInterceptor接口。
package org.springframework.web.servlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.method.HandlerMethod; public interface HandlerInterceptor { boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception; void postHandle( HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception; void afterCompletion( HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception; }
正常执行顺序:preHandle-》controller—》postHandle—》afterHandle—》view视图
方法介绍:preHandle()预处理
这样实现的优点,可以对HttpServletRequest做预处理,实现某种功能。