jakarta EE学习笔记-个人笔记
@WebServlet注解:声明一个类为Servlet
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface WebServlet {// 指定Servlet的影子String name() default ""; // 匹配地址映射(URL)String[] value() default {};// 指定URL匹配模式或匹配地址映射,不能与value属性一起用String[] urlPatterns() default {};// 指定Servlet加载顺序,默认为第一次请求时加载int loadOnStartup() default -1;// 指定一组Servlet初始参数WebInitParam[] initParams() default {};// 指定是否支持异步操作boolean asyncSupported() default false;// 小型图标资源,使用频率低String smallIcon() default "";// 大型图标资源,使用频率低String largeIcon() default "";// 指定Servlet的描述信息String description() default "";// 指定Servlet的显示名String displayName() default "";
}
HttpServletRequest获取查询参数的方法
方法名 | 返回值类型 | 适用场景 |
---|---|---|
getParameter(String) | String | 获取单值参数 |
getParameterValues(String) | String[] | 获取多值参数 |
getParameterMap() | Map<String, String[]> | 获取所有参数 |
getParameterNames() | Enumeration<String> | 获取所有参数名 |
getQueryString() | String | 获取 URL 查询字符串 |
getInputStream() | ServletInputStream | 获取请求体的二进制数据 |
getReader() | BufferedReader | 获取请求体的文本数据 |
getParts() | Collection<Part> | 获取文件上传的所有部分 |
getPart(String) | Part | 获取文件上传的指定部分 |
HttpServletRequest获取请求体的方法
方法名 | 返回值 | 使用场景(请求体类型) |
---|---|---|
getParameter(String name) | String | 适用于请求体为 application/x-www-form-urlencoded 格式的表单数据,用于获取单个参数的值。例如 HTML 表单提交数据时,通过该方法根据参数名获取对应的值。 |
getParameterValues(String name) | String[] | 同样用于 application/x-www-form-urlencoded 格式的表单数据,当一个参数名对应多个值(如复选框)时,使用此方法获取该参数的所有值。 |
getParameterMap() | Map<String, String[]> | 用于 application/x-www-form-urlencoded 格式的表单数据,获取请求中所有参数名和对应值数组的映射,可遍历该映射获取所有参数信息。 |
getInputStream() | ServletInputStream | <ul><li>请求体为二进制数据,如 application/octet-stream 格式,用于文件上传、发送二进制文件等场景。</li><li>请求体为自定义二进制协议数据,可通过输入流读取原始字节数据进行解析。</li><li>请求体为 application/json 、application/xml 等格式,但希望以字节流形式处理数据时也可使用。</li></ul> |
getReader() | BufferedReader | 适用于请求体为文本格式的场景,如 application/json 、application/xml 、text/plain 等,可方便地逐行读取文本数据进行解析。 |
HttpServletResponse常用响应报头及其设置方法
响应报头名 | 设置方法 | 说明 | 枚举值 |
---|---|---|---|
Content-Type | setContentType(String type) | 指定响应内容的 MIME 类型,告诉客户端如何解析响应数据。例如,设置为 text/html 表示响应内容是 HTML 格式,application/json 表示是 JSON 格式。 | 常见的 MIME 类型,如 text/plain 、image/jpeg 、application/pdf 等 |
Content-Length | setContentLength(int len) setContentLengthLong(long len) | 指定响应内容的长度(字节数)。客户端可以根据这个长度来判断数据是否接收完整。setContentLength 用于设置 int 类型的长度,setContentLengthLong 用于设置 long 类型的长度,适用于大文件传输等场景。 | 无 |
Content-Disposition | setHeader("Content-Disposition", String disposition) | 用于指示如何处理响应内容,通常用于文件下载。可以设置为 attachment; filename="example.pdf" 表示提示客户端下载文件,并指定文件名。 | <ul><li>inline :表示在浏览器中直接显示内容。</li><li>attachment :表示提示客户端下载内容。</li></ul> |
Cache-Control | setHeader("Cache-Control", String cacheControl) | 控制缓存策略,指示客户端和中间缓存如何缓存响应。可以设置多个指令,用逗号分隔。 | <ul><li>no-cache :不使用缓存,每次请求都要重新验证。</li><li>no-store :不允许缓存响应。</li><li>max-age=3600 :缓存的最长时间(秒)。</li></ul> |
Expires | setDateHeader("Expires", long date) | 指定响应的过期时间,是一个绝对时间(从 1970 年 1 月 1 日开始的毫秒数)。如果当前时间超过该时间,客户端会重新请求数据。 | 无 |
ETag | setHeader("ETag", String etag) | 实体标签,用于标识资源的版本。客户端可以在后续请求中通过 If-None-Match 请求头携带该标签,服务器根据标签判断资源是否有更新。 | 无 |
Location | setHeader("Location", String location) | 通常用于重定向,指定重定向的目标 URL。当状态码为 3xx 时,客户端会根据该头信息跳转到指定的 URL。 | 无 |
Set-Cookie | addCookie(Cookie cookie) | 用于在客户端设置 cookie。Cookie 对象包含名称、值、路径、过期时间等信息。 | 无 |
Access-Control-Allow-Origin | setHeader("Access-Control-Allow-Origin", String origin) | 用于跨域资源共享(CORS),指定允许访问该资源的源。可以设置为具体的域名,也可以设置为 * 表示允许所有源访问。 | 具体的域名或 * |
Access-Control-Allow-Methods | setHeader("Access-Control-Allow-Methods", String methods) | 在 CORS 中,指定允许的 HTTP 请求方法,多个方法用逗号分隔。 | 如 GET 、POST 、PUT 、DELETE 等 |
Access-Control-Allow-Headers | setHeader("Access-Control-Allow-Headers", String headers) | 在 CORS 中,指定允许的请求头,多个头用逗号分隔。 | 如 Content-Type 、Authorization 等 |
HttpServletResponse响应
类别 | 方法签名 | 方法说明 | |
---|---|---|---|
响应状态码 | void setStatus(int sc) | 设置 HTTP 响应状态码,可设置任意合法的 HTTP 状态码,适用于设置成功状态码或自定义状态码场景 | |
void sendError(int sc) | 发送错误状态码,并提供默认错误页面给客户端,用于向客户端反馈错误情况 | ||
void sendError(int sc, String msg) | 发送错误状态码,同时可以自定义错误消息显示在错误页面中 | ||
void sendRedirect(String location) | 发送 302 重定向状态码,将客户端重定向到指定的 URL | ||
响应头设置 | void setHeader(String name, String value) | 设置响应头,若响应头已存在则覆盖原有的值 | |
void addHeader(String name, String value) | 添加响应头,允许同一个响应头有多个值 | ||
void setIntHeader(String name, int value) | 设置整数值的响应头,常用于设置如 Content-Length 等需要整数的头信息 | ||
void addIntHeader(String name, int value) | 添加整数值的响应头,可添加多个相同名称的整数头 | ||
void setDateHeader(String name, long date) | 设置日期值的响应头,日期以从 1970 年 1 月 1 日开始的毫秒数表示,如设置 Expires 头 | ||
void addDateHeader(String name, long date) | 添加日期值的响应头,可添加多个相同名称的日期头 | ||
void setContentType(String type) | 设置响应内容的 MIME 类型,告知客户端如何解析响应数据 | ||
void setCharacterEncoding(String charset) | 设置响应的字符编码,防止中文等字符显示乱码 | ||
void setContentLength(int len) | 设置响应内容的长度(字节数),适用于小文件或内容长度在 int 范围内的情况 | ||
void setContentLengthLong(long len) | 设置响应内容的长度(字节数),支持更大的文件或内容长度 | ||
响应体输出 | PrintWriter getWriter() throws IOException | 获取一个 PrintWriter 对象,用于输出字符数据,适合输出文本格式内容,如 HTML、JSON 等 | |
ServletOutputStream getOutputStream() throws IOException | 获取一个 ServletOutputStream 对象,用于输出二进制数据,如图片、文件等 | ||
Cookie 设置 | void addCookie(Cookie cookie) | 向响应中添加一个 Cookie 对象,用于在客户端存储信息 |
常见的状态码及含义
状态码 | 含义 |
---|---|
200 | 成功,表示请求已成功处理 |
201 | 已创建,表示请求已成功并创建了新资源 |
204 | 无内容,表示请求已成功但无返回内容 |
301 | 永久重定向,表示请求的资源已被永久移动到新位置 |
302 | 临时重定向,表示请求的资源暂时移动到新位置 |
304 | 未修改,表示资源未被修改,可以使用缓存的版本 |
400 | 错误的请求,表示请求无效,服务器无法理解 |
401 | 未授权,表示请求未经授权,用户需要登录 |
403 | 禁止,表示服务器理解请求但拒绝执行 |
404 | 未找到,表示请求的资源不存在 |
405 | 方法不被允许,表示请求方法不被允许 |
408 | 请求超时,表示请求超出了服务器的处理时间 |
500 | 服务器内部错误,表示服务器遇到意外错误,无法完成请求 |
501 | 尚未实施,表示服务器不支持请求的方法 |
502 | 错误网关,表示作为网关或代理的服务器收到无效响应 |
503 | 服务不可用,表示服务器当前无法处理请求 |
504 | 网关超时,表示作为网关或代理的服务器未能及时从上游服务器获得响应 |
笔记还在更新。。。
相关文章:
jakarta EE学习笔记-个人笔记
WebServlet注解:声明一个类为Servlet Target({ElementType.TYPE}) Retention(RetentionPolicy.RUNTIME) Documented public interface WebServlet {// 指定Servlet的影子String name() default ""; // 匹配地址映射(URL)String[] value() default {};// …...
TCP服务器与客户端搭建
一、思维导图 二、给代码添加链表 【server.c】 #include <stdio.h> #include <sys/socket.h> #include <sys/types.h> #include <fcntl.h> #include <arpa/inet.h> #include <unistd.h> #include <stdlib.h> #include <string.…...
回退 android studio emulator 的版本
前情提要 最近用 frida 需要一个完全跑 arm64 的手机 os,因为雷电实时转义 arm 到 x64 的方案本质上还是 x64,会导致 frida 有 bug。查了一下有帖子说 android studio 自带的模拟器支持直接跑 arm64 的镜像 (Other Images) 直接跑跑不通,调…...
Oracle CDB自动处理表空间不足脚本
之前我曾经发过一个自动处理表空间的脚本,可以通过定时任务自动处理表空间不足的问题;但是之前那个脚本没有涵盖CDB模式下的PDB,这里将脚本做了一下更新,可以处理CDB模式下多PDB的表空间问题。 传统模式的脚本请参考这个链接 Or…...
ES6 迭代器 (`Iterator`)使用总结
Iterator(迭代器)是 ES6 引入的一种 接口,用于 顺序访问 可迭代对象(Array、Set、Map、String、arguments、自定义对象等)。 Iterator(迭代器)的作用有三个: 为各种数据结构提供一个…...
赛博算命之 ”梅花易数“ 的 “JAVA“ 实现 ——从玄学到科学的探索
hello~朋友们!好久不见! 今天给大家带来赛博算命第三期——梅花易数的java实现 赛博算命系列文章: 周易六十四卦 掐指一算——小六壬 更多优质文章:个人主页 JAVA系列:JAVA 大佬们互三哦~互三必回!…...
MongoDB开发规范
分级名称定义P0核心系统需7*24不间断运行,一旦发生不可用,会直接影响核心业务的连续性,或影响公司名誉、品牌、集团战略、营销计划等,可能会造成P0-P2级事故发生。P1次核心系统这些系统降级或不可用,会间接影响用户使用…...
让相机自己决定拍哪儿!——NeRF 三维重建的主动探索之路
我在 NeRF 中折腾自动探索式三维重建的心得 写在前面: 最近我在研究三维重建方向,深切感受到 NeRF (Neural Radiance Fields) 在学术界和工业界都备受瞩目。以往三维重建通常要依赖繁琐的多视图几何管线(比如特征匹配、深度估计、网格融合等&…...
git reset和git revert的区别
git reset和git revert都是实现撤销的命令。 git reset是通过回退提交记录来实现撤销,原来指向的记录就像没提交过一样。 git revert是用于远程分支。执行后会产生一个新提交记录,而新提交的记录跟上一级的内容是相同的。 #恢复到当前上一级记录, 其中 …...
免费windows pdf编辑工具Epdf
Epdf(完全免费) 作者:不染心 时间:2025/2/6 Github: https://github.com/dog-tired/Epdf Epdf Epdf 是一款使用 Rust 编写的 PDF 编辑器,目前仍在开发中。它提供了一系列实用的命令行选项,方便用户对 PDF …...
11.PPT:世界动物日【25】
目录 NO12 NO34 NO56 NO789视频音频 NO10/11/12 NO12 设计→幻灯片大小→ →全屏显示(16:9)确定调整标题占位符置于图片右侧:内容占位符与标题占位符左对齐单击右键“世界动物日1”→复制版式→大小→对齐 幻灯片大小…...
计算机网络的组成,功能
目录 编辑 什么是计算机网络? 一个最简单的计算机网络 集线器(Hub): 交换机(Switch) 路由器(router) 互联网 计算机网络的组成:从组成部分看 硬件 软件 协议…...
LabVIEW铅酸蓄电池测试系统
本文介绍了基于LabVIEW的通用飞机铅酸蓄电池测试系统的设计与实现。系统通过模块化设计,利用多点传感器采集与高效的数据处理技术,显著提高了蓄电池测试的准确性和效率。 项目背景 随着通用航空的快速发展,对飞机铅酸蓄电池的测试需求也…...
Vue3+codemirror6实现公式(规则)编辑器
实现截图 实现/带实现功能 插入标签 插入公式 提示补全 公式验证 公式计算 需要的依赖 "codemirror/autocomplete": "^6.18.4","codemirror/lang-javascript": "^6.2.2","codemirror/state": "^6.5.2","cod…...
Mac M1 ComfyUI 中 AnyText插件安装问题汇总?
Q1:NameError: name ‘PreTrainedTokenizer’ is not defined ? 该项目最近更新日期为2024年12月,该时间段的transformers 版本由PyPI 上的 transformers 页面 可知为4.47.1. A1: transformers 版本不满足要求,必须降级transformors &#…...
Github 2025-02-01 开源项目月报 Top20
根据Github Trendings的统计,本月(2025-02-01统计)共有20个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目8TypeScript项目3Jupyter Notebook项目2Rust项目2HTML项目2C++项目1Ruby项目1JavaScript项目1Svelte项目1非开发语言项目1Go项目1Oll…...
k8s部署go-fastdfs
前置环境:已部署k8s集群,ip地址为 192.168.10.1~192.168.10.5,总共5台机器。 1. 创建provisioner制备器(如果已存在,则不需要) 制备器的具体部署方式可参考我的上一篇文章: k8s部署rabbitmq-CSDN博客文章浏览阅读254次,点赞3次,收藏5次。k8s部署rabbitmqhttps://blo…...
快速优雅解决webview_flutter不能Safari调试的问题
这个问题,网上一搜,又是让你去检索WKWebView,找到FWFWebViewHostApi.m文件,然后再改 iOS 的代码, 加一行 self.inspectable YES; 我们开发Flutter项目,尽量还是不要去改插件里的代码,好了不费…...
Linux——基础命令1
$:普通用户 #:超级用户 cd 切换目录 cd 目录 (进入目录) cd ../ (返回上一级目录) cd ~ (切换到当前用户的家目录) cd - (返回上次目录) pwd 输出当前目录…...
区块链技术:Facebook 重塑社交媒体信任的新篇章
在这个信息爆炸的时代,社交媒体已经成为我们生活中不可或缺的一部分。然而,随着社交平台的快速发展,隐私泄露、数据滥用和虚假信息等问题也日益凸显。这些问题的核心在于传统社交媒体依赖于中心化服务器存储和管理用户数据,这种模…...
268. 丢失的数字
文章目录 1.题目2.思路3.代码 1.题目 268. 丢失的数字 给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。 示例 1: **输入:**nums [3,0,1] **输出:**2 解释:n 3&a…...
机器学习-关于线性回归的表示方式和矩阵的基本运算规则
最近在学习机器学习的过程中,发现关于线性回归的表示和矩阵的运算容易费解,而且随着学习的深入容易搞混,因此特意做了一些研究,并且记录下来和大家分享。 一、线性模型有哪些表示方式? 器学习中,线性模型…...
el-table表格点击单元格实现编辑
使用 el-table 和 el-table-column 创建表格。在单元格的默认插槽中,使用 div 显示文本内容,单击时触发编辑功能。使用 el-input 组件在单元格中显示编辑框。data() 方法中定义了 tableData,tabClickIndex: null,tabClickLabel: ,用于判断是否…...
10分钟带你了解前端Vue Router
作者:CSDN-PleaSure乐事 欢迎大家阅读我的博客 希望大家喜欢 使用环境:WebStorm 目录 一、Vue Router 的基本概念 1.1 什么是 Vue Router? 1.2 Vue Router 的核心功能 二、Vue Router 的原理 2.1 路由模式 2.1.1 Hash 模式 2.1.2 Histo…...
maven如何分析指定jar包的依赖路径
在Maven项目中,分析指定JAR包的依赖路径是非常有用的,尤其是在解决依赖冲突时。Maven提供了一个命令行工具来帮助查看特定依赖的传递性依赖(即依赖路径)。以下是具体步骤: 使用 mvn dependency:tree 命令 打开命令行或…...
react的antd中Cascader级联选择如何回显
如果你的数据都是这个样子的 {"id": 1015,"pid": 0,"name": "电力、热力、燃气及水生产和供应业","children": [{"id": 1403,"pid": 1015,"name": "热力",},{"id": 140…...
工业物联网平台-视频识别视频报警新功能正式上线
前言 视频监控作为中服云工业物联网平台4.0的功能已经上线运行。已为客户服务2年有余,为客户提供多路视频、实时在线监视和控制能力。服务客户实时发现现场、产线、设备出现随机故障、事故等,及时到场处理维修。 视频识别&视频报警新功能当前正式上…...
【HarmonyOS NEXT】systemDateTime 时间戳转换为时间格式 Date,DateTimeFormat
【HarmonyOS NEXT】systemDateTime 时间戳转换为时间格式 Date,DateTimeFormat 一、前言 在鸿蒙应用开发中,经常需要将时间戳转化为标准时间格式。即:一串数字转化为年月日时分秒。 时间戳通常是一个长整型的数字,如 163041600…...
React 设计模式:实用指南
React 提供了众多出色的特性以及丰富的设计模式,用于简化开发流程。开发者能够借助 React 组件设计模式,降低开发时间以及编码的工作量。此外,这些模式让 React 开发者能够构建出成果更显著、性能更优越的各类应用程序。 本文将会为您介绍五…...
在rtthread中,scons构建时,它是怎么知道是从rtconfig.h找宏定义,而不是从其他头文件找?
在rtthread源码中,每一个bsp芯片板级目录下都有一个 SConstruct scons构建脚本的入口, 在这里把rtthread tools/目录下的所有模块都添加到了系统路径中: 在tools下所有模块中,最重要的是building.py模块,在此脚本里面…...
寒假2.6--SQL注入之布尔盲注
知识点 原理:通过发送不同的SQL查询来观察应用程序的响应,进而判断查询的真假,并逐步推断出有用的信息 适用情况:一个界面存在注入,但是没有显示位,没有SQL语句执行错误信息,通常用于在无法直接…...
嵌入式面试题 C/C++常见面试题整理_7
一.什么函数不能声明为虚函数? 常见的不能声明为虚函数的有:普通函数(非成员函数):静态成员函数;内联成员函数;构造函数;友元函数。 1.为什么C不支持普通函数为虚函数?普通函数(非成员函数)只能被overload,不能被override,声明为虚函数也没有什么意思…...
说一下 Tcp 粘包是怎么产生的?
TCP 粘包是什么? TCP 粘包(TCP Packet Merging) 是指多个小的数据包在 TCP 传输过程中被合并在一起,接收方读取时无法正确分辨数据边界,导致数据解析错误。 TCP 是流式协议,没有数据包的概念,…...
基于STM32设计的仓库环境监测与预警系统
目录 项目开发背景设计实现的功能项目硬件模块组成设计思路系统功能总结使用的模块的技术详情介绍总结 1. 项目开发背景 随着工业化和现代化的进程,尤其是在制造业、食品业、医药业等行业,仓库环境的监控和管理成为了至关重要的一环。尤其是在存储易腐…...
在uniapp中修改打包路径
在uniapp中修改打包路径,主要涉及到对manifest.json文件的编辑。以下是详细的步骤: 1. 确定当前uniapp项目的打包配置位置 uniapp项目的打包配置通常位于项目的根目录下的manifest.json文件中。这个文件包含了项目的全局配置信息,包括应用的…...
Kali Linux 渗透测试环境配置(Metasploit + Burp Suite)
一、Kali Linux 系统准备 首先,确保你已经成功安装了 Kali Linux 系统。可以从官方网站下载镜像文件,并通过 U 盘引导安装等常规方式完成系统部署。建议使用最新稳定版本,以获取最新的软件包支持和安全更新。 安装完成后,登录系…...
Oracle 变更redo log文件位置
更改Oracle数据库的Redo log文件位置,可以按照以下步骤操作。 1.查询当前Redo log文件信息 select * from v$log; select * from v$logfile;通过查询结果可知Redo log文件放在/oradata/redofile 目录下。 2.拷贝redo log文件到新的位置/Data/redolog $cd /orada…...
力扣题库第495题目解析
文章目录 1.题目再现2.思路分析&&示例说明2.1第一个示例2.2第二个示例 3.代码解释 1.题目再现 这个题目的名字叫做提莫攻击,如果是玩游戏的小伙伴对于这个场景就很熟悉了; 这个实际上是说:已知的条件会给我们一个数组,在…...
Milvus 存储设计揭秘:从数据写入到 Segment 管理的全链路解析
作为一款云原生向量数据库,Milvus 的高效查询性能有赖于其独特的存储架构设计。然而,在实际使用过程中,许多社区用户常常会遇到以下问题: 为什么频繁调用 flush 后,查询速度会变慢? 数据删除后,…...
单片机通讯中的时序图:初学者的入门指南
一、什么是时序图? 在单片机的世界里,时序图是一种非常重要的工具,它用于描述信号在时间上的变化规律。简单来说,时序图就像是信号的“时间线”,它展示了各个信号线在不同时间点上的电平状态。通过时序图,我…...
ASP.NET Core JWT
目录 Session的缺点 JWT(Json Web Token) 优点: 登录流程 JWT的基本使用 生成JWT 解码JWT 用JwtSecurityTokenHandler对JWT解码 注意 Session的缺点 对于分布式集群环境,Session数据保存在服务器内存中就不合适了&#…...
Linux基础命令之Nginx中的rewrite功能(重新)
一、什么是Rewrite Rewrite也称URL Rewrite,即URL重写,就是把传入Web的请求重定向到其他URL的过程。 1. URL Rewrite最常见的应用是URL伪静态化,是将动态页面显示为静态页面方式的一种技术。比如http://www.123.com/news/index.php?id123 使…...
4 前端前置技术(上):AJAX技术、Axios技术(前端发送请求)
文章目录 前言一、Ajax技术(从服务端获取数据,发送各种请求)0 接口文档管理:使用apipost等接口测试软件创建接口便于前端后端分离测试1 基本概念2 原生Ajax使用示例(几年前的早期用法) 二、 Axios技术(对原…...
三星手机为何不大力扩展中国市场?
三星在中国市场的手机销量长期低迷,主要原因可以归结为以下几点,这也解释了为什么三星可能没有大力扩展中国市场的计划: 1. 市场竞争激烈 中国市场已经被华为、OPPO、vivo、小米和苹果等品牌牢牢占据,这些品牌在产品设计、本地化…...
Linux在x86环境下制作ARM镜像包
在x86环境下制作ARM镜像包(如qemu.docker),可以通过QEMU和Docker的结合来实现。以下是详细的步骤: 安装QEMU-user-static QEMU-user-static是一个静态编译的QEMU二进制文件,用于在非目标架构上运行目标架构的二进制文…...
【算法篇】贪心算法
目录 贪心算法 贪心算法实际应用 一,零钱找回问题 二,活动选择问题 三,分数背包问题 将数组和减半的最小操作次数 最大数 贪心算法 贪心算法,是一种在每一步选择中都采取当前状态下的最优策略,期望得到全局最优…...
硬件电路基础
目录 1. 电学基础 1.1 原子 1.2 电压 1.3 电流 1.电流方向: 正极->负极,正电荷定向移动方向为电流方向,与电子定向移动方向相反。 2.电荷(这里表示负电荷)运动方向: 与电流方向相反 1.4 测电压的时候 2. 地线…...
iOS 音频录制、播放与格式转换
iOS 音频录制、播放与格式转换:基于 AVFoundation 和 FFmpegKit 的实现 在 iOS 开发中,音频处理是一个非常常见的需求,比如录音、播放音频、音频格式转换等。本文将详细解读一段基于 AVFoundation 和 FFmpegKit 的代码,展示如何实现音频录制、播放以及 PCM 和 AAC 格式之间…...
探索前端框架的未来:Svelte 的崛起
引言 在前端开发的世界里,框架更新换代的速度仿佛光速。从 jQuery 到 Angular,再到如今大热的 React 和 Vue,开发者们不断追逐更轻量、更快、更易于维护的框架。如今,Svelte 正悄然崛起,并引发了关于前端框架未来的热烈…...
Gitea+Gridea 创建个人博客
历史文档存档,该方法目前已经无法使用,部署方法可供参考 Gitea部分 1.关于Gitea Gitea 是一个面向开源及私有软件项目的托管平台,是全球最大的代码托管平台之一。它采用 Git 分布式版本控制系统,为开发者提供了代码托管、版本控…...