什么是MVC
将软件按照模型、视图、控制器来划分
- M:Model,模型层,指工程中的JavaBean,作用是处理数据
- 实体类Bean:专门用于存储业务的,比如Student、User等
- 业务处理Bean:Service或者DAO等等
- View:视图层,指工程中的htnml或者jsp等页面,作用是与用户进行交互
- Controller,控制层,指工程中的Servlet,作用是接受请求与响应浏览器
什么是SpringMVC
SpringMVC是为Spring为表述层开发提供的一套完备的解决方案,三层架构分别为表述层(),业务逻辑层、数据访问层、表层表示前台页面和后台Servlet
表现层:SpringMVC
业务层:Spring
持久层:Mybatis
表现层一般与浏览器也就是我们的客户端进行数据的交互。浏览器会给我们发出一个http请求,请求会经过我们的表现层,浏览器会给我们传递一些请求的参数,表现层可以获取到我们请求的参数。获取到之后可以调用我们的业务层,业务层会调用我们的持久层,然后结果再返回,结果返回到表现层,最后把结果响应给我们的用户。
特点
基于原生Servlet,通过强大的前端控制器DispatcherServlet,对请求和响应进行统一处理
HelloWorld
创建Maven工程
导入相关的依赖包
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.18</version> </dependency>
<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.11</version> </dependency>
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency>
<dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf-spring5</artifactId> <version>3.0.15.RELEASE</version> </dependency> </dependencies>
|
配置web.xml
对前端的发送的请求进行响应的配置
默认配置方式
位置默认,早web-inf下,名称默认
注意在这个过程中url-patteren中/不会对jsp产生响应,应为jsp本质是一个servlet,但是/*会对jsp的请求产生响应
1 2 3 4 5 6 7 8 9
| <servlet> <servlet-name>SpringMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet>
<servlet-mapping> <servlet-name>SpringMVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
|
扩展配置方式
但是在maven工程下,我们需要将配置文件否存放到resourse文件下,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| <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>
<load-on-startup>1</load-on-startup> </servlet>
<servlet-mapping> <servlet-name>SpringMVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
|
创建请求控制器
1 2 3 4
| @Controller public class HelloController { }
|
注解
1 2 3 4
| @Component---普通组件 @Controller---控制层组件 @Service---业务层组件 @Repository---持久层组件
|
创建配置文件
1 2
| <context:component-scan base-package="com.zss.mvc.controller"></context:component-scan>
|
测试HelloWorld
访问此页面
1 2 3 4 5 6 7 8
| @Controller public class HelloController {
@RequestMapping( "/") public String index(){ return "index"; } }
|
转入到另外一个页面
1 2 3 4 5 6
| @RequestMapping("/target") public String toTarget(){ return "target"; }
|