1.什么是SpringMVC:
springmvc和struts2都属于表现层的框架,他是spring容器的一部分。可以从spring的整体结构中看出:
mvc是一个设计模式,在b\s系统下的应用:
mvc模式运行流程:
1. 用户发起request请求到控制器(controller),控制器接受用户request请求的数据,并委托模型进行处理。
2.控制器通过模型(Model)处理数据,并得到处理结果。模型通常指业务逻辑。
3.模型处理结果返回给控制器。
4.控制器将模型数据在视图中展示。web中无法将模型数据在视图中展示,需要通过控制器完成。在c/s应用中可以直接将模型数据直接在视图中显示。
5.控制器将试图response给用户。通过视图展示给用户要的数据或处理结果。
2.springMVC框架:
1.发送请求到前端控制器DisPatcherServlet,
2. 前端控制器请求HanderMapping,查找Handler。可根据xml配置、注解进行配置。
3.处理器映射器向前端控制器返回Handeler。
4.前端控制器调用处理器适配器执行Handler。
5.处理器是配置去执行Handler。
6.Handler执行完成给适配器返回ModelAndView。
7.处理器适配器向前端控制器返回ModelAndView。(ModelAndView是springMVC底层的对象,包括Model和View)
8.前端控制器请求视图解析器解析进行视图解析。根据逻辑视图名解析成真正的视图(jsp)。
9.视图解析器向前端控制器返回视图(View)。
10.前端控制器进行视图渲染,试图渲染就是将模型数据(在ModelAndView中)填充到request域。
11.前端控制器向用户相应结果。
组件:
1.前端控制器DispatcherServlet,(不需要程序员开发)。
作用:接受请求,响应结果,相当于转发器,中央控制器。有了DispatcherServlet减少了其他控件之间的耦合度。
2.处理器映射器HandlerMapping,(不需要程序员开发)。
作用:根据请求url寻找handler。
3.处理器适配器HandlerAdapter,(不需要程序员开发)。
作用:按照特定的规则(HandlerAdapter要求的规则),去执行Handler。
4.处理器(Handler),需要程序员编写:
注意:编写Handler时要按照HandlerAdapter要求编写,这样适配器才能正确执行Handler。
5.视图解析器View resovler(不需要程序员编写),
作用:进行视图解析,将逻辑视图名解析为真正的视图(View)。
6.视图View (需要程序员开发 jsp)。
view是一个接口,实现类支持多种不同的View类型(jsp,freemark , pdf.....).