什么是springmvc:
springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合
springmvc是一个基于mvc的web框架
什么是mvc:
mvc是一个设计模式
mvc在b/s系统下的应用:
Controller控制器接收用户需求,接受用户输入但自身无法完成用户需求,所以需要调用模型和视图来完成用户需求。
当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和对数据做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。
视图就是用户看到的并与之交互的界面
springmvc框架:
前端控制器DispatcherServlet接受用户的request请求后因为请求中带有url,而不同的url需要进行不同的处理,对应着不同的Handler处理器,所以需要先调用HandlerMapping处理器映射器来查找对应的Handler(通过xml配置或注解)
第一步:用户发起请求到前端控制器(DispatcherServlet)
第二步:前端控制器请求HandlerMapping(根据xml配置或注解)查找Handler
第三步:HandlerMapping向前端控制器返回Handler
第四步:前端控制器调用处理器适配器去执行Handler
第五步:处理器适配器去执行Handler
第六步:Handler执行完给适配器返回ModelAndView
第七步:处理器适配器向前端控制器返回ModelAndView
(ModelAndView是Springmvc的一个底层对象,包括了Model和View)
第八步:前端控制器请求视图解析器进行视图解析,根据逻辑视图解析成真正的视图
第九步:视图解析器向前端控制器返回View
第十步:前端控制器进行视图渲染(将模型数据(ModelAndView中)填充到request域返回给用户)
第十一步:前端控制器response响应
组件:
1.前端控制器DispatcherServlet(不需要程序员开发)
作用:接受请求,响应结果(相当于转发器,没有业务逻辑)
DispatcherServlet减少了其他组件之间的耦合度
2.处理器映射器HandlerMapping(不需要程序员开发)
作用:根据请求的url查找特定的handler
3.处理器适配器HandlerAdapter
作用:按照特定规则执行Handler
4.处理器Handler(需要程序员开发)
注意:编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以正确执行Handler
4.视图解析器View resolver(不需要程序员开发)
作用:进行视图解析,根据逻辑视图名解析成真正的视图(view)
5.视图View(需要程序员开发jsp)
View是一个接口,实现类支持不同的View类型(jsp,pdf,freemarker…)