1、Spring MVC怎么处理异常?
可以直接使用
Spring MVC
中的全局异常处理器对异常进行统一处理,此时
Contoller
方法只需要编写业务逻辑代码,不用考虑异常处理代码。
开发一个全局异常处理器需要使用到两个注解:
@Controlleradvice
、
@ ExceptionHandler
2、Spring MVC中的拦截器和Servlet中的filter有什么区别?
过滤器:依赖于
servlet
容器,在实现上基于函数回调,可以对几乎
所有请求
进行
过滤 拦截器:依赖于web框架,在SpringMVC中就是依赖于SpringMVC框架,属于面
向切面编程(AOP)的一种运用。
3、SpringMVC的执行流程
具体流程如下所示:
1
、用户发送出请求到前端控制器
DispatcherServlet
。
2
、
DispatcherServlet
收到请求调用
HandlerMapping
(处理器映射器)。
3
、
HandlerMapping
找到具体的处理器
(
可查找
xml
配置或注解配置
)
,生成处理器
对象及处理器拦截器
(
如果有
)
,再一起返回给
DispatcherServlet
。
4
、
DispatcherServlet
调用
HandlerAdapter
(处理器适配器)。
5
、
HandlerAdapter
经过适配调用具体的处理器(
Handler/Controller
)。
6
、
Controller
执行完成返回
ModelAndView
对象。
7
、
HandlerAdapter
将
Controller
执行结果
ModelAndView
返回给
DispatcherServlet
。
8
、
DispatcherServlet
将
ModelAndView
传给
ViewReslover
(视图解析器)。
9
、
ViewReslover
解析后返回具体
View
(视图)。
10
、
DispatcherServlet
根据
View
进行渲染视图(即将模型数据填充至视图中)。
11
、
DispatcherServlet
响应用户。
4、Spring MVC常用的注解
1
、
@RequestMapping
:用于映射请求路径,可以定义在类上和方法上。用于类
上,则表示类中的所有的方法都是以该地址作为父路径。
2
、
@RequestBody
:注解实现接收
http
请求的
json
数据,将
json
转换为
java
对象。
3
、
@RequestParam
:指定请求参数的名称
4
、
@PathViriable
:从请求路径下中获取请求参数
(/user/{id})
,传递给方法的形
式参数
5
、
@ResponseBody
:注解实现将
controller
方法返回对象转化为
json
对象响应给
客户端。
6
、
@RequestHeader
:获取指定的请求头数据