今天是端午前最后一天上班,今天开始加上端午3天学习SpringMVC~!
参考资料:
http://blog.csdn.net/swingpyzf/article/details/8885459
概述
1、框架原理&概念
2、SpringMVCDemo HelloWorld搭建
框架原理
SpringMVC框架是围绕DispatcherServlet这个核心展开,DispatcherServlet这个Servlet负责拦截请求,并将其分派给相应的处理类来处理。
类似于之前接触过的Model2-MVC(Model1就是原始三层架构,view、biz、model)
SpringMVC的整体模块架构:
分析:
1、 由最先的HTPP发送请求,由所配置的XML中的DispatcherServlet处理。
2、 DispatcherServlet接受到这个请求后,根据请求的信息及HandlerMapping的配置找到处理请求的处理器Handler。
3、 得到HandlerMapping对应的Handler后,通过HandlerAdapter对Handler进行封装,再以统一的适配器接口调用Handler。
4、 处理器完成业务逻辑的处理后返回一个ModelAndView给DispatcherServlet。
5、 ModelAndView包含逻辑视图名,而非真正的视图对象,DispatcherServlet借由ViewResolver完成逻辑视图名到真实视图对象的解析工作。
6、 当得到真实View对象后,DispatcherServlet就对这个View对象进行渲染。
7、 最终返回到客户的HTTP响应。
SpringMVC概念
- DispatcherServlet
联通M-V-C的分发器,从用户端接受请求,分发给合适的Controller,获取Controller返回的ViewAndModel,并渲染页面返回给用户 - Controller
实现业务逻辑,获取数据拼装成Model返回 - HandlerAdapter
将Controller适配成DispatcherServlet可以使用的handler(不是很理解) - HanlderInterceptor
拦截器 - HandlerMapping
告诉DispatcherServlet,请求该由那个Controller去响应 - HandlerExecutionChain
处理执行链:preHandle->Controller method-> postHandle -> afterCompletion - ModelAndView
SpringMVC 中Model的具体表现 - ViewResolver
视图解析器,告诉DispatcherServlet改用那个视图 - View
页面