一. springboot项目的创建
服务器URL:
start.spring.io
start.aliyun.com

springboot版本选择

勾选添加的依赖

pom.xml文件
父项目是谁
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<!-- starter启动器 必须数据库否则报错-->
<version>3.5.10</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
指定当前项目的编译版本
<properties>
<java.version>17</java.version>
</properties>
springMVC依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
Mybatis
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>
mysql
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
热部署
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
lombok
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
resources资源
static为静态资源根路径 由前端访问回来
templates为动态资源根路径(受保护的) 由controller访问回来


@SpringbootTest
加上注解测试会带ioc容器 不加则默认junit测试
引入动态资源thymeleaf java中的内容向页面展示
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
在page2中添加使静态页面变成动态页面
th开头的标签都属于thymeleaf动态标签
xmlns:th="http://www.thymeleaf.org"
thymeleaf案例
//通过贴注解将类声明为Controller 帮助类创建对象放进ioc容器中
@Controller
public class PageController {
//地址映射
@RequestMapping("/page2")
//方法中定义map对象,将数据放入map中,返回逻辑地址
public String page2(Map<String,Object> map){
System.out.println("page2");
map.put("name","张三");
map.put("age",18);
map.put("sex",false);
//字符串集合
List<String> nameList = List.of("mao1", "mao2", "mao3");
map.put("nameList",nameList);
return "page2";//逻辑地址
}
}
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
page2 hehe<br>
<!--thymeleaf常见标签-->
<div th:text="'你好'+${name}"></div>
<!--if语句-->
<div th:if="${sex}">男</div>
<div th:unless="${sex}">女</div>
<div th:if="${age}>=18">成年人</div>
<div th:if="${age}<18">未成年人</div>
<!--遍历-->
<div th:each="str:${nameList}">
<div th:text="${str}"></div>
</div>
</body>
</html>
浏览器显示

404-找不到页面 405-请求方式错误 500-服务器错误
用软件模拟浏览器向服务器发出请求 返回响应的页面
模拟get请求

多种请求方式
@RequestMapping(value = "/page2",method = {RequestMethod.GET,RequestMethod.POST})
在类上贴路径
@RequestMapping("/page")
创建User类
@Data
public class User {
private String username;
private String password;
}
将浏览器传来的用户名和密码传入Map中
http://localhost:8080/page/page2?username=maomao&password=123456
@Controller
@RequestMapping("/page")
public class PageController {
//地址映射
@RequestMapping(value = "/page2",method = {RequestMethod.GET,RequestMethod.POST})
//方法中定义map对象,将数据放入map中,返回逻辑地址
public String page2(User user, Map<String, Object> map){
System.out.println("page2");
Map<String,String> dataMap=new ConcurrentHashMap<>();
dataMap.put("username",user.getUsername());
dataMap.put("password",user.getPassword());
map.put("dataMap",dataMap);
return "page2";//逻辑地址
}
}
<div th:text="${dataMap.username}"></div>
<div th:text="${dataMap.password}"></div>
用软件模拟post请求

JSON格式 特殊的js对象 只有数据没有方法
直接变成java对象
加注解JSON从body体里取出来 不加就是普通传值 加了就是JSON字符串传值
@RequestBody User user//从前端到后端
模拟JSON

表示返回值不是页面地址而是一个数据
@ResponseBody//后端到前端
案例
@Controller
@RequestMapping("/page")
public class PageController {
//地址映射
@RequestMapping(value = "/page2",method = {RequestMethod.GET,RequestMethod.POST})
@ResponseBody
//方法中定义map对象,将数据放入map中,返回逻辑地址
public Map<String,String> page2(@RequestBody User user, Map<String, Object> map){
System.out.println("page2");
Map<String,String> dataMap=new ConcurrentHashMap<>();
dataMap.put("username",user.getUsername());
dataMap.put("password",user.getPassword());
map.put("dataMap",dataMap);
//数据对象
map.put("name","张三");
map.put("age",18);
map.put("sex",false);
//字符串集合
List<String> nameList = List.of("mao1", "mao2", "mao3");
map.put("nameList",nameList);
return dataMap;//逻辑地址
}
}

浙公网安备 33010602011771号