wangshuo'blog

wangshuo'blog

Recent Articles

本文尝试了使用IPV6地址,并分别通过 svn 协议和 http 协议,来访问 svn 服务。 环境 ubuntu22.04 subversion 1.14.1 Apache2 2.4.52 TortoiseSVN 1.14.5 开启使用 svnserve 命令开启的 svn 服务默认情况是不支持通过 IPV6 地址来访问的。 这里通过命令来验证 netstat -antp | grep "LISTEN"

内网 pve 申请 ssl 证书

环境 域名 dns 解析托管在阿里云 pve 在内网。192.168.8.183 添加域名解析在 阿里云 的管理平台的控制台上面添加一条新的 DNS 记录,记录值是 192.168.8.183 质询插件位置:数据中心-ACME-质询插件 DNS API 选择 “”Alibaba Cloud DNS 这里的 Key 和 Secret 添加从阿里云上获取的。 什么是AccessKey,如何为阿里云账号和RAM用户创建AccessK

docker 创建 Nginx 容器添加目录映射遇到的一个问题

(๑•̀ㅂ•́) ✧ 问题我想要创建一个 Nginx 容器,为了编辑这个容器方便,我想要把 /etc/nginx 这个目录映射出来。 当我使用下面的命令创建 Nginx 容器时, 1sudo docker run --name mynginx -p 18080:80 -v /opt/docker/nginx:/etc/nginx -d 172.17.0.8:8083/nginx:1.25.5 命令执行成功,但是容

TortoiseSVN 版本浏览器 使用 IPV6 地址访问包含中文路径等字符的路径的 bug

(๑•̀ㅂ•́) ✧ 问题描述TortoiseSVN 1.14.5 2023-11-22 13:21 使用 TortoiseSVN 的版本浏览器使用 IPV6 地址访问包含中文路径等字符的路径的 bug 会显示 “not found” 更换成域名(解析到IPV6地址)不会有这个问题。 解决2023年7月7日 20:13:38,这个 bug 被报告。在 Google-Groups 的 TortoiseSVN 群组 2023年,11月

使用 svn 管理你的文件

(๑•̀ㅂ•́) ✧ 使用 svn 管理你的文件(项目、等等) 前言之前一段时间学习了一下 需求 可以管理 Git 项目。 有版本管理。 多设备同步。 使用方便。 等等 不要使用 gitgit 不方便管理 git 项目(即使有 submodule 的概念),最好是用其他方式来管理,把 git 项目当作一般文件去管理。 git 不能 clone 一个单独的文件或者目录。并基本这个进行提交。当一个仓库很大的时候,这一点就很显得有很大问题。

java | 匿名内部类简单刨析

java | 匿名内部类简单刨析 什么是匿名内部类匿名类是指没有类名的内部类。 演示1234567891011121314151617/** * @author rosercode * @date 2023/7/17 14:16 */public class AnonymousClassExample { public static void main(String[] args) {

重构 | 记一次代码重构

重构 | 记一次代码重构 下面记录一次使用 gpt 来帮助进行代码重构的记录 Link 重构前1234567891011121314151617181920212223242526272829303132333435public Dictionary getEntryByWord(String word) throws SQLException { String sql = "SELECT word, d

http | java 直接播放 http 响应流的内容

http | java 直接播放 http 响应流的内容 2023-05-08 14:26:48 引言之前帮其他人写一个简单的 java 本地词典程序,其中包括一个阅读功能,选中单词,阅读单词。开始的想法是直接调用 Baidu Fanyi 的接口。 最简单、容易理解的实现发送请求下载 mp3 文件到本地,播放本地的 mp3 文件。更好的方式是直接转换流,就省去的下载的这个过程 12发送请求 - 下载mp3文件到本地 - 播放

借助 chatgpt 的代码重构记录

(๑•̀ㅂ•́) ✧ 借助 chatgpt 的代码重构记录 写了两个函数,发现有重构的地方,思路是有的(也不是很难)。 就想要借助 chatgpt 来帮我重构一下 重构前1234567891011121314151617181920212223242526272829303132333435363738public List<Dictionary> selectAll() throws SQLException &#1

Spring MVC | SpringMVC-获取 Session 的几种方法.md

SpringMVC-获取 Session 的几种方法.md 方法1:方法的参数列表123456@PostMapping(value = "/msg1")@ApiOperation("获取用户信息")public GlobalResult msg1(HttpSession session){ UserMsgResp userMsg = (UserMsgResp) session.

Hadoop | 如何设置 Hadoop 50070 端口绑定的地址

如何设置 Hadoop 50070 端口绑定的地址、如何允许非本机 ip 访问 Hadoop 的 50070 端口 修改 hdfs-site.xml,添加下面内容 1234567891011121314151617181920<property> <name>dfs.client.use.datanode.hostname</name> <value>true</v

【转】【译】flask 框架配置基础的 URL(baseURL)

flask 框架配置基础的 URL(baseURL) 之前使用 Python 的 flask 写了一个简单的应用,想要为后端所有的路由配置一个共同的 URL 前缀(如 /api )。 在 stackoverflow 上找到了一些解决方案,这里做一个整理和翻译 方法1 - 字符串拼接12345678910111213141516from flask import FlaskPREFIX = "/abc/123&

mybatis-plus 结合 pagehelper 分页查询 total 值错误的情况之一

mybatis-plus + pagehelper 分页查询 total 值错误的情况之一 (๑•̀ㅂ•́) ✧ 在使用 mybatis-plus 进行数据库操作,pagehelper 进行相关查询的分页操作,遇到 total 和预期不符合的情况之一 错误用法数据库查询出来的数据并不是最后 service 层返回的数据,要进行转换后返回 1234567891011121314151617181920@Servicepublic c

java | jdbc 通用的数据库访问层设计

java | 通用的数据库访问层设计 下面给出了一个基础,相对通用的数据库访问层代码,简单修改一下可以通用 创建表12345678CREATE TABLE `goods` ( `id` int NOT NULL AUTO_INCREMENT COMMENT '主键 id', `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_090

Linux | sudo 不从键盘中指定密码

sudo 不从键盘中指定密码 需要编写一个 shell 脚本,脚本在运行时 sudo 权限,但是使用 sudo 来提权必须手动输入当前用户的密码 -S 参数 1-S, --stdin read password from standard input -S 参数可以从标准输入中读取密码 例子1echo "password" | sudo -S su 处于安全性的考虑,建议从

自动化 | Python 自动化脚本

Python 自动化脚本-SpringBoot 项目一键部署 需求分析解决的问题,实现下面流程的自动化: 1、一键编译本地 Maven 项目 1mvn clean package 2、删除远程服务器 jar 包,同时结束指定端口的进程 12rm xxx.jarlsof -i:8888 -t | xargs kill -9 3、上传编译生成的 jar 包 1scp xxx.jar xxx 4、调用命令启动 jar 包 1noh

Linux | 依赖缺失问题

Linux | 依赖缺失问题 在 debain 系列的 Linux 发行版中, 在使用 dpkg 命令安装 deb 文件,可能会出现依赖缺失的问题 下面分享一下个人的见解 推荐看一下这个 知乎-史上最硬核的 Linux 依赖问题解决方案 出现依赖问题的主要原因是两种 缺失所需要的依赖 或者需要依赖的版本和系统已安装的版本有冲突 按照报错的信息,可能让你在终端实现下面的命令来尝试解决依赖问题 12sudo apt insta

Spring | 为什么方法要传入和响应自定义实体类

Spring | 为什么方法要传入和响应自定义实体类 为什么后端的方法要传入自定义的 bean 实体类,而不是使用实体类的属性列表,直接作为方法的形参列表 List、Map、JsonObject 等等 以下属于个人见解 1234567891011public class LoginController { @Resource private IAuthService authService;

终端登录浏览器认证

终端登录浏览器认证 网络情况如下; 只提供浏览器的方式,来完成登录认证(如 深澜软件),没有其它登录方式 角色 认证服务器 远程服务器(只有 字符界面) 本地计算机(有图形界面) 在电脑有 图形用户界面 这个是方便的,而对于那种 只有字符界面 (文本界面接口)的服务器而言,一般情况下是无法使用浏览器来完成登录的 下面介绍几种方案 浏览器请求流程分析 代理服务器 终端浏览器 浏览器请求流程分析通过分析浏览器的登录过程,来

npm | npm install 配置代理

npm | npm install 配置代理 命令如下 12npm config set proxy http://username:password@host:portnpm config set https-proxy http://username:password@host:port 举例 12npm config set proxy http://127.0.0.1:8889npm config set https

Ubuntu 22.04 | Firefox 启动报错 "Failed to load module "canberra-gtk-module""

Ubuntu 22.04 | Firefox 启动报错 “Failed to load module “canberra-gtk-module” 解决方案: 重新安装 Firefox 引言Firefox 是 绝大多数 Linux 发行版的默认浏览器 Ubuntu 默认(内置)提供的浏览器也是 Firefox,从 Ubutnu21.10 之后的版本,默认是以 snap 的方式安装的。 Ubuntu 默认带有两个包管理器,sna

github Author 是如何确定的

我是短小精悍的文章摘要(๑•̀ㅂ•́) ✧ Github 上显示的 Author 信息是如何确定的? 结论:Commit 提交的信息是根据 在本地配置的 email 信息确定的,根据本地配置的 Email 查询到的 username 当我在另外一台电脑上,push 自己修改的代码,这里显示的 username 的本地的 Email 在 Github 对应的值,当我修改 username 的值,不会有变化。 只有修改 Emai

记一次 C++ 代码 Debug 记录

我是短小精悍的文章摘要(๑•̀ㅂ•́) ✧ 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788#include <iostream>usin

Java-日志信息表

(๑•̀ㅂ•́) ✧ Java-日志信息表的设计 引言这里对 Java 的日志信息进行,建立的三张表用于统计日志信息。 下面主要介绍数据库中日志相关表的设计 Log4J 日志框架可以直接和 JDBC 集成,用于相关日志信息的保存,这里不做介绍 这里提供了另外一种简单的方案 表结构E-R 图 设计到上面的四张表 序号 表名称 表描述 1 login_log 用户的登录日志信息表 2 request_log 用户请

Java | 反射应用

(๑•̀ㅂ•́) ✧ Java 反射应用 – 判断一个 JavaBean 的属性是否为 null 在正常的业务逻辑中,我们会存在下面的需求: 在前端发送数据到后端,需要对数据进行校验,其中一项为判断是否为空,我们可以通过下面的方式来判断是否有参数是否为空 1234567891011121314151617@GetMapping(value = "/expressRemark")@NeedLoginAuthpubl

浏览器 | 自动播放策略

我是短小精悍的文章摘要(๑•̀ㅂ•́) ✧ 浏览器的自动播放策略,就是浏览器如何处理网页中的音视频资源 – 即是否允许播放。 不同的浏览器 自动播放策略 是不同的,下面就常见的浏览器 Firefox[官方] Firefox 浏览器自动播放策略 Firefox 默认禁止网站自动播放音频文件,允许视频自动播放。 我们可以在 设置 -> 隐私与安全 -> 权限 -> 自动播放 中设置 Chrome[官方] Chrome

Ubuntu | 安装、配置 oh-my-zsh

Ubuntu | 安装、配置 oh-my-zsh 什么是 zshLinux 默认是 shell 是 bash shell。除去默认的 bash shell 外,存在其他的 shell。 我们可以通过查询 /etc/shells 文件 的内容来查询内容具有的 shell 相对于默认的 bash,zsh 就有根据高级的特性。 zsh 在使用上,和 bash shell 基本是相同的,这也是我推荐使用的理由之一

Java | 项目构建

使用原生命令来构建项目 为什么要学习为什么要学习要使用原生命令来构建项目 学习使用原生命令来构建项目可以帮助你深入了解 Java 编译和构建过程的底层机制,以及如何手动管理 Java 项目的依赖关系。这对于理解和解决复杂的构建问题非常有用,可以提高你的开发效率和项目管理能力。 此外,有时候你可能需要在没有 Maven 或 Gradle 等构建工具的情况下构建和部署 Java 项目。在这种情况下,了解如何使用原生命令来编译和构建 Ja

端口| 操作系统端口被占用

我是短小精悍的文章摘要(๑•̀ㅂ•́) ✧ 流程都是两步 找到进程对应的 PID 通过进程的 PID 杀掉进程 下面介绍在不同的操作系统上如何操作 Window1netstat -aon | findstr "5446" 查找进程对应的 PID在 Windows 中,我们可以使用 netstat 命令找到占用端口的进程的 PID PS:值得注意的是,Window 的 netstat 命令和 Linux

前端 | 登录重定向的需求记录

我是短小精悍的文章摘要(๑•̀ㅂ•́) ✧ 实现下面的需求 未登录访问没有权限访问的页面,重定向到登录页面后,出现一个弹窗告诉用户 :”请先完成登录“, 登录验证、重定向不是什么问题。关键是 ”弹窗“ PS: 思考最初是想要在前端获取 http 的状态码 抱着试试的想法,查询了一下,应该是不可以了(至少我没有找到) 查询前,也认为是做不到的,至少在前端是做不到的 最后,在另外一个地方,找到了一个思路,解决了我的问题 解决123不过

JavaScript | 匿名自执行函数

我是短小精悍的文章摘要(๑•̀ㅂ•́) ✧ 0. 什么是匿名自执行函数匿名自执行函数,也称为 立刻执行函数。 其实,就是一个函数,这个函数没有函数名,具有函数的一些特性:作用域,返回值,局部变量等等特性 顾名思义,就是只执行一个函数 1. 为什么需要匿名自执行函数函数的存在就是一方面是为了复用,同时,完成一个特定的任务,任务完成后,涉及到的变量所使用的内存被释放 存在这么一种需求: 在一个函数中,函数中涉及的变

JavaScript | 循环中查询数据库异步执行的问题

我是短小精悍的文章摘要(๑•̀ㅂ•́) ✧ 下面以 微信小程序 开发的代码为例 问题描述在微信小程序云开发中,如果需要循环一个数组,并在每一次循环中执行一次数据库操作,会出现异步执行的问题。 相关代码如下: 控制台输出如下: 解决思路定义一个函数,函数有一个参数,在每一次循环中,调用这个函数,并把循环的 i 作为参数传入进去 函数只在同一个地方调用,因此我这里使用了一个自执行匿名函数,来完成功能模块 程序运行输出如

C | gcc 编译过程

我是短小精悍的文章摘要(๑•̀ㅂ•́) ✧ 下面将通过一个简单的 “Hello World” C 代码演示C编译的过程 123456#include<stdio.h>int main(int argc, char const *argv[]){ printf("Hello World!"); return 0;} C C 代码的编程分为四步: 预处理 编译 汇编 链

filter | Java filter 统计 http 信息

我是短小精悍的文章摘要(๑•̀ㅂ•́) ✧ 在这里,我们来编写一个过滤器,来打印 http 请求的相关信息 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081/** * descr

Bootstrap | row 类 设置背景颜色失败

我是短小精悍的文章摘要(๑•̀ㅂ•́) ✧ 在写一个前端界面时,引入了 bootstrap 库。需要修改一个带有 row 类的 div 标签的背景颜色。 按照常规的设置失败,在查询了一些资料后,最后才注意到自己的问题 下面分享一下,自己对应这个问题的历程 1. 最开始的设计 一开始我没有注意是 bootstrap 库影响到了 CSS3 属性的设置。后面删除了引入的 bootstrap 库后,背景颜色正确的显示出来,我才意识到是 bo

Ubuntu20.04 | 重装系统后要做的几件事情

Ubuntu20.04 | 重装系统后要做的几件事情 (๑•̀ㅂ•́) ✧ 2021-06-11 号 ,我把自己的 笔记本电脑 重装了系统,重新安装了一些软件,简单的记录一下过程, 下一次重装系统时,再装软件会快一下。 这里就 Ubuntu20.04 进行配置 ssh更换 Ubuntu 默认的 apt 源 1sudo apt install ssh 一个安全的远程终端协议 值得注意的是: 这么一个常用的工具,在几乎所有的 Linu

java | 基于java原生命令创建第一个WebApp

使用原生命令来构建第一个 Web App 前言环境为什么为什么要使用原生命令来构建第一个 Web App 使用 IDE 来创建 Web 应用程序是一个非常方便的方法,它可以帮助开发人员更快速、更高效地开发应用程序。但是,了解如何使用 Java 原生命令来构建 Web 应用程序也是非常重要的。这是因为在某些情况下,你可能需要在没有 IDE 的情况下进行开发,或者你可能需要对构建过程进行更精细的控制和定制。此外,了解如何使用原生命

Frp 简单使用 | 实现内网穿透

我是短小精悍的文章摘要(๑•̀ㅂ•́) ✧ 1. 为什么要使用frp内网穿透我有一台计算机位于一个很复杂的局域网中,ip地址不是公网的IP地址,是使用了NAT转换的内网的IP地址 ,目前来看其所处的网络环境很难通过简单的端口映射将其暴露在公网之中 我需要访问到在内网主机的服务。如 ssh 服务、http 服务等服务。 2. frp是什么frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, htt

Linux | APT 命令详解

(๑•̀ㅂ•́) ✧ APT 命令详解 简介apt-get 命令适用于 deb 包管理式的 Linux 操作系统(Debian、Ubuntu等),主要用于自动从互联网软件仓库中搜索、下载、安装、升级、卸载软件或操作系统。 高级打包工具(英语:Advanced Packaging Tools,缩写为APT)是Debian及其派生的Linux软件包管理器。APT可以自动下载,配置,安装二进制或者源代码格式的软件包,因此简化了Unix系

servlet | web.xml 配置文件 全部标签

servlet | web.xml 配置文件 全部标签 servlet servlet 表明是对一个 servlet 进行配置 注:只是配置 简单serlvet (三种servlet中的一种) servlet-name 为一个“名字“,唯一标识这个serlvet。在一个web.xml文件中,这个”名字“是唯一的。在后面做映射mapping等等会使用到 servlet-class 是指明这个serlvet的class文件对应

算法 | -水仙花数代码优化

算法 | -水仙花数代码优化 水仙花数字(Narcissistic number)是指一个 n 位数(n ≥ 1),其各位数字的 n 次幂之和等于该数本身。例如,当 n = 3 时,153 是一个水仙花数字,因为 1³ + 5³ + 3³ = 153。 下面就对一个水仙花数的 Python 以下是一个简单使用 Python 实现的代码: 1234567891011121314151617181

HelloWorld

(๑•̀ㅂ•́) ✧ HelloWorld C12345#include<stdio.h>int main(void){ printf("Hello World\n"); return 0;} Java1234567public class HelloWorld{ public static void main(String[] args)&#12