美文网首页
springMVC异常处理

springMVC异常处理

作者: 游牧族人 | 来源:发表于2018-05-06 16:12 被阅读22次

Controller代码:

@Controller
@RequestMapping("/")
public class LoginController {

    private LoginDao loginDao;
    @Autowired
    public LoginController(LoginDao loginDao){
        this.loginDao = loginDao;
    }

    @RequestMapping(value = "login", method = RequestMethod.POST)
    public String login(User user, Model model){
        // loginDao.print(user);
        // model.addAttribute("msg","hahaha");
        System.out.println(1/0);
       return "login";
    }
}

ExceptionHandler代码:

@ControllerAdvice
public class MyExceptionHandler {
   @ExceptionHandler(value = Exception.class)
   public String loginHandler(Exception e){
       System.out.println("异常处理!!");
       return "redirect:login.jsp";
   }
}

@ControllerAdvice+@ExceptionHandler实现全局异常处理。
@ExecptionHandler注解表示该方法为异常处理方法,@ControllerAdvice注解表示该类中所有的标注@ExecptionHandler、@InitBinder,@ModelAttribute的方法都可以被应用到所有标注了@RequestMapping注解的方法中。
在这种全局异常处理方式中,我们一定要在springmvc-serlet.xml中配置<mvc:annotation-driven />标签。
<mvc:annotation-driven/>标签对应的解析类是org.springframework.web.servlet.config.AnnotationDrivenBeanDefinitionParser,这个标签的作用是向工厂中注册以下几个类:

RequestMappingHandlerMapping-----------------(1)
BeanNameUrlHandlerMapping--------------------(2)
RequestMappingHandlerAdapter-----------------(3)
HttpRequestHandlerAdapter--------------------(4)
SimpleControllerHandlerAdapter---------------(5)
ExceptionHandlerExceptionResolver------------(6)
ResponseStatusExceptionResolver--------------(7)
DefaultHandlerExceptionResolver--------------(8)

(1)和(2)是HandlerMapping接口的实现类,用来处理请求映射。(1)是为了处理@RequestMapping注解,(2)会将controller类的名字映射为请求url。
(3)(4)(5)用来处理请求条件,用来确定调用哪个controller的哪个方法来处理当前请求。(3)用来处理@Controller注解,支持自定义方法参数和返回值。(4)用来处理继承HttpRequestHandler的处理器。(5)用来处理继承自Controller接口的处理器。
(6)(7)(8)是用来处理异常的解析器。其中的ExceptionHandlerExceptionResolver就是来处理@ExceptionHandler注解的, 因此若是不使用<mvc:annotation-driven/>标签,这种全局异常处理方式是不可用的

相关文章

  • 11|第十一课:异常处理

    一、异常处理 springMVC实现异常处理,必须实现HandlerExceptionResolver接口。 该接...

  • Spring Mvc 异常处理

    SpringMvc 异常全局解读 异常处理思路 首先来看一下在springmvc中,异常处理的思路 如上图所示,系...

  • springMVC异常处理

    Controller代码: ExceptionHandler代码: @ControllerAdvice+@Exce...

  • SpringMVC异常处理

    1. 自定义异常类 2. 自定义异常处理器 implements HandlerExceptionResolver...

  • SpringMVC异常处理

    系统的 dao、service、controller 出现都通过 throws Exception 向上抛出,最后...

  • SpringMVC异常处理

    Spring MVC处理异常有3种方式: (1)使用Spring MVC提供的简单异常处理器SimpleMappi...

  • springMVC异常处理

    异常的处理 自定义异常 自定义的异常处理类 当controller中出现异常时,使用自定义异常进行捕获

  • SpringMVC处理异常

  • springmvc异常处理

    原文链接http://zhhll.icu/2021/%E6%A1%86%E6%9E%B6/springmvc/sp...

  • SpringMVC异常处理机制

    SpringMVC异常处理机制 1.1 异常处理的思路 系统中异常包括两类:预期异常和运行时异常RuntimeEx...

网友评论

      本文标题:springMVC异常处理

      本文链接:https://www.haomeiwen.com/subject/ngeurftx.html