1.创建项目配置环境。
2.写一个controller类作为测试
@Controller
@RequestMapping("/user")
public class UserController
{
@RequestMapping("/testInterceptor")
public String testInterceptor()
{
System.out.println("testInterceptor");
return "success";
}
}
3.在interceptor包下创建一个测试类MyInterceptor,要实现HandlerInterceptor接口并重写其中的方法。
public class MyInterceptor01 implements HandlerInterceptor
{
@Override
//pre表示controller执行前拦截,预处理(可以用在验证登陆等)
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception
{
System.out.println("前拦截器执行了");
//如果后面不放行可以使其跳转到其他页面
//request.getRequestDispatcher("/WEB-INF/pages/error.jsp").forward(request, response);
//true表示放行,false表示不放行,不会到后面的controller
return true;
}
@Override
//post表示controller执行后,jsp执行前拦截
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception
{
System.out.println("后拦截器执行了");
}
@Override
//after表示页面加载后执行,可以用了释放资源等
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception
{
System.out.println("最后拦截器执行了");
}
}
4.在配置文件springmvc.xml
中对拦截器进行配置才能生效
<!-- 配置拦截器-->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/user/*"/>
<bean class="com.HSY.interceptor.MyInterceptor01"></bean>
</mvc:interceptor>
</mvc:interceptors>
5.进行测试,测试结果和预想一致