1.springMVC概述:
(1)springMVC是spring的一个后续产品,是spring的一个子项目,是spring为表述层开发提供的一套完备的解决方案。三层架构分为表述层(或表示层),业务逻辑层,数据访问层,表述层表示前台页面和后台servlet。
(2)MVC将软件按照模型、视图、控制器来划分。
M:model,指工程中的javaBean,作用是处理数据。
实体类Bean,专门存储业务数据,如Student、User等;
业务处理Bean,指Service或Dao对象,专门用于处理业务逻辑和数据访问。
V:view,视图层,指工程中的html或jsp等页面,作用是与用户进行交互,展示数据。
C:controller,控制层,指工程中的servlet,作用是接收请求和响应浏览器。
MVC工作流程:用户通过视图层发送请求到服务器,在服务器中请求被controller接收,controller调用相应的model层处理请求,处理完毕将结果返回controller,controller再根据请求处理的结果找到相应的view视图,渲染数据后最终响应给浏览器。
(3)特点:
①spring家族原生产品,与IOC等基础容器无缝对接;
②基于原生的servlet,通过了功能强大的前端控制器DispatcherServlet,对请求和响应进行统一处理;
③代码清新简洁,内部组件化程度高,可插拔式组件即插即用。
2.创建maven工程:
引入依赖:
org.springframework spring-webmvc 5.3.1 ch.qos.logback logback-classic 1.2.3 javax.servlet javax.servlet-api 3.1.0 provided org.thymeleaf thymeleaf-spring5 3.0.12.RELEASE
3.配置web.xml:
(1)默认配置方式:
SpringMVC org.springframework.web.servlet.DispatcherServlet SpringMVC /
(2)扩展配置方式:
SpringMVC org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:springMVC.xml 1 SpringMVC /
4.创建请求控制器:
①由于前端控制器对浏览器发送的请求进行了统一的处理,但是具体的请求有不同的处理过程,因此需要创建处理具体请求的类,即请求控制器。
②请求控制器中每一个处理请求的方法成为控制器方法。
③因为SpringMVC的控制器由一个POJO(普通的Java类)担任,因此需要通过@Controller注解将其标识为一个控制层组件,交给Spring的IoC容器管理,此时SpringMVC才能够识别控制器的存在。
@Controller
public class HelloController {}
5.创建springMVC的配置文件:
6.测试HelloWorld:
(1)实现对首页的访问:
首页
首页
@Controller
public class HelloController {//"/"---->/web-inf/templates/index.html@RequestMapping( "/")//请求映射注解public String index(){//返回视图名称return "index";}
}
(2)访问指定页面:
Title
hello world!!!
首页
首页
访问目标页面target.html
@RequestMapping("/target")public String toTarget(){return "target";}
7.总结:
浏览器发送请求,若请求地址符合前端控制器的url-pattern,该请求就会被前端控制器DispatcherServlet处理。前端控制器会读取springMVC的核心配置文件,通过组件扫描找到控制器,将请求地址和控制器中 @RequestMapping注解的value属性值进行匹配,若匹配成功,该注解所标识的控制器方法就是处理请求的方法。处理请求的方法需要返回一个字符串类型的视图名称,该视图名称会被视图解析器解析,加上前缀和后缀组成视图的路径,通过Thymeleaf对视图进行渲染,最终转发到视图所对应的页面。
下一篇:vue3 基础