"基于SpringBoot的Web开发简单笔记"
在SpringBoot框架中进行Web开发,我们可以利用其便捷的特性来管理静态资源、设置欢迎页、自定义Favicon以及实现RESTful风格的请求处理。以下是对这些知识点的详细解释:
### 1. 静态资源访问
SpringBoot默认会自动处理静态资源,将它们放置在类路径下的特定目录中,如`static`、`public`、`resources`或`META-INF/resources`。当客户端发起请求时,SpringBoot会首先尝试寻找对应的Controller处理,如果找不到,则会转而寻找静态资源。如果静态资源也未找到,服务器会返回404错误。
#### 1.1 改变静态资源路径
可以通过配置YAML文件(`application.yml`)来改变静态资源的默认位置,例如:
```yaml
resources:
static-locations: [classpath:/myStatic/]
```
这样,SpringBoot将从`myStatic`目录下查找静态资源。
#### 1.2 设置静态资源访问前缀
默认情况下,静态资源没有访问前缀。若需设置,同样在YAML文件中配置:
```yaml
spring:
mvc:
static-path-pattern: /res/
```
如此,访问静态资源的路径将会变成`http://localhost:8080/res/desk.PNG`。
### 1.3 自定义Favicon
将`favicon.ico`图标放入静态资源目录,例如`static`目录下,SpringBoot会自动处理并显示为网页的图标。
### 2. 请求处理
#### 2.1 REST映射及其分析
RESTful架构风格强调使用HTTP方法(GET、POST、PUT、DELETE等)来表示对资源的不同操作。在SpringBoot中,可以通过`@RequestMapping`和特定的方法注解(如`@GetMapping`、`@PostMapping`等)来映射HTTP请求。
对于不支持PUT、DELETE等非POST请求的浏览器表单,可以借助隐藏字段`_method`和一个隐藏方法过滤器(HiddenMethodFilter)来模拟这些请求。在YAML配置文件中启用该过滤器:
```yaml
spring:
mvc:
hiddenmethod: # 开启REST风格表单
filter:
enabled: true
```
然后在Controller中,你可以像下面这样处理PUT请求:
```java
@RequestMapping(value = "/user", method = RequestMethod.PUT)
public String put() {
return "PUT!";
}
```
#### 2.2 自定义Filter
SpringBoot允许我们自定义Filter,以扩展其默认行为。例如,可以创建一个名为`HideMethodFilter`的Bean来处理隐藏方法的转换:
```java
// 自定义filter
@Bean
public HiddenMethodFilter hideMethodFilter() {
// 实现Filter逻辑
}
```
通过这种方式,你可以根据需求定制SpringBoot应用程序的行为,使其更符合RESTful规范,同时灵活地管理静态资源和页面呈现。