什么是SpringMVC?
SpringMVC是Spring家族中提供的一个实现Web MVC设计模式的轻量级Wed框架,他与Struts2一样,都属于MVC框架(Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,),但是只不过Struts2是老框架,已经被淘汰了。SpringMVC主要完成C(控制器)的作用,但是器性能笔Strust2好很多。
作用:从请求中接受传入的参数;将底层传回的参数结果返回前台页面进行展示。
SpringMVC具有什么特点?
- 是Spring框架的一部分,可以方便的使用Spring框架的其他功能
- 灵活性好,易于与其他框架集成
- 提供了一个前端控制器DispatcherServlet,使开发人员更加方便,无需自己开发前端控制器对象
- 可以自动的绑定用户输入,可以正确的进行数据类型转换
- 内置了常见的校验器,可以校验用户输入,如果输入不正确会自动重定向到输入表单
- 支持国家化可以根据用户位置显示多国语言
- 支持多种试图技术,它支持jsp,Velocity和FreeMark的视图技术
- 使用基于xml配置文件,在编译后,不需要重新编译程序
SpringMVC的工作流程?
- 通过浏览器向服务器发送请求,请求会被SpringMVC的前端控制器DispacherServlet拦截
- DispacherServlet拦截请求后会调用HanderMapping处理器映射器
- 处理器映射器会根据请求URL找到具体的处理器,生成处理器对象几处理器拦截器(如果有则生成)一并返回给DipacherServlet;
- DispacherServlet会根据返回的信息选择合适的HanderAdapter(处理器适配器)
- HanderAdapter会调用执行Hander(处理器),这里的处理器指得就是程序中编写的Controller类,也被称之为后端控制器
- Controller执行完后会返回一个ModelAndView对象,该对象中包含视图名或包含模型和视图名
- HandlerAdapter将ModleAndView对象返回给DispatcherServlet
- DispacherServlet会根据ModleAndView选择一个合适的ViewReslover(视图解析器)
- ViewReslover解析后,会向DispatcherServlet中返回具体的View(视图);
- DispatcherServlet对View进行渲染(即将模型数据填充至视图中);
- 视图渲染结果会返回给客户端浏览器显示。
工作流程简易版: