小学期的那些事情总算是结束了,可以继续安心做自己的事情了。最近发现自己小站的文章数变得越来越多,发现搜索功能其实还是挺有用的。所以,今天就给小站添加一个搜索功能出来。

不过,我们这个没有后端,那怎么搜索呀🤔🤔

Hexo

默认规则

Spring Boot 提供了一个默认的 /error 路径来处理所有错误的映射。但是,同样的错误在不同的客户端下显示的效果是完全不一样的。

比如,在做前后端分离的应用程序时,使用 Postman、OkHttp 等这类工具。通过它来发送一个不存在的路径时,它返回的错误信息是 JSON 格式的。

image-20210710104356541

>
JavaSpringBootThymeleaf

出现的问题

昨天,在初次使用 Thymeleaf 这个模版引擎,做登录的时候。如果登录成功,就不会有下面这个错误,如果是登录失败或者啥都没输入都会报错。

控制台给出的警告信息。

2021-07-08 19:02:27.692  WARN 13800 --- [p-nio-80-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported]

点击登录的时候,发送请求时爆出了一堆信息,错误码为 405 。

刚开始自以为是的认为是 Thymeleaf 的问题,甚至还天真的认为是 SpringBoot 整合的 web 模块有 bug ,认为这个 bug 是没有处理 POST 请求。后面发现其实都不是,是我的问题😂😂。

JavaSpringBootThymeleaf

什么是 yaml

YAML 是 “YAML Ain’t Markup Language” (YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML的意思其实是 “Yet Another Markup Language”(仍是一种标记语言)。

yaml 基本语法

  • key: value; kv 之间有空格大小写敏感

  • 使用缩进表示层级关系

  • 缩进不允许使用 tab,只允许空格

  • 缩进的空格数不重要,只要相同层级的元素左对齐即可

  • ‘#‘ 表示注释

  • ”与” 表示字符串内容会被转义/不转义

>
SpringBootyaml

问题描述

在使用 OkHttp 的封装工具类 OkHttpUtils 向 Tomcat 发送请求的时候,出现了一个错误。错误描述如下。

CLEARTEXT communication not supported: [ConnectionSpec(cipherSuites=[TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, ......]

造成的原因是因为从 Android P(9.x)之后的版本不能够再进行明文的传输数据。http 就是一种明文传输的协议,需要对请求进行加密,比如使用 https 这种协议。说白了为了安全起见

而我在发送请求的时候正好也是明文传输的。

AndroidJava

SpringBoot 的 web 场景,其实就是 Spring MVC,使用方式和 Spring MVC 的用法是一模一样的。但是被整合到 SpringBoot 中,有些新的用法还是需要去学习学习的。

路径访问

在学习了 SpringBoot 中的静态资源访问。其中,默认就给了我们 4 个设置静态资源的目录,他们分别是 staticpublicresourcesMETA-INF/resources。不过,在使用 Spring Initializer 来构建我们的 Spring Boot 项目时,默认就有一个 static 目录用户放置静态资源文件夹。

>
JavaSpringBoot

今天学习了 SpringBoot 中的一些注解,不过有些注解是 Spring 中的,它们分别是 @Configuration、@Import、@Bean、@Conditional、@ImportResource、@ConfigurationProperties、@EnableConfigurationProperties 注解。

学完这些注解之后,突然有一个想法。就是之前在 SpringBoot 的 Web 模块的时候,SpringBoot 好像还是需要我们来自己编写拦截器,这就感到费时间,有点不符合 SpringBoot 的少量配置的特点。暑假想自己尝试写一个基于 Spring MVC 的拦截器的第三方库。

7af40ad162d9f2d314edf006abec8a136227cc5f

我觉得这个还是等到把雷神的 SpringBoot 给弄完,能在暑假之内做出来是最好的了。

>
JavaSpringBoot

今天自己的阿里云的轻量级云服务器即将到期,准备去续费,发现续费的时候没有学生优惠了。一个月的话就要个几百元,对于我来说这毫无疑问是一种非常大的支出,非常得不偿失。所以,今天做了一个非常重要的决定,就是将自己的小站托管到国外的网站托管服务上。

GitHub Pages 虽然是一个很好的选择,不过,它绝大多数时候是抽风的状态。所以我选择 Vercel 来将自己的个人站点进行托管,加上自己的站点经过了 CDN 的加速,访问速度应该不会受到太大的影响。

先赶紧给它办完,后期的小学期的事情又会多起来。😇😇

website-migrate

Hexo网站搭建Vercel

Web SQL 是存在于浏览器端的数据库,但是它并没有成为浏览器的一种标准,不过 Web SQL 有属于自己独立的标准。因此,Web SQL 并不存在于所有的浏览器中。就现在而言,Web SQL 仅仅存在于 Google Chrome(谷歌浏览器),以及绝大部分基于 Chromium 内核的浏览器,新版的 Microsoft Edge。Firefox、IE、以及旧版的 Microsoft Edge 都不支持 Web SQL。

据了解,Web SQL 数据库最普遍而又单一实现的居然是 SQLite !

比较详细的解释可以看看知乎的这个疑问 “sqlite与websql的关系?”。既然如此,那么在使用 Web SQL 的时候岂不是就可以参照 SQLite 的语法创建数据库,创建表之类的?🧐🧐

或者使用标准的 SQL 语句来创建?

带着这个疑问,那就开始 Web SQL 的旅程吧。

狐妖小红娘

SQLiteWeb SQL