拦截器:
常用与用户登录验证。
原理:
请求--> 拦截器preHandle() --> true --> Controller --> 拦截器postHandle() --> ViewResolver(JSP) --> 拦截器afterCompletion() --> 响应。
使用方法:
1.自定义一个拦截器类,实现HandlerInterceptor接口
这里是执行拦截器的方法顺序。
preHandle():处理器执行前被调用。返回true会继续调用拦截器和处理器;返回false则中断执行后续拦截器和处理器;
postHandle():处理器执行后,视图处理前调用。此时可以通过modelAndView对象对模型数据进行处理或视图进行处理;
afterCompletion:请求处理完后调用,如性能监控中我们可以在此记录结束时间并输出消耗时间,还可以进行资源清理。
2.在applicationContext.xml配置拦截器<mvc:interceptors>
异常处理:
1、(全局异常)使用SimpleMappingExceptionResolver在配置文件(applicationContext.xml)中进行配置
2、(比较常用)使用@ExceptionHandler在本类中加入一个自定义的异常处理方法
3、实现HandlerExceptionResolver接口自定义异常处理器
4、在web.xml增加<error-page>定义,绝大多数服务器都支持。