(一)概述
Spring MVC是Spring提供的一款实现了Web MVC设计模式的轻量级WEB 框架。
具有的优点(8条):
- 是Spring的一部分,可以方便的使用Spring提供的其他功能。
- 灵活性强,易于与其他框架集成。
- 提供了前端控制器DispatcherServlet。
- 可自动绑定用户输入,并能正确的转换数据类型 。
- 内置了常见的校验器,可以校验用户输入 。
- 支持国际化。
- 支持多种视图技术 。 它支持 JSP 、 Velocity 和 FreeMarker 等视图技术 。
- 使用基于 XML 的配置文件,在编辑后,不需要重新编译应用程序 。
(二)第一个Spring MVC应用
1、引入jar包
2、配置前端控制器(DispatherServlet)
在web.xml文件中进行配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<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:springmvc-config.xml</param-value>
</init-param>
<!-- 表示容器在启动时立即加载 Servlet -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
3、创建Controller类
4、配置springmvc-config.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
<!-- 配置处理器 Handle ,映射 U/firstController" 请求 -->
<bean name="/firstController" class="com.allen.controller.FirstController"></bean>
<!-- 处理器映射器,将处理器 Handle 的 name 作为 url 进行查找 -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
<!-- 处理器适配器,配置对处理器中 handleRequest() 方法的调用 -->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />
<!-- 视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" />
</beans>
5、创建jsp页面
6、访问路径 http://localhost:8081/springmvc01/firstController
7、idea创建时需要注意的问题
(1)引入jar包
(2)引入tomcat
选择Library
(三)Spring MVC 的工作流程
详细说明:
- 用户通过浏览器发送请求,前端控制器DispatcherServlet 进行拦截 。
- DispatcherServlet 拦截到请求后,会调用 HandlerMapping 处理器映射器 。
- 处理器映射器根据请求 URL 找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给 DispatcherServlet。
- DispatcherServlet 会通过返回信息选择合适的 HandlerAdapter (处理器适配器)。
- HandlerAdapter会调用并执行Handler (处理器),指的就是程序中编写的 Controller 类,也被称之为后端控制器 。
- Controller 执行完成后,会返回一个 ModelAndView 对象,该对象中会包含视图名 。
- HandlerAdapter 将 ModelAndView 对象返回给 DispatcherServlet。
- DispatcherServlet 会根据 ModelAndView 对象选择一个合适的 ViewReslover (视图解析器)。
- ViewReslover 解析后,会向 DispatcherServlet 中返回具体的 View (视图)。
- DispatcherServlet 对 View 进行渲染(即将模型数据填充至视图中)。
- 视图渲染结果会返回给客户端浏览器显示 。