目录
1.Spring Boot介绍
1.Spring Boot将传统Web开发的mvc、json、tomcat等框架整合,提供了spring-boot-starter-web组件,简化了Web应用配置。
2.创建SpringBoot项目勾选Spring Web选项后,会自动将spring-boot-starter-web组件加入到项目中。
3.spring-boot-starter-web启动器主要包括web、webmvc、ison、tomcat等基础依赖组件,作用是提供Web开发场景所需的所有底层依赖。
4.webmvc为Web开发的基础框架,json为JSON数据解析组件,tomcat为自带的容器依赖。
2.两种Controller
1Spring Boot提供了@Controller和@RestController两种注解来标识此类负责接收和处理HTTP请求。
2如果请求的是页面和数据,使用@Controller注解即可;如果只是请求数据则可以使用@RestController注解。
3.@RequestMapping的参数
1.@RequestMapping注解主要负责URL的路由映射。它可以添加在Controller类或者具体的方法上。
2.@RequestMapping注解包含很多属性参数来定义HTTP的请求映射规则。常用的属性参数如下:
value: 请求URL的路径,支持URL模板、正则表达式
method: HTTP请求方法
consumes: 请求的媒体类型!(Content-Type),如application/json
produces: 响应的媒体类型
params,headers: 请求的参数及请求头的值
这是主要就是value填URL,类似@RequestMapping("/user")。method填GET、POST、PUT、DELETE等方式,Method匹配也可以使用@GetMapping、@PostMapping等注解代替。
4.实操
先创建一个entity的包,然后创建一个User的类,定义一个用户有什么,把代码填进去,这里一个用户有用户名和密码
package com.example.helloworld.entity;
public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username){
this.username =username;
}
public String getPassword(){
return password;
}
public void setPassword(String password){
this.password = password;
}
@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
在controller的包下面创建一个ParamsController的类,一定别忘了导入刚才创建的用户,会用到
import com.example.helloworld.entity.User;
package com.example.helloworld.controller;
import com.example.helloworld.entity.User;
import org.springframework.web.bind.annotation.*;
@RestController
public class ParamsController {
@RequestMapping(value = "/getTest1", method = RequestMethod.GET)
public String getTest1() {
return "GET请求";
}
@RequestMapping(value = "/getTest2", method = RequestMethod.GET)
public String getest2 (String nickname, String phone){
System.out.println("nickname:" + nickname);
System.out.println("phone:" + phone);
return "GET请求";
}
@RequestMapping(value = "/getTest3", method = RequestMethod.GET)
public String getTest3(@RequestParam(value = "nickname",required = false) String name){
System.out.println("nickname:"+name);
return "GET请求";
}
@RequestMapping(value ="/postTest1",method = RequestMethod.POST)
public String postTest1() {
return"POST请求";
}
@RequestMapping(value ="/postTest2",method=RequestMethod.POST)
public String postTest2(String username,String password){
System.out.println("username:"+username);
System.out.println("password:"+password);
return"POST请求";
}
@RequestMapping(value = "/postTest3",method = RequestMethod.POST)
public String postTest3(User user) {
System.out.println(user);
return "POST请求";
}
@RequestMapping(value = "/postTest4",method = RequestMethod.POST)
public String postTest4(@RequestBody User user) {
System.out.println(user);
return"POST请求";
}
@GetMapping("/test/**")
public String test(){
return "通配符请求";
}
}
这里有八个实例
运行
前三个是用GET请求,浏览器访问
第一个实例进入浏览器localhost:8080/getTest1
第二个实例进入浏览器localhost:8080/getTest2?nickname=zhangtianzhu&phone=123,网址里参数和传递一样,使用@RequestParam
第三个实例进入浏览器localhost:8080/getTest3?nickname=chenjiaming,因为网址里参数和传递不一样
第四个到第七个实例是POST请求,不能在网站地址栏,得下个软件模拟我这里下载了apipost,直接官网下就行,官网Apipost-API 文档、设计、调试、自动化测试一体化协作平台
仅为我安装
第四个实例localhost:8080/postTest1
第五个实例localhost:8080/postTest2
第六个实例localhost:8080/postTest3
第七个实例localhost:8080/postTest4,json类型加@RequestBody注解
最后一个是GET请求localhost:8080/test/sws,test后面随便加,@GetMapping("/test/**")和@RequestMapping(value = "/test/**", method = RequestMethod.GET)等同