文章目录
- 1.静态资源访问
- 1.基本介绍
- 2.快速入门
- 1.新建一个maven项目
- 2.引入依赖 pom.xml
- 3.创建文件目录
- 4.Application.java
- 5.创建四个可以存放静态资源的文件夹
- 6.通过浏览器访问(这四个都可以访问)
- 3.注意事项和细节
- 1.关于静态资源的访问管理
- 2.修改静态资源的访问前缀
- 1.创建配置文件 resources/application.yml 修改静态资源的访问前缀,此时通过 根路径/sun/文件名 访问
- 2.结果展示
- 3.修改静态资源的默认存放文件夹为类路径下的sun111/
- 1.application.yaml
- 2.一旦自己设置了默认存放文件夹在,则默认的那四个文件夹就会被覆盖
- 4.关于静态资源的访问路径和存放路径
- 2.Rest风格请求处理
- 1.应用实例
- 1.需求分析
- 2.MonsterController.java
- 3.postman测试
- 2.使用表单进行Rest风格的请求
- 1.基本介绍
- 2.application.yml 配置隐藏方式过滤器
- 3.restRqeuest.html
- 4.浏览器测试
- 3.关于不同注解标识的类中的方法中return的处理
- 1.@RestController标识的类
- 2.@Controller标识的类
- 4.@Controller标识的类return的实例
- 1.编写一个由Controller注解标识的类
- 2.测试
- 3.配置一个视图解析器 application.yml
- 4.测试
- 5.@Controller标识的类return的总结
- 1.如果没有配置视图解析器
- 2.如果配置了视图解析器
- 3.关于SpringBoot的 `/`
1.静态资源访问
1.基本介绍
2.快速入门
1.新建一个maven项目
2.引入依赖 pom.xml
<parent><artifactId>spring-boot-starter-parent</artifactId><groupId>org.springframework.boot</groupId><version>2.5.3</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>
3.创建文件目录
4.Application.java
package com.sun.springboot;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}
5.创建四个可以存放静态资源的文件夹
6.通过浏览器访问(这四个都可以访问)
3.注意事项和细节
1.关于静态资源的访问管理
2.修改静态资源的访问前缀
1.创建配置文件 resources/application.yml 修改静态资源的访问前缀,此时通过 根路径/sun/文件名 访问
spring:mvc:static-path-pattern: /sun/**
2.结果展示
3.修改静态资源的默认存放文件夹为类路径下的sun111/
1.application.yaml
spring:web:resources:static-locations: [classpath:/sun111/]
2.一旦自己设置了默认存放文件夹在,则默认的那四个文件夹就会被覆盖
4.关于静态资源的访问路径和存放路径
- 静态资源的存放路径默认有四个,可以进行修改,但是修改之后就会覆盖原来的存放路径
- 静态资源的访问路径,默认是根路径,也是可以修改
- 存放路径就是存放静态资源的路径,而访问资源只需要关注访问路径即可,不需要关心静态资源放在哪里
2.Rest风格请求处理
1.应用实例
1.需求分析
2.MonsterController.java
package com.sun.springboot.controller;import org.springframework.web.bind.annotation.*;
@RestController
public class MonsterController {@GetMapping("/get")public String getMonster() {return "getMonster";}@PostMapping("/post")public String postMoster() {return "postMoster";}@PutMapping("/put")public String putMonster() {return "putMonster";}@DeleteMapping("/delete")public String deleteMonster() {return "deleteMonster";}
}
3.postman测试
2.使用表单进行Rest风格的请求
1.基本介绍
2.application.yml 配置隐藏方式过滤器
spring:mvc:hiddenmethod:filter:enabled: true
3.restRqeuest.html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<form action="/put" method="post"><input type="hidden" name="_method" value="put"><input type="submit" value="submit">
</form>
</body>
</html>
4.浏览器测试
3.关于不同注解标识的类中的方法中return的处理
1.@RestController标识的类
- 如果是这个注解标识的类,则表示将返回的结果转换成json字符串然后返回到浏览器
- 并不会返回到视图解析器
2.@Controller标识的类
- 如果是这个注解标识的类
- 首先查看是否有对应的Controller处理,比如return hello,则找
/hello
的Controller - 如果没有则交给视图解析器处理
- 如果视图解析器没办法处理就会报错404
4.@Controller标识的类return的实例
1.编写一个由Controller注解标识的类
package com.sun.springboot.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class MonsterController {@GetMapping("/go")public String goView() {System.out.println("跳转到视图解析器");return "hello"; }@GetMapping("/hello")@ResponseBody public String hello() {return "没有配置视图解析器时会找到我这个Controller";}
}
2.测试
- 可以看到访问的go,但是找到了/hello的Controller(因为没有配置视图解析器)
3.配置一个视图解析器 application.yml
- 这里配置的视图解析器会查找/xxx.html,这里的/指的是根目录
spring:mvc:view: suffix: .html prefix: /
4.测试
- 可以看到一旦配置了视图解析器,不会再去找Controller
5.@Controller标识的类return的总结
1.如果没有配置视图解析器
- 会根据返回的字符串并在前面拼接
/
,来查找对应的Controller - 此时的
/
是上下文路径
2.如果配置了视图解析器
- 不会再去匹配Controller
- 会根据视图解析器的前缀和后缀去拼接返回的字符串
- 根据静态资源的访问路径去查找到对应的静态资源
3.关于SpringBoot的 /
- 只有在Controller中的
/
才是上下文路径 - 其余的
/
全指的是服务器根目录http:localhost:8080/