spring web mvc 和Struts2都属于表现层的框架,spring mvc是spring整体框架的一部分。
如图可以看出:
MVC是一种设计模式,mvc在B/S系统下的应用:
springmvc基本流程:
第一步:发起请求到前端控制器(DispatcherServlet)
第二步:前端请求器请求HandlerMapping查找Handler
可以根据xml配置、注解进行查找
第三步:处理器映射器HandlerMapping向前端控制器返回Handler
第四步:前端控制器调用处理器适配器去执行Handler
第五步:处理器适配器去执行Handler
第六步:Handler处理完成给处理器适配器返回ModelAndView
第七步:处理器适配器向前端控制器返回ModelAndView
ModelAndView是springmvc框架的一个底层对象,包括 Model和View
第八步:前端控制器请求视图解析器去进行视图解析
根据逻辑视图名解析成真正的视图(jsp、pdf .....)
第九步:视图解析器向前端控制返回view
第十步:前端控制器进行试图渲染
试图渲染将模型数据(在ModelAndView中)填充到request域
第十一步:前端控制器向用户返回响应数据
组件:
1、前端控制器(DispatcherServlet),不需要程序员开发
作用:接受请求、响应结果,相当于转发器
减少了其他组件的耦合度
2、处理器映射器(HandlerMapping),不需要程序员开发
作用:根据请求的URL查询Handler
3、处理器适配器(Handler)
作用:按照特定的规则(HandlerAdapter要求的规则)执行Handler
处理器Handler需要程序员开发
注意:编写Handler时按照HandlerAdapter的要求去开发,这样适配器才可以去正确执行Handler
4、视图解析器(View resolver),不需要程序员开发
作用:进行视图解析,根据逻辑视图名解析成真正的视图(view)
5、视图View(需要程序员开发jsp)
View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf。。。。)