![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 58
无奈的码农
坚持学习新技术
展开
-
Spring中最简单的过滤器和监听器
采用三步走策略使用filter开发后台资源 静态资源(html,css … …)或者动态资源(Servlet,Jsp)开发Filter在web.xml中配置Filter拦截哪些资源开发Servlet定义两个servletSystem . out . println("myServlet1 执行了sevice方法");resp . getWriter() . print("myServlet1响应的数据");} }原创 2023-07-28 15:12:16 · 1395 阅读 · 30 评论 -
HTTP与HTTPS的区别,HTTPS提高性能,HTTP2的新特性
http也相当于HTTP协议,是超文本传输协议的意思,是明文传输。属于你请求的数据,不加密,直接请求服务端。 https 是http的升级,在应用层和传输层加了一层SSL校验层,对所传输的数据进行加密,进行密文传输。HTTP---->三次握手,流程为客户端对服务端说,我要连接你;服务端对客户端说,我收到了;客户端往服务端发送数据;这样http的一个交互流程就完成了HTTPS---->四次握手,流程为客户端对服务端说,我要连接你;服务端我收到了,并且把公钥返回给客户端;客户端拿着公钥,把自己原创 2023-01-12 18:39:22 · 956 阅读 · 33 评论 -
Java Scanner 获取字符串和带空格的字符串
next() 获取不带空格的字符串nextLine() 获取带空格的字符串原创 2023-01-12 16:52:41 · 1323 阅读 · 1 评论 -
非对称加密实战(三):http和https可一并访问加入拦截器【附源码】
来讲,配好https后,http是无法访问的,那么要进行处理的话,需要加入拦截器,来进行https跳转。在服务端加入拦截器,拦截所有的http请求重定向到https请求。我们直接请求8082端口,会直接跳转到8081端口,附截图。原创 2023-01-07 20:04:35 · 177 阅读 · 0 评论 -
非对称加密实战(二):解决web项目不支持https问题 ,添加证书【附源码】
原因,因为在第一篇中,生成.keystore文件的时候,没有加上域名配置,所以出现不安全标志。还需要在application.yml配置文件中加入ssl认证配置。中生成的证书加到web服务中的resource文件夹中。需要输入fd-alias.keystore文件设置的密码。重新生成前,需要把原有的.keystore 文件删掉。双击fd.cer 文件。到这里,就已经完成了。原创 2023-01-07 19:39:16 · 1600 阅读 · 1 评论 -
非对称加密实战(一):JDK生成keystore获取公钥私钥及代码验证【附源码】
理解:非对称加密需要两把密钥:公钥和私钥,他们是一对,如果用公钥对数据加密,那么只能用对应的私钥解密。如果用私钥对数据加密,只能用对应的公钥进行解密。因为加密和解密用的是不同的密钥,所以称为非对称加密。客户端发请求到服务端,需要拿着自己的公钥发送过去,而服务端收到后,拿着对应的私钥进行解密,解密成功后,进行下一环节。如果在中间被第三方拦截到,篡改内容,服务端没有对应的公钥,服务端则解析失败。输入命令生成自己的keystore文件。私钥加密---------》公钥解密。公钥加密---------》私钥解密。原创 2023-01-07 18:53:39 · 2714 阅读 · 0 评论 -
spring内置验证码kaptcha,baomidou使用详解
如果生成验证码的时间,超过了你传入的时间,那么会直接抛出异常KaptchaTimeoutException,看源码可以看到,这里没有返回true或者false,如果超时或者其他都是直接抛出异常,我们用的时候,可以自定义异常类,进行捕获异常进行处理。参数有两个,一个是校验码,一个是超时时间,主要为了方便扩展,超时时间可以有客户端来传入。source:验证码区间 如:abcd1234,只会在这个区间产生。background-colo : 颜色渐变设置。boder :验证码框设置。width :验证码框宽。原创 2023-01-07 16:49:23 · 869 阅读 · 0 评论 -
Easy-Captcha验证码 生成以及校验(简单易懂)
在上面的类中,都是继承自Captcha类,类中提供了两个主要抽象方法,自定义验证码生成器也需继承Captcha,实现下面两个方法。Java图形验证码,支持gif、中文、算术等类型,可用于Java Web、JavaSE等项目。来看SpecCaptcha 默认生成验证码的工具类,其他几种验证码生成类,一样的逻辑。以上几种提供的工具类,都有使用测试。原创 2023-01-02 18:56:55 · 3443 阅读 · 2 评论 -
HappyCaptcha 验证码生成以及验证
HappyCaptcha一共提供了12种验证码类型,你可以自由选择其中的一种类型作为验证码的内容形式。如果你想改变验证码的字体,可通过font()方法进行设置,默认缺省字体为微软雅黑。Happy Captcha是一款易于使用的Java验证码软件包,旨在花最短的时间,最少的代码量,实现Web站点的验证码功能。算术运算表达式的长度为5。同width()方法一样,height()方法用于设置验证码图片的高度,默认缺省值为50。width()方法可对验证码图片的宽度进行调节,默认的缺省值为160。原创 2023-01-02 16:29:08 · 689 阅读 · 0 评论 -
JSON Web Tokens(JWT)简单使用
JWT(json web token),它并不是一个具体的技术实现,而更像是一种标准。JWT规定了数据传输的结构,一串完整的JWT由三段落组成,每个段落用英文句号连接(.)连接,他们分别是:Header、Payload、Signature,所以,常规的JWT内容格式是这样的:AAA.BBB.CCC并且,这一串内容会base64加密;也就是说base64解码就可以看到实际传输的内容。接下来解释一下这些内容都有什么作用。简单理解:jwt本质就是, 把用户信息通过加密后生成的一个字符串。原创 2023-01-01 14:48:31 · 1853 阅读 · 0 评论 -
BCryptPasswordEncoder加密与MD5加密的区别
MD5(Message Digest Algorithm 5)中文名为消息摘要算法第五版,是计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。MD5作为一种常用的摘要算法(或指纹算法),其具有以下几个重要的特点(个人观点):输入任意长度信息,输出长度固定:MD5 可输入任意长度的信息,其输出均为128位(bit)固定长度的二进制数据。运算速度快:MD5的运算均为32位 与、或、非、位移等位运算,因此其运算速率快,几乎不消耗CPU时间。原创 2022-12-28 22:30:26 · 1591 阅读 · 0 评论 -
Java 泛型接口使用说明
不仅Java的集合都定义成了泛型,用户自己也可以定义任意泛型的类、接口,只要在定义它们时用来指定类型参数即可;例如: public interface SqlInterFace < T > {. . . }其中指定了该泛型的类型参数,这个T是一个类型参数名,用户可以任意命名(就像方法参数的形参名一样),只有在定义该泛型的对象时将T替换成指定的具体类型从而产生一个实例化的泛型对象,一个泛型接口可以被多个类实现,可以减少接口的开发。原创 2022-12-13 10:14:09 · 3711 阅读 · 0 评论 -
java instanceof关键字详解
将从操作数堆栈中弹出objectref,它必须是引用类型。无符号indexbyte1和indexbyte2用于将索引构造到当前类的运行时常量池中(§2.6),其中索引的值为(indexbyte1原创 2022-12-13 09:58:35 · 1648 阅读 · 0 评论 -
git回退版本 简单易懂
进行git版本回退的时候使用git log查看提交日志:git log命令显示从最近到最远的提交日志如果嫌输出信息太多,可以试试加上–pretty=oneline参数,代码如下:日志会进行减少使用git log找到对应的版本后,使用git reset --hard 版本ID,来进行版本回退回退完之后,可以看到提交记录里面已经没有修改文件这一次提交记录了使用git reflog 查看历史版本日志回退到未来的修改文件版本如图所示,git版本回到了最新博主的分支是受保护的,只能修改,不能回原创 2022-12-07 10:37:13 · 8063 阅读 · 0 评论 -
JDK8新特性超详细总结
1. 了解Java发展史2. Lambda表达式3. 接口的增强4. 函数式接口5. 方法引用6. Stream API7. Optional8. 新时间日期API9. 其他新特性原创 2022-12-05 15:40:43 · 8831 阅读 · 1 评论 -
JD-JUI 和Jad反编译 最新版1.6.6下载
jd-dui和jad反编译工具原创 2022-11-21 17:48:20 · 9349 阅读 · 2 评论 -
JAVA MongoDB 连接以及增删改查
【代码】JAVA MongoDB 连接以及增删改查。原创 2022-11-04 10:21:22 · 8408 阅读 · 0 评论 -
IDEA 对单个的java class文件打成jar包
IDEA 对单个java文件打jar包,在打jar包的时候,需要先对java文件进行编译,然后在对.class文件进行打包,在打包的时候需要注意,自己的java文件中是否包含内部类,如果包含内部类的话,需要选中两个class文件。点击确定,然后Build—>Build Artifacts,选中刚刚添加的,进行build。找到 testOne.jar,用java反编译工具查看,是否打包成功。第一个带&的是内部类。然后去输出路径里面找。原创 2022-11-02 14:34:29 · 10477 阅读 · 0 评论 -
Java报错Exception in thread “pool-1-thread-2“ java.lang.NoSuchMethodError:
引入了两个mongodb的包,导致在程序加载的时候不知道去哪个包里找,所以出现此报错,删掉一个引用包即可。跑java程序时出现找不到方法的错误。主要问题出现在包引用上面。原创 2022-10-16 12:34:41 · 4400 阅读 · 0 评论 -
JDK8 Stream 流遍历List,看完就会,简单易懂
Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选, 排序,聚合等。熟悉Linux的同学对这种风格一定不陌生,因为它跟Linux的|管道符的思想如出一辙。原创 2022-09-15 15:34:49 · 1741 阅读 · 0 评论 -
获取zookeeper的节点,ip,端口
获取zookeeper的节点,ip,端口,以及在线状态,查看连的备机还是主机原创 2022-09-13 08:55:44 · 3771 阅读 · 0 评论 -
JAVA Oracle插入大量数据优化
关键代码在于在插入数据之前,先把自动提交关闭,之后把数据全放进缓存之后,手动一次提交。在数据字段少的情况下,插入速度很快在对于字段多达两百个的就会越来越慢,看下面的代码。原创 2022-08-29 17:40:01 · 2694 阅读 · 0 评论 -
java 邮件发送文字,图片,和文件
java 发送邮件,邮件包括图片,文本内容,文件,一起发送的功能,进入QQ邮箱进入设置进入账户开启POP3/SMTP 服务开启之后会生成16位权限码这个需要记好,前期工作准备完毕,直接进入代码阶段。原创 2022-08-22 11:21:45 · 2744 阅读 · 0 评论 -
java 发送邮件tcmime.2648.2742.2958.bin编码错误
在启动时直接初始化,进行编码设置。java发送邮件会出现tcmime.2648.2742.2958.bin 乱码现象,要在初始化服务的时候设置编码格式原创 2022-08-22 10:18:59 · 1238 阅读 · 0 评论 -
java Byte数据截取
java Byte数据截取。JDK 自带byte数组截取方法使用原创 2022-08-18 14:33:43 · 9506 阅读 · 0 评论 -
java mongodb 多数据源配置
java mongodb 多数据源配置。原创 2022-08-11 17:06:37 · 5168 阅读 · 0 评论 -
Caused by: java.lang.NoClassDefFoundError: org/springframework/core/log/LogDelegateFactory
Caused by: java.lang.NoClassDefFoundError: org/springframework/core/log/LogDelegateFactory,搭建springboot 启动报错,需要注意看包版本是否一致。一开始自己配置的包版本。重新编译,运行,解决。原创 2022-08-10 11:08:15 · 5093 阅读 · 0 评论 -
对象存储布局,对象如何定位,对象如何分配
直接定位就是reference中直接存储的就是堆中对象的地址,如果不止访问对象本身,还需要访问对象类型数据就需要多一次指针定位的开销。间接指针对象的方式是通过句柄实现的,java堆中划分出一块区域作为句柄池,reference中存储的就是句柄池的地址,句柄池中存储了对象的实例数据与类型数据的地址信息。使用间接定位对象的方式也有优点,堆是垃圾收集器工作的主要区域,在这里会进行频繁的垃圾收集操作,在进行垃圾收集时会涉及大量的对象移动,在频繁的移动对象时,只需要修改句柄的指向实例数据的指针即可,不用频繁的更改栈中原创 2022-08-05 10:52:41 · 4345 阅读 · 0 评论 -
线程的六种状态
**JAVA的6中线程状态:**1. NEW :线程刚刚创建,还没有启动2. RUNNABLE :可运行状态,由线程调度器可以安排执行。 + 包括READY和RUNNING两种细分状态3. WAITING: 等待被唤醒4. TIMED WAITo.wait() t.join() LockSupport.park() Lock.lock() 这四个方法都是返回waiting状态。synchronized(o) 返回BLOCKED 状态,看上图所画。** 线程状态测试代码 **..原创 2022-08-04 14:15:26 · 4170 阅读 · 0 评论 -
线程基础知识
什么是进程,什么是线程。创建线程的方式。之前的硬件,只有一个CPU之前的OS,只运行一个进程随着多核CPU的出现,人们开始追求对CPU效率的极致压榨多线程的程序随之诞生,但随之诞生的,也是非常难以应对的各种并发bug。............原创 2022-08-04 11:17:09 · 4215 阅读 · 0 评论 -
java各种文件转pdf,pdf加入水印
个人需求,把所有文件夹内的数据转为pdf,目录类型不变,文件夹不转pdf, com.itextpdf itextpdf 5.5.11原创 2022-07-13 16:53:54 · 587 阅读 · 0 评论 -
普通工厂类和抽象工厂类的区别
普通工厂:工厂方法模式(Factory Method),定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法模式使一个类的实例化延迟到其子类。抽象工厂:抽象工厂模式提供了一个创建一系列相关或者相互依赖对象的接口,无需指定它们具体的类,围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。需求:实现原理:需求1:那我们要定义一个添加接口,让骨头,小鱼干,蚯蚓都实现这个接口;需求二:那我们要定义一个喂食接口,让狗,猫,鸭都实现这个接口;需求一的代码:调用结果展示需求二的代码调用原创 2022-07-06 13:58:34 · 873 阅读 · 0 评论 -
Java 高效机器人 Mirai 简单实现教程
Mirai高效机器人Java教程使用重要配置心跳切换心跳策略默认为最佳的 STAT_HB,但不适用于一些账号。如果遇到 Bot 闲置一段时间后,发消息返回成功但群内收不到的情况,请切换心跳策略,依次尝试 STAT_HB、REGISTER 和 NONE协议包括以下几种默认协议为ANDROID_PHONE在登录时可能遇到图形验证码或滑动验证码,Mirai 会使用 LoginSolver 解决验证码。在 JVM, Mirai 会根据环境支持情况选择 Swing/CLI 实现,通常不需要手动提供当前原创 2022-06-28 10:53:44 · 8044 阅读 · 4 评论 -
Java提升开发效率的小工具
首先出场的是包下的类,该类主要用于操作集合或者返回集合,我个人非常喜欢用它。在工作中经常有对集合排序的需求。看看使用工具是如何实现升序和降序的:执行结果:1.2 获取最大或最小值有时候需要找出集合中的或者,这时可以使用Collections的和方法。例如:执行结果:1.3 转换线程安全集合我们都知道,java中的很多集合,比如:ArrayList、LinkedList、HashMap、HashSet等,都是线程不安全的。换句话说,这些集合在多线程的环境中,添加数据会出现异常。原创 2022-06-28 09:27:51 · 412 阅读 · 0 评论 -
JdbcTemplate 批量插入
因为使用template插入速度过慢,上网查了资料,找到了一种插入速度很快的方法 String sql = "INSERT INTO `party_dealer_info_grp` ( `ID`, `PARTY_CODE6`, `PARTY_NAME`, `DEALER_ID`, `DEALER_NAME`, `TELE`, `FAX`, `EMAIL`, `MSN`, `ADDRESS`, `POSTAL_CODE` ) VALUES (?,?,?,?,?,?,?,?,?,?,?)";转载 2021-11-16 13:46:46 · 10396 阅读 · 2 评论 -
JAVA动态编译.jar文件
JAVA动态编译.jar文件原创 2022-06-02 14:13:50 · 434 阅读 · 0 评论 -
JGit克隆代码,提交代码,推送新分支
JGit克隆,提交,推送新分支原创 2022-06-02 13:56:47 · 1060 阅读 · 0 评论 -
java 动态编译.java
在java项目内获取整个电脑任意位置的.class文件进行实例化,执行以下案例时,需要从jdk中引入tool.jar 文件第一种:使用urlclassloader进行package test;import java.net.URL;import java.net.URLClassLoader;/** * @ClassName Test * @Description * @Date 2021/11/26 11:06 **/public class TestURLClassLoad原创 2021-11-26 17:40:48 · 1111 阅读 · 0 评论