M:model 数据模型
V:view 视图
C:controller 控制器
是一种Web程序架构, 是一种代码设计思想
将所有客户端请求(Request)全部交由控制器,由控制器将其分发并将结果响应回客户端
二、产品
市面上很多框架都是基于MVC思想的,比如说 Struts1 Struts2 SpringMVC等等
对于SpringMVC而言,优势在于:天生和Spring集成
----------------------------------------------------------------------------------------------------------------------------------------------------------
三、SpringMVC实现原理(流程)
1. 客户端发送请求到 DispatcherServlet
2. DispatcherServlet负责解析请求给SpringMVC的处理流程
3. 根据请求到HandlerMapping中寻找Handler
**HandlerMapping:负责将请求映射到处理器上,请求和Handler(action)的映射关系**
| url | handler |
| --------- | ------------------- |
| login.do | UserAction.login() |
| regist.do | UserAction.regist() |
4. HandlerAdapter: 负责适配不同的处理器(Handler)
5. Handler 负责处理业务逻辑(action/service/dao), 并产生 数据模型(Model,查询结果/所有放到作用域中的值/要展示在页面中的数据)和视图名(View),Handler将数据模型和视图 封装成 ModelAndView 对象
6. ViewResolver 将视图名解析为对应的视图技术
四、核心配置
**SpringMVC的配置文件,默认在/WEB-INF/servletName-servlet.xml**
可以使用以下配置指定配置文件的位置
=======================================================================================
```xml
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<!--指定配置文件的位置-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:app*.xml</param-value>
</init-param>
<!--服务器时加载-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
```
=======================================================================================
**在实际开发中,更习惯将spring的配置文件和springmvc的配置文件分离**