一、自定义拦截器,需要实现HandlerInterceptor接口
package com.springmvc.interceptor;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyInterceptor implements HandlerInterceptor {
//处理方法执行之前执行
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
return false;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}
二、方法说明
1、preHandle:在处理方法执行之前执行,返回true代表放行,可以让处理方法执行。返回false代表不放行,不让处理方法执行,可以进行请求转发等操作。
2、postHandle:在处理方法执行完返回ModelAndView之气执行,可以对返回的结果进行更改设置。
3、afterCompletion:在请求方法整个流程处理完毕之后执行。
三、配置
配置拦截器:对什么请求进行拦截,使用哪个拦截器进行拦截
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="com.springmvc.interceptor.MyInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!--开启mvc注解驱动-->
<mvc:annotation-driven conversion-service="conversionService"/>
<!--定义生产转换器的工厂,生成自定义的转换器-->
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="com.springmvc.converter.DateConverter"></bean>
</set>
</property>
</bean>
<!--扫描包-->
<context:component-scan base-package="com.springmvc"></context:component-scan>
<mvc:default-servlet-handler></mvc:default-servlet-handler>
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="com.springmvc.interceptor.MyInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
</beans>