第一节 Web开发入门
1.Web入门
Spring Boot将传统Web开发的mvc、json、tomcat等框架整合,提供了spring-boot-starter-web组件,简化了Web应用配置。提供Web开发场景中所需的所有底层依赖。
webmvc为Web开发的基础框架,json为JSON数据解析组件,tomcat为自带的容器依赖。
2.MVC设计模式
模型(Model)
负责管理应用程序的业务数据,定义访问控制以及修改这些数据的业务规则(JavaBean)
视图(View)
负责与用户进行交互,以及界面的展示
控制器(Controller)
完成用户交互,连接视图和模型
3.SpringBoot Controller(控制器)
Spring Boot提供了@Controller和@RestController两种注解来标识此类负责接收和处理HTTP请求。
如果请求的是页面和数据,使用@Controller注解即可;
如果只是请求数据,则可以使用@RestController注解。
默认情况下,@RestController注解会将返回的对象数据转换为JSON格式。
(因为要做到前后端分离,所以一般使用@RestController注解)
4.路由映射
@RequestMapping注解主要负责URL的路由映射。它可以添加在Controller类或者具体的方法上。
如果添加在Controller类上,则这个Controller中的所有路由映射都将会加上此映射规则,如果添加在方法上,则只对当前方法生效。
@RequestMapping注解包含很多属性参数来定义HTTP的请求映射规则。常用的属性参数如下:
value:请求URL的路径
通配符:符号“*”匹配任意字符,符号“**”匹配任意路径,符号“?”匹配单个字符。
优先级:无通配符>*>**
@RequestMapping(value = "/hello/**")
method: HTTP请求方法
HTTP请求Method有GET、POST、PUT、DELETE等方式
@RequestMapping注解提供了method参数指定请求的Method类型,包括RequestMethod.GET、RequestMethod.POST、RequestMethod.DELETE等值,分别对应HTTP请求的Method
(Method匹配也可以使用@GetMapping、@PostMapping等注解代替)
@RequestMapping(value = "/hello", method = RequestMethod.GET) = @GetMapping("/hello")
如果方法不匹配,会报405,方法不被允许
5.参数传递
@RequestParam
将请求参数绑定到控制器的方法参数上,接收的参数来自HTTP请求体或请求url的QueryString,当请求的参数名称与Controller的业务方法参数名称一致时,@RequestParam可以省略
当参数不一致时,使用@RequestParam
@RequestParam("username") String name
此时name必须赋值,否则报400错误,需要传递username
若想改为可选参数,则让required=false
@RequestBody
接收的参数是来自requestBody中,即请求体。一般用于处理非Content-Type: application/x-www-form-urlencoded编码格式的数据,比如: `application/json`.、`application/xml`等类型的数据