怎么在springMVC中自定义拦截器
时间: 2024-05-19 15:15:55 浏览: 117
SSM笔记-SpringMVC的自定义拦截器
在Spring MVC中自定义拦截器有以下步骤:
1. 创建一个实现HandlerInterceptor接口的拦截器类。在该类中实现preHandle、postHandle、afterCompletion三个方法。
2. 在Spring配置文件中配置该拦截器。可以使用<mvc:interceptors>标签配置,也可以使用注解@Configuration和@EnableWebMvc配置。
3. 配置拦截器的拦截规则。可以使用<mvc:interceptor>标签配置,也可以使用注解@Interceptor和@Order配置。
4. 使用拦截器。在Controller类或方法上使用注解@Interceptor或@WebMvcConfigurerAdapter.addInterceptors()方法添加拦截器。
以下是一个简单的示例:
1. 创建拦截器类
public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("MyInterceptor preHandle");
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("MyInterceptor postHandle");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("MyInterceptor afterCompletion");
}
}
2. 配置拦截器
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="com.example.MyInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
3. 配置拦截规则
@Interceptor
@Order(1)
public class MyInterceptor implements HandlerInterceptor {
...
}
4. 使用拦截器
@Controller
public class MyController {
@Interceptor(MyInterceptor.class)
@RequestMapping("/hello")
public String hello() {
return "hello";
}
}
阅读全文