目录
1.什么是Spring Web MVC?
1.首先我们先来看一下什么是web服务器?
2.什么是Tomcat?
3.什么是Servlet?
4.Tomcat与Servlet的关系(为什么说Tomcat是servlet的容器?)
2.MVC(Model View Controller)
3.比较
4.建立连接
1.类注解、方法注解
2.@RequestMapping:路径映射
1.资源路径=类路径+方法路径
3.@RestController
1.如果把@RestController注释掉,会出现什么情况?
4.模糊映射(Ambiguous mapping)
5.@RequestMapping是GET还是POST请求?
6.认识postman
7.如何让@RequestMapping只接收GET请求?
支持多种请求类型:
单个设置请求类型还可写为:
8.请求
1.服务器接收前端发来的参数
1.请求参数名必须和后端接收参数名一致,否则后端接收不到参数
2.如果接受的请求参数类型错误:
2.Spring自动做类型转换
3.服务器接收多个参数
4.服务器接收boolean型参数
5.服务器接收Integer 与 int的区别
6.服务器接收参数是对象
7.在后端重命名前端的参数
8.传递数组
9.传递list
1.什么是Spring Web MVC?
1.首先我们先来看一下什么是web服务器?
web服务器就是对http协议进行封装,专门接受浏览器发来的http请求,返回网页/接口数据的服务器。
常见的web服务器:Apache、Tomcat、Nginx、Jboss.
idea集成了Tomcat,所以不用手动安装。
2.什么是Tomcat?
tomcat默认端口号是8080
Tomcat:servlet容器。负责通信,管理生命周期,接收http请求
3.什么是Servlet?
Servlet本质是一个接口,定义了一套Java Web开发的规范,或者说是一套Java Web开发的技术标准
Servlet:Java接口,实现servlet,用来处理请求、生成响应
4.Tomcat与Servlet的关系(为什么说Tomcat是servlet的容器?)
Tomcat实现了Servlet的这套规范。
Tomcat自带Servlet接口,并且内置了接口的实现;
当浏览器发来请求——>Tomcat接收,创建对象,调用service()方法,执行我们写的Servlet代码。
spring boot内置了Tomcat,Tomcat是servlet的容器,用来装、运行servlet;servlet负责处理请求。
浏览器访问Tomcat——》Tomcat把请求交给servlet——》servlet处理业务,生成响应——》把响应返回给Tomcat——》Tomcat把响应返回给浏览器。
spring web MVC是一个实现了MVC模式的 web框架。
Spring Web MVC is the original web framework built on the Servlet API and has been included in the Spring Framework from the very beginning. The formal name, "Spring Web MVC", comes from the name of its source module (spring-webmvc)以下简称spring web MVC为Spring MVC!
什么是MVC?
2.MVC(Model View Controller)
MVC是一种软件架构设计模式
可以简单理解为:
view:可视化页面
Controller:根据请求类型选择对应模型Model,并决定处理之后跳转到哪里
Model:处理Controller发送的业务(Model可以理解为业务代码)。
spring web MVC是一个实现了MVC模式的 web框架
学习spring MVC主要是学习如何通过浏览器和用户程序进行交互。
可以理解为后端提供方法接口,前端调用接口。
3.比较
spring:底层核心
spring boot:自动装配,内置服务器,简化搭建和配置
spring web MVC:spring的web模块,负责处理http请求。
Spring Boot添加Spring Web MVC框架,来实现web功能。
idea内置了maven
spring boot内置了Tomcat
4.建立连接
1.类注解、方法注解
类注解:作用在整个类上面,对这个类里的所有方法都生效
方法注解:作用于某个方法,只对这一个方法生效
2.@RequestMapping:路径映射
作用:建立【浏览器请求地址URL】和【Java代码】之间的映射关系。
可以理解为:告诉Spring,当浏览器访问这个路径,就执行这段代码。
映射=绑定、挂钩,路径映射=把URL地址和后端方法绑定在一起。
1.资源路径=类路径+方法路径
3.@RestController
@RestController是类注解,作用是将当前类标识为控制器。
@RestController=@ResponseBody+@Controller
1.如果把@RestController注释掉,会出现什么情况?
为什么注释掉之后会报错?
因为注释掉之后,这个类不再是控制器,路径映射全部失效,访问报404
类路径可以不写,但是大多情况下都写类路径,是为了提高可读性;
路径必须唯一
路径不唯一会映射错误
4.模糊映射(Ambiguous mapping)
同一个请求(URL+请求方法),找到了2个及以上的Controller方法可以匹配,Spring MVC不知道该调用哪一个,直接报错
注意同一个请求指的是:【URL+请求方法】,如果请求方法不同,不会报错:
但是这样的写法尽量避免!!!
5.@RequestMapping是GET还是POST请求?
@RequestMapping支持HTTP所有请求方式
写form表单提交post请求
点击提交按钮后,浏览器向服务端发送POST请求,action是访问地址
“/test0/test1”:"/"代表 从网站的根路径开始找地址,即“http://127.0.0.1:8080”,写“action="/test0/test1"”,拼接后的地址是:"http://127.0.0.1:8080/test0/test1"。只当前web服务的虚拟根路径。
6.认识postman
后端开发用postman的作用:
无postman:后端写的接口需要前端页面来测试(写html页面,写输入框,提交按钮,运行页面,填数据点提交,才能看测试结果)
有postman:填写地址,填写参数,点击send,postman直接向后端发送post请求,后端执行代码,返回文本。不用写html网页,方便高效
后端写接口,postman测试
7.如何让@RequestMapping只接收GET请求?
405:方法不被允许
支持多种请求类型:
单个设置请求类型还可写为:
表示只支持GET请求
8.请求
1.服务器接收前端发来的参数
1.请求参数名必须和后端接收参数名一致,否则后端接收不到参数
2.如果接受的请求参数类型错误:
2.Spring自动做类型转换
spring已经做了类型转换:spring把客户端发来的请求的参数,同一先当作“String”类型,也就是请求参数的int、boolean、Srting等都先看作String,然后根据需要的参数类型进行转换。
3.服务器接收多个参数
URL?后的查询参数"QueryString",格式为key=value&key=value.
服务器接收到请求后,Spring MVC会自动把&作为分隔符,自动拆分成一组一组的【key和value】;
然后根据方法的参数名,把key和Java方法参数名对比,名字一样就自动把值类型转换、赋值
字符串格式化拼接:
4.服务器接收boolean型参数
5.服务器接收Integer 与 int的区别
请求的参数名必须与服务器接收的参数名一致,顺序不影响