springmvcDay02_02拦截器 异常问题

springmvcDay02_02

异常处理以及拦截器
  1. 异常处理

    涉及三个点

    1. 自定义异常类extends Exception

      public class SysException extends Exception{
          private String exceptionMessage;
      
          public String getExceptionMessage() {
              return exceptionMessage;
          }
      
          public void setExceptionMessage(String exceptionMessage) {
              this.exceptionMessage = exceptionMessage;
          }
      
          public SysException(String exceptionMessage) {
              this.exceptionMessage = exceptionMessage;
          }
      }
      
    2. 自定义异常处理类 implement HandlerExceptionResovler

      public class ExceptionResolver implements HandlerExceptionResolver {
          @Override
          public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
      //        1. 首先打印错误信息
              e.printStackTrace();
      //        2. 判断异常是否为自定义异常的实例
              SysException sysException = null;
              if (e instanceof SysException){
      //             如果是自定义异常的实例直接赋值
                  sysException = (SysException) e;
              }else {
                  sysException = new SysException("不是自定义异常的实例..");
              }
      //        3. 返回视图解析器
              ModelAndView modelAndView = new ModelAndView();
      
              modelAndView.addObject("errorMessage",sysException.getExceptionMessage());
              modelAndView.setViewName("exceptionResolverView");
              return modelAndView;
          }
      }
      
    3. springmvc.xml中配置异常处理器

  2. 拦截器

    两步:

    1. 写拦截器 实现HandlerIntercept接口

      重写三个方法:

      1. 执行前 preHandle [访问handler之前]
      2. 执行后 postHandle [提交handler]
      3. 执行视图之后 afterCompletion [完成后]
    2. 在springmvc.xml中配置拦截器

      <mvc:interceptors>
              <mvc:interceptor>
                  <mvc:mapping path="/*"/>
                  <bean class="com.qqhru.interpetor.MyInterceptOne"></bean>
              </mvc:interceptor>
          </mvc:interceptors>
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值