Spring MVC是目前主流的实现MVC设计模式的企业级开发框架,Spring框架的一个子模块,无需整合,开发起立更加便捷。
什么是MVC设计模式?
将应用程序分为Contorller,Model,View三层,Controller接受客户端请求,调用Model生成业务数据,传递给View。Spring MVC就是对这套流程的封装,屏蔽了很多底层代码,开发出接口,让开发者可以更加轻松,便捷地完成基于MVC模式的Web开发。
Spring MVC的工作流程
1.客户端请求被DispatcherServlet接受。
2.根据HandlerMapping映射到Handler。
3.生成Handler和HandlerInterceptor。
4.Handler和HandlerInterceptor以HandlerExecutionChain的形式一并返回给DisptacherServlet。
5.DispatcherServlet通过HandlerAdapter调用Handler的方法完成业务逻辑处理。
6.DispatcherServlet将获取的ModelAndView对象传给ViewResolver视图解析器,将逻辑视图解析为物理视图View。
7.ViewResovler返回一个View给DispatcherServlet。
8.DispatcherServlet根据View进行视图渲染(将模型数据Model填充到视图View中)。
9.DispatcherServlet将渲染后的结果响应给客户端。
如何使用?
1.创建Maven工程,pom.xml
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version> 5.2.22.RELEASE</version>
</dependency>
</dependencies>
2.在web.xml中配置DispatcherServlet(前端控制器)
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
3.Springmvc.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"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<!--自动扫描-->
<context:component-scan base-package="com.myspringmvc"></context:component-scan>
<!-- 配置视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>