1. Spring MVC也可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义的拦截器必须实现
HandlerInterceptor接口
2. 自定义拦截器。实现HandlerInterceptor接口。
public class FristInterceptor implements HandlerInterceptor{
/**
* 在渲染视图之后
*
* 作用:释放资源。
*/
@Override
public void afterCompletion(HttpServletRequest arg0,
HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
System.out.println("[FristInterceptor] afterCompletion");
}
/**
* 在调用目标方法之后,但是在渲染视图之前。
*
* 作用:可以对请求域的属性或视图的属性进行修改。
*/
@Override
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
Object arg2, ModelAndView arg3) throws Exception {
System.out.println("[FristInterceptor] postHandle");
}
/**
* 该方法在目标方法之前被调用。
* 若返回值为true,则继续调用后续的拦截器和目标方法。
* 若返回值为false,则不会调用后续的拦截器和目标方法。
*
* 作用:权限,日志,事务等
*/
@Override
public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1,
Object arg2) throws Exception {
System.out.println("[FristInterceptor] preHandle");
return true;
}
}
3.在spring.xml文件中配置自定的拦截器。(这样在每次发送请求时,会先经过拦截器,进行一系列的处理)
<mvc:interceptors>
<!-- 配置自定义的拦截器 -->
<bean class="com.lishenhuan.springmvc.interceptor.FristInterceptor"></bean>
</mvc:interceptors>
4. 关于在spring.xml文件中配置拦截器的详细
就是可以在<mvc:interceptors></mvc:interceptors>标签中的<mvc:interceptor></mvc:interceptor>的
<mvc:mapping path="/"/>标签,来设定指定拦截的资源。
<mvc:interceptors>
<!-- 配置自定义的拦截器 -->
<bean class="com.lishenhuan.springmvc.interceptor.FristInterceptor"></bean>
<!-- 配置拦截器作用的路径 -->
<mvc:interceptor>
<mvc:mapping path="/emps"/>
<bean class="com.lishenhuan.springmvc.interceptor.SecondInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>