zoukankan      html  css  js  c++  java
  • SpringMVC 拦截器 异常

    27.自定义拦截器
    Spring MVC也可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义的拦截器必 须实现HandlerInterceptor接口
    1.自定义实现类实现 HandlerInterceptor接口

    2.在springmvc配置文件中配置相对应的拦截器
    <mvc:interceptors>
    <!--配置自定义拦截器 ,所有的路径都拦截 -->
    <bean class="com.neuedu.springmvc.filter.MyFilter"></bean>
    </mvc:interceptors>

    – preHandle():该方法在目标方法之前被调用,
    若返回值为true,则继续调用后续的拦截器和目标方法
    若返回值为false,则不会再调用后续的拦截器和目标方法

    可以考虑做权限,日志或者事务等!

    – postHandle():调用目标方法之后,但渲染视图之前被调用

    可以对请求域中的属性或者视图做出修改!



    – afterCompletion():渲染视图之后被调用,

    可以在该方法中进行一些资源清理的操作。


    关于拦截器的配置:
    <mvc:interceptors>
    <!--配置自定义拦截器 ,所有的路径都拦截 -->
    <bean class="com.neuedu.springmvc.filter.MyFilter"></bean>
    <!-- 关于拦截器的配置问题 ,可以通过<mvc:interceptor>来配置使用哪个拦截器来【不】拦截的路径-->
    <mvc:interceptor>
    <!-- 用<mvc:mapping>标签指定要拦截的路径 -->
    <mvc:mapping path="/employ"/>
    <!-- 指定使用哪个拦截器进行拦截 -->
    <bean class="com.neuedu.springmvc.filter.SecondFilter"></bean>
    </mvc:interceptor>
    </mvc:interceptors>


    26.SpringMVC的异常处理:

    1.加上<mvc:annotation-driven>标签:

    2.在当前Handler中定义由@ExceptionHandler注解修饰的方法,用于处理异常信息!
    注意:
    1.@ExceptionHandler方法修饰的入参中可以加入Exception类型的参数,该参数即对应发生的异常信息
    2.@ExceptionHandler方法的入参中不能传入Map.若希望把异常信息传到页面上,需要使用ModelAndView作为方法的返回值。

    3.@ExceptionHandler 注解定义的方法优先级问题:
    例如发 生的是NullPointerException,但是声明的异常有 RuntimeException 和 Exception,此候会根据异常的最近 继承关系找到继承深度最浅的那个 @ExceptionHandler 注解方法,即标记了 RuntimeException 的方法


    4.ExceptionHandlerMethodResolver 内部若找不 到@ExceptionHandler 注解的话,会找@ControllerAdvice 中的@ExceptionHandler 注解方法

    27.基于配置的异常处理:
    如果希望对所有异常进行统一处理,可以使用 SimpleMappingExceptionResolver,它将异常类名映射为 视图名,即发生异常时使用对应的视图报告异常
    <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
    <!-- 指定在在request域中获取异常信息所需要的key:即ex -->
    <property name="exceptionAttribute" value="ex"></property>
    <!-- 指定异常映射 -->
    <property name="exceptionMappings">
    <props>
    <!-- 由prop标签的key属性指定发生异常的全类名,由值指定出现异常去哪个页面! -->
    <prop key="java.lang.ArithmeticException">error</prop>
    </props>
    </property>
    </bean>

  • 相关阅读:
    API从网站中解放出来,也许会带来web3.0
    ASP.NET中MD5和SHA1加密的几种方法
    搜狐博客推出开放平台 1月3日举办开发者论坛
    Open Source PDF Libraries in C#
    .Net线程常见问题和误解解答集锦
    降低车辆油耗的十大不变法门
    知己知彼,百战不殆管理软件这个行业
    求职指南:英文求职简历十大忌讳
    .net中实现运行时从字符串动态创建对象
    用 .NET 开发的轻量级 UI 测试自动化.NET教程,.NET Framework
  • 原文地址:https://www.cnblogs.com/zhaosong-0102/p/7425168.html
Copyright © 2011-2022 走看看