1、SpringMVC简介
1.1什么是MVC
(1)MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分
M:Model,模型层,指工程中的JavaBean,作用是处理数据
JavaBean分为两类:
一类称为实体类Bean:专门存储业务数据的,比如:Emp、Dept、User
一类称为业务处理Bean:指Service或Dao对象,专门用于处理业务逻辑和数据访问
V:View,视图层,指工程中的Html或jsp页面,作用是与用户进行交互,展示数据
C:Controller,控制层,指工程中的servlet,作用是接收请求和响应浏览器
**(2)MVC的工作流程:**用户通过V(视图层)发送请求到服务器,在服务器中由C(控制器)接收,C(控制器)调用相应的M(模型层)层处理请求,处理完毕将结果返回到C,C再根据请求处理的结果,找到相应的V,渲染数据后最终响应给浏览器。
1.2、什么是SpringMVC
SpringMVC是Spring家族的一个后续产品,是Spring的一个子项目
SpringMVC是为表述层开发提供的一整套完备的解决方案。
注:三层架构分为表述层(表示层)、业务逻辑层、数据访问层。表述层表示前台页面+后台servlet
1.3SpringMVC的特点
(1)Spring 家族原生产品,与 IOC 容器等基础设施无缝对接
(2)基于原生的Servlet,通过了功能强大的前端控制器DispatcherServlet,对请求和响应进行统一处理
(3)表述层各细分领域需要解决的问题全方位覆盖,提供全面解决方案
(4)代码清新简洁,大幅度提升开发效率
(5)内部组件化程度高,可插拔式组件即插即用,想要什么功能配置相应组件即可
(6)性能卓著,尤其适合现代大型、超大型互联网项目要求
2、入门案例
2.1、开发环境
IDE:idea 2022.2.3
构建工具:maven 3.6.0
服务器:tomcat8.5
Spring版本:5.3.1
2.2、创建maven工程
导pom依赖时,由于Maven具有传递性的,所以不需要将需要的所有包全部配置依赖,只需要配置最顶端的依赖即可,其它靠maven的传递性导入
<!-- SpringMVC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.1</version>
</dependency>
2.3配置web.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:springmvc.xml</param-value>
</init-param>
<!--将DispatcherServlet的初始化时间提前到服务器启动时-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
注:标签中使用/和/*的区别:
/所匹配的请求可以是/login或.html或.js或.css方式的请求路径,但是/不能匹配.jsp请求路径的请求因此就可以避免在访问jsp页面时,该请求被DispatcherServlet处理,从而找不到相应的页面/*则能够匹配所有请求,例如在使用过滤器时,若需要对所有请求进行过滤,就需要使用/*的写法