SpringBoot自学第4天——静态资源映射与Rest风格的表单写法(附index.html静态主页源码)

上一章

SpringBoot自学第3天——lombok插件以及yml的基本语法



前言

这一次学习了各个放置静态资源的映射目录的优先级以及其他一些小配置。


一、可以放置静态资源的目录

// resources资源包下	没有的需要自己创建
1. META-INF/resources/
2. resources/
3. static/				---		已存在
4. public/

在这里插入图片描述

1. 如果资源放在这几个目录下,那么可以通过链接地址直接访问到

比如:
在这里插入图片描述
在这里插入图片描述

2. 在这几个目录下直接放一个名为index.html主页,则SpringBoot会在用户访问链接根地址时自动解析展示

例如下面放入了一个静态网页index.html,没有任何其他配置:
在这里插入图片描述
运行结果:
请添加图片描述

静态网页是网上搜索的模板,待会项目链接放在最底下。

3. 利用SpringBoot自动配置网页的Logo

在这里插入图片描述
只要找一个图标文件放在静态资源文件夹下(任意一个),并且将其命名为favicon.icon,最后重启项目即可,所有网页都会自动使用到这个图标。

这里提供一个简单的图标查找方法。如果安装了QQ,可以在文件夹中访问

%APPDATA%\Tencent\QQ\Misc\Shortcuts\

然后在QQ中随意拖一个头像到桌面上,那么这个icon图标就生成了。改名为favicon拖入SpringBoot项目中放静态资源的文件夹里就可以用了。
请添加图片描述

二、Rest风格写Controller处理

所谓rest风格,就是假如我们有一个数据库user,并且要对其进行增删改查的请求。
那我们需要映射四个不同的网页地址来做处理,如:/addUser /deleteUser /findUser /changeUser等
而Rest是用射到同一个地址,但是用请求的method做区分。
如:
在这里插入图片描述

1. 写一个html文件放在static中,命名为user.html,用这个网页来请求增删改查

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>user-op</title>
</head>
<body>
    <form action="/user" method="get">
      <input type="submit" value="get">
    </form>
    
    <form action="/user" method="post">
      <input type="submit" value="post">
    </form>
    
    <form action="/user" method="post">
      <input type="hidden" name="_method" value="put">
      <input type="submit" value="put">
    </form>
    
    <form action="/user" method="post">
      <input type="hidden" name="_method" value="delete">
      <input type="submit" value="delete">
    </form>
</body>
</html>

在这里插入图片描述

2. 添加一个Controller,写上增删改查象征性的四个处理函数

//DataController.java

package com.mrzs.controller;

import org.springframework.web.bind.annotation.*;

/**
 * @author Supreme
 */
@RestController
public class DataController {

    @GetMapping("/user")
    public String getUser(){
        return "get user";
    }

    @PostMapping("/user")
    public String postUser(){
        return "post user";
    }

    @PutMapping("/user")
    public String putUser(){
        return "put user";
    }

    @DeleteMapping("/user")
    public String deleteUser(){
        return "delete user";
    }

}

3. 启动SpringBoot自动分析put与delete请求的配置,在application.properties中添加一行配置

//application.properties

spring.mvc.hiddenmethod.filter.enabled=true

启动项目

由于html只有post和get两种请求方式,没有put和delete请求,所以需要请求地址带上源码默认的_method=put 或 _method=delete以post方式向后台发送请求,以此来告诉后台这是put请求或delete请求,而不是post请求。
如果想发送put请求来增加一条数据,而没有下面这一行,我们会看到,该次请求被后台controller中的post映射处理了,而不是put映射处理的。

<input type="hidden" name="_method" value="put">

请添加图片描述
但是加上后,程序就可以正常按照我们想要的逻辑,去给put映射的处理函数中处理,并返回put user
在这里插入图片描述

4. 通过自定义相关拦截器Bean的装配,来修改"_method"为自己喜欢的key值

//MyConfig.java

@Configuration
public class MyConfig {
    @Bean
    public HiddenHttpMethodFilter hiddenHttpMethodFilter(){
        HiddenHttpMethodFilter hiddenHttpMethodFilter = new HiddenHttpMethodFilter();
        hiddenHttpMethodFilter.setMethodParam("_m");
        return hiddenHttpMethodFilter;
    }
}

在这里插入图片描述
这样同样可以正常访问put映射页和delete映射页。

总结

1. banner.txt的配置(没什么用,省略了)

2. 静态资源放置映射目录

3. index.html自动解析,无需任何代码配置,放在静态资源文件夹即可

4. favicon.ico图标,无需任何代码配置,放在静态资源文件夹即可

5. Rest风格请求,需要在put与delete请求的表单中增加隐藏参数

<input type="hidden" name="_method" value="put">		//value值“put”大小写不敏感

6. key值"_method"可以通过Config中的Bean配置来修改

本期我们获得了一个主页,还做了一个处理请求的Controller映射,这是web的入门初探,接下来将完全进入到web前端网页和后台请求响应的编写中。

gitee项目链接: SpringBoot自学第4天——静态资源放置

下一章

SpringBoot自学第5天——如何在睡梦中就能轻松理解SpringBoot底层源码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值