SpringMvc拦截器与异常处理(个人笔记)

本文详细介绍了SpringMvc中的异常处理和拦截器机制。自定义异常处理器需实现HandlerExceptionResolver接口,并配置bean来处理异常。拦截器则通过实现HandlerInterceptor接口,用于预处理和后处理请求。拦截器只会拦截控制器方法,不涉及静态资源。文章还展示了拦截器的执行流程及如何配置拦截器,并提供了程序测试的日志输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值