SpringMvc的异常处理:
浏览器--->前端控制器--->web--->service--->dao这是执行过程,那么当异常从dao抛出一直向上抛到前端控制器时
就需要做相应的处理,即异常处理!
那么自定义异常处理器需实现HandlerExceptionResolver接口。然后配置bean即可
异常处理器配置:
1.编写自定义异常类
2.编写异常处理器
3.配置异常处理器Bean(跳转到提示)
SpringMvc拦截器:
filter和interceptor是前端控制器之后的组件,所以使用/*,拦截器类似servlet开发中的filter
用于对处理器进行预处理和后处理
过滤器和拦截器的区别:
过滤器:servlet规范中的一部分,任何java web工程都可以使用
拦截器:spring mvc框架自己的,只有使用spring mvc框架才可以使用
过滤器:url-pattern中配置/*之后,可以对所有放文的资源拦截
拦截器:只会拦截访问控制器的方法,如果访问的是jsp,html,css,image或者js不会拦截
拦截器也是AOP思想的具体应用
实现拦截功能:
1.编写拦截器类,需要实现HandlerInterceptor接口
可以重写里面的方法
preHandle预处理方法,返回false表示不放行,controller也不会执行
postHandle后处理方法,可用于关闭资源
afterCompletion会在success.jsp执行后,执行此方法
小结:预处理与后处理方法都可以指定下一步的处理:转发、重定向...
程序测试日志输出如下:
拦截器预处理 执行
拦截器后处理 执行
error.jsp执行
success.jsp执行
拦截器完成后 执行
2.配置拦截器
springmvc.xml中配置拦截器
<mvc:interceptors>
<!--配置具体的拦截器-->
<mvc:interceptor>
<!--拦截的路径-->
<mvc:mapping path="/my/**"/>
<!--拦截所有的访问-->
<!--<mvc:mapping path="/**"/>-->
<bean class="com.kali.interceptor.MyInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
SpringMvc拦截器与异常处理(个人笔记)
最新推荐文章于 2023-12-28 15:57:10 发布