『git』git和github入门教程
git简介
git是一个分布式的版本控制系统。
git快速开始
安装git
Git - Download
这里不讲述安装教程
体验git
我们先来快速的体验一下git,这一部分我将尽量避开git的细节,专注于git的使用
git和github
要体验git的强大功能,github是必不可少的。
但是虽然两者之间有着类似的名字,但两者之间的关系就好像是java和JavaScript之间的关系一样——两者之间完全不相同。
那么github有什么用呢?git是一个分布式版本控制系统,是一个工具,git是如何完成版本控制的呢,它会在本地创建一个仓库,这个仓库会记录下仓库中文件的各种信息。通过了git和他创建的仓库,我们就可以在本地实现版本控制,但是仅仅在本地的仓库很多时候并不能满足我们的需求。
我们更希望仓库保存本地的同时可以保存在云端,这样我们可以更好的保存我们创建的内容;于此同时,我们想要把自己创建的东西分享给其他人。那么github就是这样的远程代码托管平台。
我们可以借助于git,把本地的仓库放在github上,而放在github上的内容也可以被更多人看到,分享给更多的人,这 ...
『rss』ttrss极速搭建rss服务
什么是rss
Really Simple Syndication,简易资讯聚合。
名字并不重要,你可以理解为这是一个软件,可以帮助你订阅互联网上各种各样的信息,就好像微博你订阅了博主,然后你就可以特别的收到它的消息一样。只不过现在你可以订阅的范围变成了所有支持rss的网站
下面我们就尝试着使用ttrss来订阅著名大佬阮一峰的博客
ttrss
注意,以下的rss服务没有配置域名和https
开始的准备
在开始之前,你需有一些必要的工具
docker
云服务器
什么是ttrss
ttrss即tiny tiny rss,是一个基于php的免费开源的rss聚合阅读器,下面我们将使用docker compose来搭建服务
开始搭建
首先在任意的地方创建docker-compose.yml文件,内容如下
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869version: &quo ...
『JavaWeb』基本坏境配置
配置Tomcat
下载Tomcat9或者更低版本,Tomcat10的包目录结构有较大的改变,没有熟悉之前不建议使用
Apache Tomcat® - Apache Tomcat 9 Software Downloads
下载好之后解压到任意目录里
然后把Tomcat配置到环境变量里,我们需要有三个必须的环境变量
JAVA_HOME:tomcat由java编写,必须要jdk环境,在开始之前就应该配置好
CATALINA_HOME:tomcat的所在目录
tomcat的bin目录
这样就完成了基本的环境变量配置了,然后我们来简单的检测一下环境变量是否配置成功
打开cmd控制台
1$ startup.bat
这样就启动成功了,然后我们访问localhost:8080,出现以下页面就成功了
测试成功就可以关闭服务了
配置maven
Maven – Download Apache Maven
下载好之后解压到任务目录
需要配置两个环境变量
MAVEN_HOME:maven所在目录
maven的bin目录
打开控制测试一下
1$ mvn -v
这样maven就配 ...
『创新实践』创新实践总结1
Web服务器⛵
什么是Web服务器
Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以处理浏览器等Web客户端的请求并返回相应响应,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。
Web服务器的本质
Web服务器的本质就是一个程序,不过这个程序比较特殊,在Web中,它更像是一个中间人,可以接受来自于客户端的请求,并把这个请求交给后台的程序处理。
再从这个程序的角度出发,Web服务器帮助我们完成了对端口的监听,实现了对后台后台程序的调度,让我们专注于实现后台逻辑
Web服务器有哪些,以及它们的特点📲
Web服务器很多,我这里就列举一下我用过的,讲讲自己的感受,也就不细细列举其它的Web服务器了
apache
一个相当经典的web服务器,常常和php环境一起出现,为php提供开发环境,但是现在在其它领域用的比较少了
nginx
当下依旧火热的Web服务器,由C语言编写,速度相当快,并发能力很强。此外,除了上面讲的Web服务器的经典功能以外,nginx还提供了反向代理,负载均衡,动静分离等功能,在Web开发中非常常见,即便 ...
『Go』在Go中使用JWT
什么是JWT
JWT即JSON Web Token,工作机制是在用户通过鉴权之后,服务端发送一个JSON作为凭证给客户端,让客户端又权限可以访问一些资源
JWT 的三个部分依次如下。
123456- Header(头部)包含了一些元数据- Payload(负载)存放实际需要传递的数据- Signature(签名)对前两部分进行签名,防止jwt被篡改
我们需要注意的是Payload中的数据不会被加密,所以不要存放重要
签名保存在服务端,是绝对不可泄露的
最后,服务器会对整个JSON进行加密,然后把加密后的数据传回给客户端,最后我们拿到的jwt大概是这样的
1eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
GO使用JWT
下面的代码同时被保存在github仓库中
jking412/go-example: 小demo,go的整合 ...
『springboot』shiro鉴权
Shiro是什么
shiro是java的一个安全框架,关于它的优势和一些功能就不细讲了
Shiro的架构
先放一张经典的Shiro架构图
Subject:可以理解为资源的请求者
Shiro SecurityManager:作为一个中间的过度,管理着shiro各种资源
Realm:存放着真正的认证和授权信息
快速入门
下面就是一个shiro在项目中应用的简单例子,因为是shiro的快速入门,所以shiro之外的其它技术如何使用包括sql语句的编写不会去具体讲解,所以建议开始前把代码拉下来
完整代码请访问仓库
jking412/java-example: 一些java的demo,主要是springboot整合框架的案例 (github.com)
数据库的设计
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051create table goods( id int auto_increment primary key, ...
(十五)密码加密和jwt认证
开始前的准备
12$ go get golang.org/x/crypto$ go get github.com/golang-jwt/jwt
开始编码
密码加密
pkg/hash/hash.go
12345678910111213141516171819202122package hashimport ( "go-api-practice/pkg/logger" "golang.org/x/crypto/bcrypt")func BcryptHash(password string) string { bytes, err := bcrypt.GenerateFromPassword([]byte(password), 14) logger.LogIf(err) return string(bytes)}func BcryptCheck(password, hash string) bool { err := bcrypt.CompareHashAndPassword([]byte(h ...
(十四)邮箱发送验证码
开始前的准备
发送邮箱验证码时请确保开启MailHog
开始编码
整体逻辑和手机发送短信差不多
接受前端数据
app/requests/signup_request.go
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152type SignupUsingEmailRequest struct { Email string `json:"email,omitempty" valid:"email"` VerifyCode string `json:"verify_code,omitempty" valid:"verify_code"` Name string `valid:"name" json:"name"` Password s ...
(十三)手机号发送短信验证码
开始前的准备
编码开始
接受前端数据
app/requests/signup_request.go
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849type SignupUsingPhoneRequest struct { Phone string `json:"phone,omitempty" valid:"phone"` VerifyCode string `json:"verify_code,omitempty" valid:"verify_code"` Name string `valid:"name" json:"name"` Password string `valid:"password" json:" ...
(十二)用邮件来发送验证码
开始前的准备
12$ go install github.com/mailhog/MailHog@latest$ go get github.com/jordan-wright/email
我们用mailhog来作为邮箱服务器
SMTP端口:1025
网页端口:8025
我们再powershell使用MailHog命令开启服务
编码
封装mail包
我们依然先去封装mail包
pkg/mail/driver_interface.go
12345package mailtype Driver interface { Send(mail Email, config map[string]string) bool}
pkg/mail/driver_smtp.go
123456789101112131415161718192021222324252627282930313233343536373839404142434445package mailimport ( "fmt" emailPKG "github.com/jo ...