一. springboot项目的创建

服务器URL:

start.spring.io
start.aliyun.com
Spring技术笔记图片

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;//逻辑地址
    }
}

posted on 2026-01-29 16:52  关羽飞  阅读(3)  评论(0)    收藏  举报