1 springMVC拦截器
SpringMVC的拦截器(Interceptor)相当于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。经拦截器按一定的顺序连接成一条链,这条链成为拦截器链(Interceptor Chain)。在访问被拦截的方法或字段是,拦截器链中的拦截器就会按期之前定义的顺序被调用,拦截器也是AOP思想的具体体现。
自定义一个拦截器
第一步:创建一个拦截器类实现HandlerInterceptor接口
第二步:在spring-mvc.xml中配置拦截器
测试:
因为页面被拦截至自定义的拦截器,拦截器中的第一个方法返回的是false,故程序执行至此结束,不会继续执行,控制台就打印出一行信息。
拦截器案例:
如果url的参数param的值是yes就放行并将name属性的值改为"小陈",如果不为yes就不执行该请求页面,在自定义的拦截器中执行相应的方法,跳转至error.jsp页面。
拦截器链中方法的先后执行顺序:preHandle1方法-->preHandle2方法-->目标方法-->postHandle2方法-->postHandle1方法-->afterCompletion2方法-->afterCompletion1方法
2 springMVC异常处理
系统中的异常包括两类:预期异常(无论编译时报不报异常都要处理)和运行时异常(编译时不报运行时报异常)。一般情况的业务开发下,异常就是使用throws Exception往上一层抛由上一层进行处理,在一个spring项目中就是系统的Dao抛向Service再抛向Controller最后抛向SpringMVC的前端控制器由异常处理器进行异常处理。