总结SpringMVC
原理
客户端发送请求到前端控制器DispatcharServlet;
接收客户端请求;
找到处理器映射HandlerMapping解析请求对应的Handler;
HandlerAdapter会根据Handler来调用真正的处理器开始处理请求,并处理相应的业务逻辑;
处理器返回一个模型视图ModelAndView;
视图解析器进行解析;
返回一个视图对象;
前端控制器DispatcherServlet渲染数据(Moder);
将得到的视图返回给用户
更具体的描述
- 用户发送请求至前端控制器DispatcherServlet。
- DispatcherServlet收到请求,调用HandlerMapping处理器映射器。
- 处理器映射器找到具体的处理器(通过xml、注解进行查找),生成处理器对象以及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
- DispatcherServlet调用HanglerAdapte处理器适配器。
- HandlerAdapter经过适配器调用具体的处理器(Controller,也叫后端控制器)。
- Controller执行完成返回ModelAndView。
- HandlerAdapter将controller执行结果ModelAndView返回给DispatcharServlet视图解析器。
- DispatcherServlet将ModelAndView传给ViewReslove视图解析器。
- ViewReslover解析后返回具体的View。
- DispatcherServlet根据View进行渲染视图(即 将模型数据填充到视图中)。
- DispatcherServlet响应用户
DispatcherServlet–>
HandlerMapping–xml、注解–>
具体的处理器–生成处理器对象以及处理器拦截器–>
返回给DispatcherServlet–DispatcherServlet调用HanglerAdapte处理器适配器–>
HandlerAdapter–调用具体的处理器Controller–>
Controller执行完成返回ModelAndView–>
HandlerAdapter将controller执行结果ModelAndView返回给DispatcharServlet视图解析器–>
DispatcherServle将ModelAndView–传给ViewReslove视图解析器–>
ViewReslover解析后返回具体的View–>
DispatcherServlet根据View进行渲染视图–>
DispatcherServlet响应用户
常用注解
@RestController:接受用户的请求,并响应json数据
@RequestMapping:将要请求的路径匹配
@Pathvariable:获取resef里的参数
@CrossOrigin:解决跨域的问题(IP不同或者是端口号不同)
解析参数
SpringMVC可以处理一个参数,也可以处理多个参数。还可以把多个参数封装成一个java对象。
可用get方式提交数据,在Controller层直接用方法的参数列表进行解析
可以Restful方式提交数据,在Controller层使用@PathVariable注解获取地址栏里的值,直接用方法的参数列表进行解析
可以用POST方式提交数据,在Controller层直接用java对象接收请求参数就可
返回json串
用@RestController返回