SpringBoot Web开发:静态资源与REST映射详解

需积分: 6 1 下载量 25 浏览量 更新于2024-08-05 收藏 41KB MD 举报
"基于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规范,同时灵活地管理静态资源和页面呈现。