自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

个人开发经验记事本在此!穿梭于代码世界,积累下满满实战心得。于我而言,开发不仅是技术的打磨,更是经验的沉淀。

每一篇文章都是我在开发旅程中的深刻感悟,从项目攻坚到技术突破,从代码优化到问题解决。

  • 博客(38)
  • 收藏
  • 关注

原创 验证码(四)快速使用图片选择验证码.

图片选择验证码是一种通过展示一组图片,要求用户根据提示选择符合特定条件图片的验证方式。其优点在于趣味性强,能够提升用户体验,同时由于需要用户具备图像识别能力,安全性较高。然而,图片加载问题可能导致验证效率降低,且提示信息不明确时可能引发理解歧义,导致验证失败。本文还提供了HTML、CSS和JavaScript代码示例,展示了如何实现图片选择验证码的前端界面,并通过Ajax请求获取验证码数据及验证用户选择。

2025-05-12 09:30:38 222

原创 验证码(三)快速使用滑块验证码.

滑块验证码是一种常见的图形化验证方式,用户通过拖动滑块到指定位置来完成验证。其优点包括视觉效果直观、安全性较高,能够有效防范自动化攻击。然而,滑块验证码也存在一些缺点,如对网络环境要求较高,加载速度可能影响用户体验,且高级黑客技术仍可能绕过验证。本文还提供了一个HTML和JavaScript实现的滑块验证码示例,展示了如何通过前端代码实现滑块验证功能,并通过后端Java代码进行验证。整体上,滑块验证码在提升用户体验和安全性方面具有显著优势,但也需注意其潜在的局限性。

2025-05-12 09:19:35 450

原创 验证码(二)快速使用滑动验证码.

滑动验证码是一种通过用户滑动滑块来验证其为人类用户的安全机制。其优点包括操作便捷,用户可快速完成验证,且通过分析滑动轨迹和速度等行为特征,能有效区分人类与机器,提高安全性。然而,滑动验证码也存在兼容性问题,在某些设备或浏览器上可能不流畅或识别不准确,且用户可能因误操作而需多次尝试,影响体验。文章还提供了一个HTML代码示例,展示了如何实现滑动验证码功能,并附有相关的CSS和JavaScript代码,用于样式定义和验证逻辑处理。

2025-05-10 10:16:22 278

原创 验证码(一)快速使用文本验证码.

文本验证码是一种常见的用户验证机制,要求用户识别并输入图片中显示的随机字符或数字组合,以区分人类用户和自动化程序。其优点包括实现简单、兼容性好,适用于各种设备和浏览器。然而,文本验证码也存在一些缺点,如易被破解,尤其是随着图像识别技术的进步,简单的验证码可能被自动化程序轻易识别。此外,对于视力不佳或有阅读障碍的用户,识别扭曲或模糊的字符可能带来困难,影响用户体验。技术上,文本验证码的实现涉及前端HTML、CSS和JavaScript的编写,以及后端Java代码的生成和验证逻辑。通过结合这些技术,可以有效地部

2025-05-10 10:11:51 558

原创 使用 Apache POI 生成包含文本和图片的 Word 文档

在实际开发场景中,我们经常需要自动生成包含文本和图片的 Word 文档。本示例借助 Apache POI 库,实现了向 Word 文档中插入文本和图片的功能。代码会循环插入多次文本和同一张图片,并且对图片进行等比缩放处理,以保证图片在文档中合理显示。

2025-05-07 16:00:54 1501

原创 图片转文字-Tesseract-OCR,完成文字转换。

通过对 Tesseract OCR 在 Java 中的应用及识别准确性优化的实践,我们发现 OCR 识别准确性受到多种因素的影响,包括图像预处理、Tesseract 配置等。在实际应用中,需要根据具体情况不断调整和优化,以达到更好的识别效果。同时,对于遇到的错误要及时排查和解决,确保 OCR 功能的正常运行。

2025-05-07 15:39:20 1016

原创 加密算法(五)-流加密算法(RC4)一篇了解所有主流流加密算法,轻松上手使用。

研究人员发现,通过对 RC4 加密的密文进行分析,可以找到一些规律,从而破解出部分密钥信息,导致加密数据的泄露。因此,在现代的安全应用中,RC4 已经不再被推荐使用。1.实现简单:RC4 算法的结构较为简单,代码实现相对容易,这使得它在早期被广泛应用于各种软件和协议中,例如在 SSL/TLS 协议的早期版本中就曾使用过 RC4 算法。2.加密速度快:由于其算法设计的特点,RC4 在加密过程中不需要进行复杂的块处理,能够以字节为单位进行加密,因此加密和解密速度非常快,在处理大数据流时表现出较高的效率。

2025-05-06 09:33:56 317 3

原创 加密算法(四)-消息认证码算法(HMAC、CMAC)一篇了解所有主流消息认证码算法,轻松上手使用。

1.依赖哈希函数的安全性:HMAC 的安全性依赖于所使用的哈希函数的安全性。3.与加密算法集成性好:由于 CMAC 基于对称加密算法,它可以很方便地与对称加密算法集成,在加密数据的同时进行消息认证,提高系统的安全性和效率。2.算法复杂度相对较高:与一些简单的哈希算法相比,CMAC 基于对称加密算法,其算法复杂度相对较高,实现起来可能需要更多的代码和资源。2.高效性:CMAC 的计算效率较高,尤其是在处理大数据块时,比一些基于哈希函数的消息认证码算法(如 HMAC)具有更好的性能表现。

2025-05-06 09:29:36 800

原创 加密算法(三)-哈希算法(MD5、SHA、SHA-3、RIPEMD)一篇了解所有主流哈希算法,轻松上手使用。

SHA - 3 提供了不同的哈希长度,如 SHA3 - 224、SHA3 - 256、SHA3 - 384 和 SHA3 - 512,能够有效抵御各种已知的攻击,具有更好的安全性。1.安全性较高:SHA - 2 系列算法在设计上考虑了更多的安全因素,目前被广泛认为是安全可靠的哈希算法,尤其是 SHA - 256 和 SHA - 512 在很多安全场景中得到了大量应用。2.计算开销相对较大:相比于 MD5,SHA 系列算法的计算复杂度更高,尤其是 SHA - 512 等长哈希值的算法,计算速度会相对较慢。

2025-05-05 12:11:34 1170

原创 加密算法(二)-非对称加密(RSA、ECC、DSA)一篇了解所有主流非对称加密,轻松上手使用。

1.高安全性与短密钥:在相同的安全级别下,ECC 所需的密钥长度比 RSA 短很多,例如 256 位的 ECC 密钥与 3072 位的 RSA 密钥具有相当的安全性,这减少了密钥存储和传输的开销。基于椭圆曲线数学原理的非对称加密算法,在相同的安全级别下,ECC 所需的密钥长度比 RSA 更短,因此具有更高的效率和更小的密钥存储空间。2.密钥长度要求长:为了达到较高的安全性,需要使用较长的密钥,例如 2048 位甚至更长,这会增加密钥管理的难度和存储成本。应用极为广泛的非对称加密算法,可用于加密和数字签名。

2025-05-05 12:02:36 1076

原创 加密算法(一)-对称加密(DES、AES、3DES、Blowfish、Twofish)一篇了解所有主流对称加密,轻松上手使用。

 对称加密算法采用相同的密钥来进行加密和解密操作。其优点是加密和解密速度快,不过密钥的管理和分发存在一定的安全风险。

2025-05-01 20:34:25 964

原创 POI从入门到上手(三)-轻松完成EasyExcel使用,完成Excel导入导出.

 EasyExcel 是阿里巴巴开源的一个基于 Java 的简单、省内存的读写 Excel 工具。在处理大文件时,它能极大地减少内存占用,并且使用起来相对简单。

2025-05-01 20:06:47 2464

原创 POI从入门到上手(二)-轻松完成EasyPOI使用,完成Excel导入导出.

提供了简洁的 API 和丰富的注解,通过在 Java 对象的字段上添加注解,如 @Excel、@ExcelCollection 等,即可实现数据与 Excel 单元格之间的映射,大大减少了代码量,即使不熟悉 Apache POI 的开发人员也能快速上手。不仅能读写 Excel,还可以生成动态 Word 模板,只需定义好模板,然后填充数据即可生成对应的 Word 报告,适合报表生成场景。支持大数据量的 Excel 批量读写,并且能在后台线程中异步执行文件操作,不阻塞主线程,极大地提高了性能。

2025-04-25 09:06:42 1092

原创 POI从入门到上手(一)-轻松完成Apache POI使用,完成Excel导入导出.

SXSSF 用于处理 Excel 2007 及以后的 .xlsx 文件,是 XSSF 的流式扩展。它采用流式处理,仅在内存保留指定数量的行,超出部分写入临时文件,大幅减少内存占用,适合处理超大数据量,处理大数据时性能优势明显,能避免内存溢出。不过处理小数据量时,因频繁读写临时文件,性能可能不如 HSSF 和 XSSF。它继承了 XSSF 大部分功能,但流式处理会使部分功能受限,如写入磁盘的行无法修改。处理时会将整个文档加载到内存,处理大量数据时内存占用问题严重,可能出现内存不足错误,性能受影响;

2025-04-25 08:55:54 880

原创 Redis从入门到上手-全面讲解redis使用.

Redis 雪崩的发生通常是因为大量的缓存失效导致 Redis 实例在同一时间处理大量请求,超出了 Redis 的处理能力,导致 Redis 服务出现异常,甚至挂掉。2、打开cmd,进入到刚才解压到的目录,启动临时服务:redis-server.exe redis.windows.conf(备注:通过这个命令,会创建Redis临时服务,不会在window Service列表出现Redis服务名称和状态,此窗口关闭,服务会自动关闭。缓存穿透指的是查询的数据在缓存中没有找到,并且请求会直接访问数据库。

2025-04-24 16:12:46 966

原创 SSM从入门到上手-全面讲解SSM框架的使用.

将Spring、Spring MVC和MyBatis结合在一起,形成一个高效且易于维护的Web应用程序架构。Spring负责管理所有的Java对象,包括Service层、DAO层等。通过Spring的IoC容器进行依赖注入(DI)。当用户发起请求时,Spring MVC的DispatcherServlet会接收请求,并将请求转发给相应的Controller进行处理。Controller处理完请求后,将模型数据返回给视图(JSP、Thymeleaf等)。

2025-04-24 16:04:56 1393

原创 SpringMVC从入门到上手-全面讲解SpringMVC的使用.

RequestBod用于读取请求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容转换为json、xml等格式的数据并绑定到controller方法的参数上。@ResponseBody用于将conotroller的方法返回对象,通过HttpMessageConverter接口转换为指定格式的数据如:json、xml等,通过response相应给客户端。springmvc是基于方法设计的框架,所以对应的请求url中对应的参数在方法上进行接收.

2025-04-23 17:24:20 1286

原创 JDBC从入门到上手-全面学习增删改查(CRUD).

JDBC称为Java数据库连接,它是一种用于数据库访问的应用程序API,由一组用Java语言编写的类和接口组成,有了JDBC就可以用同一的语法对多种关系数据库进行访问,而不用担心其数据库操作语言的差异。

2025-04-23 15:00:57 1012

原创 Mysql从入门到上手(二)-全面了解增删改查(CRUD).

 MySQL 中的检索数据操作是数据库操作中最常见的任务之一。使用 SQL 查询语言中的 SELECT 语句,可以从数据库中的一个或多个表中检索数据。以下是 MySQL 中与数据检索相关的各种技术和用法的详细讲解。 索引是数据库中用来加速查询操作的数据结构。它类似于书的目录,通过它可以快速定位到数据的位置,避免每次查询时都需要扫描整个表,从而提高查询效率。索引虽然能提升查询性能,但也带来了一些开销,如占用存储空间和降低写入性能。

2025-04-19 11:44:31 1110

原创 Mysql从入门到上手(一)-Mysql安装和Navicat安装及使用.

  MySQL 是一种广泛使用的开源关系型数据库管理系统(RDBMS)。现由 Oracle Corporation 维护。MySQL 使用结构化查询语言(SQL)来管理和操作数据库中的数据。由于其高性能、可靠性和易于使用的特点,MySQL 被广泛应用于各类应用程序、网站和企业级系统。

2025-04-19 11:27:30 1380

原创 MAVEN从入门到上手-对照着做,轻松使用.

Maven是Apache下的一个纯Java开发的开源项目,它包含了项目对象模型依赖管理系统(Dependency Management System)、和用来运行定义在生命周期阶段中插件(Plugin)目标的逻辑。可以通过一小段描述信息来管理项目的构建、报告、文档的软件项目管理工具。

2025-04-18 09:15:04 888

原创 java基础从入门到上手(九):Java - List、Set、Map

文章主要介绍 Java 中List、Set、Map三种集合接口及其实现类。List是有序可重复集合,常用实现类有ArrayList(随机访问快,中间插入删除慢)、LinkedList(插入删除高效,随机访问差)、Vector(线程安全但性能差)。Set不允许元素重复,不保证顺序,常见实现类HashSet(基于哈希表,无序)、LinkedHashSet(有序)、TreeSet(按序排列),可用于去重和集合运算。Map存储键值对,键唯一,常用实现类HashMap(无序高效)、LinkedHashMap(有序)

2025-04-18 08:49:43 1037

原创 java基础从入门到上手(八):Java异常处理

这些异常是程序运行时可能会发生的异常,通常是由于程序逻辑错误引起的。在 Java 中,异常(Exception)是指在程序运行过程中发生的错误或异常情况,它可以中断程序的正常执行。:这些异常是程序编译时必须处理的异常。无论 try 块中的代码是否发生异常,finally 块中的代码都会执行,用来确保文件流被正确关闭。throws 用于声明方法可能抛出的异常,这样调用该方法的代码必须处理这些异常。try 块用于包含可能抛出异常的代码,catch 块用于捕获异常并进行处理。// 可能抛出异常的代码。

2025-04-03 11:00:07 753

原创 java基础从入门到上手(七):Java包装类

Java中的包装类(Wrapper Class)是为了将基本数据类型(primitive types)封装成对象(Object),使得这些基本数据类型能够被作为对象处理。包装类提供了许多方法来操作和转换这些基本数据类型,同时也让它们能够与Java的集合类(如 ArrayList)兼容,因为集合类只能存储对象。自动装箱指的是将基本数据类型自动转换为对应的包装类,而自动拆箱则是将包装类对象自动转换为基本数据类型。Java中每个基本数据类型都有对应的包装类,这些包装类位于 java.lang 包中。

2025-04-03 10:53:13 337

原创 java基础从入门到上手(六):Java类和对象

面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它通过模拟现实世界中的对象来设计程序。每个对象由属性(数据)和方法(行为)组成。  类是面向对象编程的核心概念之一。类是创建对象的模板或蓝图,它定义了对象的属性(数据成员)和行为(方法)。一个类可以包含成员变量和成员方法,也可以有构造函数来初始化对象。 对象是类的实例。类本身不占用内存空间,只有创建了对象时,内存才会为其分配空间。每个对象都包含类中定义的属性和方法,并且可以调用类的方法来执行行为。

2025-04-02 10:07:24 996

原创 java基础从入门到上手(五):数组

数组是一种数据结构,它可以存储多个数据元素。这些元素在内存中是连续存储的,可以通过索引来访问。数组可以用来存储相同类型的数据,如整数、字符或其他数据类型。数组具有固定的大小,在创建时就决定了其长度,且长度不可更改。 二维数组是一个数组的数组,通常用来表示矩阵或表格数据。在 Java 中,二维数组可以看作是一个包含多个一维数组的数组 一旦创建并初始化了数组,就可以使用数组中的元素。我们通过数组的索引来访问元素。在 Java 中,数组的索引从 0 开始。

2025-04-02 09:57:54 1444

原创 java基础从入门到上手(四):Java字符串

String 类位于 java.lang 包中,是一个不可变(immutable)的类,这意味着一旦字符串被创建,它的内容不能被修改。String 类是不可变的,一旦创建字符串对象,字符串的值就不能改变。例如,使用 + 连接两个字符串时,实际上是创建了一个新的字符串对象,原来的字符串不变。该方法也可以用于连接字符串,但推荐使用 + 操作符,尤其是在循环中,因为 concat() 会创建一个新的字符串对象。比较的是两个对象的内存地址,通常在字符串常量池中引用相同字符串时,它们会有相同的内存地址。

2025-03-31 16:30:30 526

原创 java基础从入门到上手(三):流程控制

if 语句是 Java 中常用的控制结构之一,主要用于根据某个条件来决定是否执行某些代码。通过 if 语句,你可以让程序根据输入或环境的不同做出不同的反应。  switch 语句是 Java 中的另一个控制结构,它用于基于某个变量的不同值来选择执行不同的代码块。与 if-else 语句相比,switch 更适合处理多个条件的分支情况。  for 循环和 foreach 循环(也叫增强型 for 循环)是常用的两种循环控制结构,它们用来在一定条件下重复执行代码块。虽然它们的功能相似,但语法和使用场景有所不同

2025-03-31 12:07:26 983

原创 Spring-aop从入门到上手(二)-对照着做,轻松完成系统日志操作.

AOP(Aspect Oriented Programming)面向切面编程,一种编程范式,指导开发者如何组织程序结构作用:在不惊动原始设计的基础上为其进行功能增强。简单的说就是在不改变方法源代码的基础上对方法进行功能增强,无入侵式/无侵入式.

2025-03-29 12:15:31 844

原创 Spring从入门到上手(一)-对照着做,初学者也能轻松上手.

是 Spring Framework 提供的一种简化配置和管理 Bean 的方式,它通过使用注解来代替传统的 XML 配置,使得开发者能够更加简洁、清晰地定义和管理 Spring 的组件和功能。Spring框架是一个分层的面向切面的Java应用程序的一站式解决框架,它是Spring技术栈的核心和基础,是为了解决企业级引用开发的复杂性而创建的。AOP用来封装多个类的公共行为,将那些与业务无关,却为业务模块共同调用的逻辑封装起来,减少系统的重复代码,降低模块间的耦合度。通常用于业务服务类。

2025-03-29 11:52:00 1072

原创 java基础从入门到上手(二):语言基础

基本数据类型是 Java 中最简单的类型,它们直接存储数据的值。这些类型由 Java 语言预定义,存储效率较高,因为它们占用固定的内存空间,并且没有额外的对象开销。 引用数据类型与基本数据类型不同,引用数据类型存储的是对象的地址,而不是实际的数据值。 Java 程序的主类(主程序)是 Java 应用程序的入口点,主类通常是包含 main 方法的类。main 方法是 Java 程序的入口,它是程序开始执行的地方。主类结构不仅包括 main 方法,还包括一些其他常见部分,如类定义、成员变量、构造方法等。

2025-03-29 10:02:07 755

原创 从入门到使用轻松学习Tomcat,简介、安装及使用

Tomcat 是一个开源的 Java Servlet 容器,Servlet 是用 Java 编写的服务器端程序,它运行在 Servlet 容器中,并且根据客户端的请求生成动态内容.由 Apache Software Foundation 开发和维护。它实现了 Java EE(现在称为 Jakarta EE)规范中的核心部分,特别是 Servlet 和 JSP(JavaServer Pages)。Tomcat 主要用于运行 Java Web 应用程序,支持动态网页的生成、管理用户会话、处理 HTTP 请求

2025-03-28 11:06:21 1014

原创 java基础从入门到上手(一):简介及JDK安装

Java 程序被编译成字节码(.class 文件),并通过 Java 虚拟机(JVM)在任何平台上运行,从而实现了“编写一次,到处运行”(WORA)的特性。虽然是解释型语言,但 Java 经过多年的发展,已经具备了接近于编译型语言的执行效率,尤其在现代硬件和 JVM 优化的支持下,性能表现优秀。Java 的安全性设计确保了程序在运行时的保护,尤其适合开发涉及网络和互联网的应用。Java 可以在运行时加载新类并执行,允许程序根据运行时信息作出决策,增强了程序的灵活性和扩展性。安装过程中会自动安装 JRE。

2025-03-28 10:37:45 774

原创 Spring Boot 使用JavaMailSenderImpl轻松发邮件(EmailUtil)

EmailUtil类封装了发送邮件的功能,提供了三种不同的邮件发送方法,支持发送纯文本或 HTML 格式的邮件,并且可以选择是否添加附件。它借助 Spring 框架的类来完成邮件的发送操作。

2025-03-27 17:41:34 144

原创 Mybatis从入门到上手-对照着做,初学者也能轻松上手.

MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 entity(Plain Old Java Objects)映射成数据库中的记录。

2025-03-27 09:50:46 968

原创 SpringBoot从入门到上手(二)-对照着做,初学者也能轻松上手.

在这个场景中,key 可能是用户的唯一标识(如用户ID),而 value 就是加密后的 token。这里特别强调了 key 不可以重复,因为如果两个不同的用户使用相同的 key,新的 token 会覆盖旧的,导致原用户的登录信息丢失。在一般情况下,mybatis-spring-boot-starter 和 mybatis-plus-boot-starter 可以同时使用,但通常不推荐同时使用,因为 MyBatis-Plus 本身就已经集成了 MyBatis 的功能,并且为常见的操作提供了更多的封装和增强。

2025-03-27 09:12:22 730

原创 SpringBoot从入门到上手-对照着做,初学者也能轻松上手.

启动类是 Spring Boot 应用的入口点,通常是一个包含 main() 方法的类,用于启动应用。它是使用 Spring Boot 提供的 @SpringBootApplication 注解来标识的。Spring Boot 默认将 src/main/resources/static 目录作为静态资源的根目录,这些资源可以是 HTML、CSS、JavaScript、图片等。SpringBoot并不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式,的Java应用程序的开源框架。

2025-03-26 11:11:29 640

原创 SpringBoot工程中application.properties文件示例

MySQL#EchoSQL#Upload#Thymeleaf#Redis。

2025-03-26 10:33:58 285

开发领域-Spring 技术-模块集成要点-系统搭建用途

Spring指的是Spring Framework,通常我们称之为Spring框架。Spring框架是一个分层的面向切面的Java应用程序的一站式解决框架,它是Spring技术栈的核心和基础,是为了解决企业级引用开发的复杂性而创建的。 IOC:Inverse of Control的简写,为控制反转,指把创建对象交给Spring进行管理。 AOP:Aspect Oriented Programming 的简写,为面向切面编程。AOP用来封装多个类的公共行为,将那些与业务无关,却为业务模块共同调用的逻辑封装起来,减少系统的重复代码,降低模块间的耦合度。

2025-03-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除