首页 > 其他分享 >SpringMvc 之异常,前端结合,过滤器

SpringMvc 之异常,前端结合,过滤器

时间:2022-12-22 23:22:40浏览次数:41  
标签:拦截器 SpringMvc 创建 前端 然后 处理 过滤器 异常

 

 

SpringMvc中出现异常的位置主要有以下地方:

 

所以在很多地方都会出现异常,所以对于异常,一个集中出来处理,因此要创建异常处理器类,来集中处理异常,其内部是Aop思想,

 

 

然后这个类上面需要使用@RestControlAdvice注解,

 

 在处理异常的方法上面需要加上@Exceptionhandle注解

 

 总的来说就是这样:

 

 但这是一种情况,因为异常有很多种,所以也要分情况处理异常。

 

 

一般来说分为业务异常,系统异常和其他异常:

 

 所以,对于这些异常要怎么处理呢?先在itheima包下创建一个execption也就是异常包,然后再在这个包下创建异常类:BusinessExecption(处理业务异常的类),SystemExecption(处理系统异常的类),这两个类都要继承RuntimExecption,在这个类里面需要声明一个变量code就是异常编码,而且有一个Code类中定义了编码常量。然后根据需要重写RuntimeExecption中的构造方法,这些构造方法在后面,创建异常时会用到。

   

 

 Code常量中的编码:

 

 然后需要在异常处理器类中定义两种异常格子对应的处理异常方法:

    

 

 

 之后再去正常编码中模拟两种异常的出现,看看会怎处理:

 

 

两种异常处理结果对比:

 

 这个前端结合因为,一开始访问地址没写对,localhost后面没加pages,所以后面莫名其妙的报错,搞了两天导致后面就没听,所以跳过。

//

然后是拦截器,拦截器和过滤器很相似都是当有访问请求访问资源时,进行拦截(拦截时会进行一些增强操作,或者其他操作)

 

 

所以这个时候,就有一个问题需要思考:拦截器和过滤器之间的区别是什么? 归属不同:Filter属于Servlet技术(tomcat中),Interceptor属于SpringMVC技术(servlet中) 拦截内容不同:Filter对所有访问进行增强,Interceptor仅针对SpringMVC的访问进行增强    然后拦截器要怎么操作呢? 首先需要创建一个拦截器类,这个类上面要加上@Component让这个类能被SpringMvc加载,然后让类实现HandlerInterceptor接口,重写接口中的三个方法。这三个方法是re,post,after,分别代表资源处理之前,和资源处理之后,以及任务结束之后(大概是这个意思哈哈),第一个方法中的return true这个设置很重要。

 

 然后就是配置拦截器类配置类,这个类在我们之前设置静态资源准许访问的时候已经创建了,而且其中的方法都差不多,一个是addResources。。,一个是addIntercpet,

 

 

步骤3:SpringMVC添加SpringMvcSupport包扫描 

 

 还有一种在SpringMvcconfig类中写这个拦截器的配置类:简化SpringMvcSupport的编写,但是有侵略性

 

 然后是拦截器的执行流程:

 

 拦截器的参数,了解一下前置方法就行:

 

 如果需要多个拦截器,那么就要创建对应多个拦截类:

 

 

然后再在拦截器配置类或者那个springmvccofig中配置拦截的路径啥的

 

 那多个拦截器,执行顺序是怎么样的,好像是在拦截器配置类中先加载的先执行(这是对pre方法),post和after方法相反,

 

 

   

 

标签:拦截器,SpringMvc,创建,前端,然后,处理,过滤器,异常
From: https://www.cnblogs.com/y-258/p/16999802.html

相关文章