Spring MVC基于MVC模式(模型(Model)-视图(View)-控制器(Controller))实现,能够帮助你构建像Spring框架那样灵活和松耦合的Web应用程序。
核心类与接口
- DispatcherServlet 前置控制器
- HandlerMapping 处理器映射
- Controller 控制器
- ViewResolver 视图解析器
- View 视图处理
Spring MVC的请求流向
- 当用户在浏览器中点击链接或提交表单的时候,就会产生HttpRequest。
- 请求首先会来到DispatcherServlet,DispatcherServlet会查询一个或多个处理器映射来确定将该请求发给哪一个控制器,根据请求所携带的URL信息来进行决策。如果没有找到合适的控制器,通过defaultHandler返回Response给浏览器。
- 在对应的控制器中,控制器开始处理请求、创建模型数据并将模型数据打包并标示出用于渲染输出的View名称,接着把模型和视图名发送回DispatcherServlet。
- DispatcherServlet使用视图解析器将控制器返回的视图名匹配为一个特定的而视图实现,并将模型数据传递给该视图。
- 视图使用模型数据进行渲染,并把视图传给DispatcherServlet。
- DispatcherServlet将视图作为HttpResponse响应给浏览器。
使用Maven搭建Spring MVC
- 在IDEA中使用Maven建立一个webapp,并完成基本配置,这里不在详细说明。(不会参照我的博文:在Linux的IEDA下用Maven建立简单的Web程序 )
- 配置pom.xml文件,在<dependencies>标签中添加如下配置:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1