![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaEE
文章平均质量分 83
多线程 网络编程等
Roylelele
这个作者很懒,什么都没留下…
展开
-
实现消息队列
消息队列服务器,核心功能是提供了虚拟主机,交换机,队列,消息等概念的管理,实现了三种典型消息的转发方式。实现跨主机/服务器之间的生产者消费者模型。原创 2024-03-30 11:22:04 · 1028 阅读 · 0 评论 -
部署 Web 项目到Linux上
把程序安装到生产环境上, 这个过程称为 "部署",也叫 "上线"。一旦程序部署成功, 那么这个程序就能被外网中千千万万的普通用户访问到。原创 2024-03-09 12:52:21 · 446 阅读 · 0 评论 -
no main manifest attribute,in xxx.jar(关于Spring项目,无法在云服务器上运行jar包的解决方法)
no main manifest attribute,in xxx.jar(关于Spring项目,无法在云服务器上运行jar包的解决方法)原创 2024-03-09 12:52:06 · 2330 阅读 · 0 评论 -
博客系统(SSM)
通过SSM实现的博客系统原创 2024-03-07 16:58:23 · 1401 阅读 · 0 评论 -
加密 / MD5算法 /盐值
加密介绍:在MySQL数据库中, 我们常常需要对密码, 身份证号, 手机号等敏感信息进行加密, 以保证数据的安全性。如果使用明文存储, 当黑客入侵了数据库时, 就可以轻松获取到用户的相关信息, 从而对用户或者企业造成信息泄漏或者财产损失。加密算法:对称加密、非对称加密、摘要算法。1. 对称密码算法:是指加密秘钥和解密秘钥相同的密码算法2. 非对称密码算法 是指加密秘钥和解密秘钥不同的密码算法. 该算法使用一个秘钥进行加密, 用另外一 个秘钥进行解密。原创 2024-03-07 16:53:22 · 593 阅读 · 0 评论 -
实现令牌技术
给一个场景:实现登录传统思路:• 登陆页面把用户名密码提交给服务器.• 服务器端验证用户名密码是否正确, 并返回校验结果给后端• 如果密码正确, 则在服务器端创建 Session . 通过 Cookie 把 sessionId 返回给浏览器.问题: 集群环境下无法直接使用Session。1.session存在服务器中,服务器重启,session丢失,用户需要重新登录。2.用户第一次请求,分配在服务器1,session存在服务器1上。原创 2024-03-07 16:52:46 · 832 阅读 · 0 评论 -
Spring AOP的实现方式
Spring框架的两大核心:IoC和AOPAOP:Aspect Oriented Programming(面向切面编程) AOP是一种思想,是对某一类事情的集中处理面向切面编程:切面就是指某一类特定的问题,所以AOP可以理解为面向特定方法编程原创 2024-02-16 12:24:39 · 1184 阅读 · 0 评论 -
SpringBoot统一功能处理
我们自己写的拦截器的类要继承HanderInterceptor这个类,并且重写这个类中自带的两个方法。@Slf4j@Overridelog.info("目标方法执行前");@Overridelog.info("目标方法执行后");原创 2024-02-13 19:23:28 · 1853 阅读 · 0 评论 -
图书管理系统
SpringBoot项目,基于Mybati操作数据库。原创 2024-02-03 11:11:40 · 983 阅读 · 0 评论 -
留言板(Mybatis连接数据库版)
中有关对于留言板的介绍,现在使用Mybatis完成连接数据库,这样以便刷新浏览器页面后,之前输入的信息仍然能够保存在硬盘中。原创 2023-12-28 20:34:00 · 1202 阅读 · 0 评论 -
MyBatis动态SQL(常用标签)
根据需求,动态拼接SQL。原创 2023-12-27 11:05:46 · 436 阅读 · 0 评论 -
MyBatis多表查询及参数赋值
Mybatis持久层框架:操作数据库的框架,方便对数据进行增删改查。实现:注解、xml实际开发中这两种方式可以共存。工作中尽可能的避免使用多表查询,尤其是对性能要求非常高的项目。原创 2023-12-25 15:59:34 · 1089 阅读 · 0 评论 -
MyBatis增删改查基础及其xml文件
resource路径下要有一个mapper文件夹,mapper文件夹下要有一个文件末尾名为Mapper的xml文件。mybatis会根据数据库的字段名和Java对象的属性名,进行映射,如果名称一样就可以进行赋值。application.properties或者application.yml中配置以下内容。当数据库中的名字与Java对象中的名字对应不一致时,重命名映射使用as将两者关联起来。缺点:每写一个新的方法都需要使用@Results重新注解一遍,代码冗余。字段与Java属性一样的不用重写。原创 2023-12-23 11:06:45 · 530 阅读 · 0 评论 -
使用MyBatis操作数据库及单元测试
MyBatis是⼀款优秀的持久层框架,⽤于简化JDBC的开发。JDBC来操作数据库太复杂了,使用MyBatis 是因为它可以帮助我们更⽅便、更快速的操作数据库。原创 2023-12-21 17:28:57 · 1236 阅读 · 0 评论 -
SpringBoot日志
日志作用:1.定位和发现问题2.监控系统eg:设定响应时间、超过阈值报警3.数据采集eg:统计页面浏览量、停留量,为用户做推荐4.日志审计eg:判断安全攻击,处理安全隐患原创 2023-12-19 20:45:23 · 1012 阅读 · 0 评论 -
使用Kaptcha实现的验证码功能
此验证码功能是以SpringBoot框架下基于kaptcha插件来实现的。原创 2023-12-18 20:48:43 · 872 阅读 · 2 评论 -
SpringBoot配置文件properties和yml
配置文件的作用:解决硬编码(代码写死)问题。原创 2023-12-18 10:59:42 · 781 阅读 · 0 评论 -
Spring IoC和DI
Spring是一个包含众多工具的IoC容器容器:Tomcat--->web容器List/Map--->数据存储容器Spring容器装的是对象。IoC:控制反转控制权反转,创建对象的控制权。原创 2023-12-07 20:00:36 · 1124 阅读 · 0 评论 -
Lombok工具包的安装和使用
Lombok是一个java库,它可以自动插入到编辑器和构建工具中,增强java的性能。不需要再写getter、setter或equals方法,只要有一个注解,使代码看上去更简洁。原创 2023-11-28 17:32:19 · 1559 阅读 · 0 评论 -
创建JDK8版本的SpringBoot项目的方法
截止到2023.11.24,SpringBoot不再支持3.0X之前的版本,3.0X之后的版本所对应的JDK版本为JDK17,下面介绍如何在idea上继续使用JDK8的版本。原创 2023-11-27 17:43:21 · 1732 阅读 · 0 评论 -
Spring Web MVC
Spring Web MVC是包含在Spring框架中的用来构造web项目的框架,底层基于Servlet API.(之前使用的SpringBoot也是创建Spring MVC的一种方式)MVC(model view controller):把一个项目分成三部分,三部分之间的关系如下Spring进行实现MVC模式,称为Spring MVC。原创 2023-11-24 16:06:11 · 1445 阅读 · 0 评论 -
SpringBoot
t=N7T8。原创 2023-11-16 19:47:16 · 151 阅读 · 0 评论 -
创建SpringBoot项目后无法运行Java文件的解决方法
根据报错提示,可以得知设置的阿里云仓库中没有2.7.17 RELEASE,这是社区版idea的bug,我们在pom.xml文件中修改version,将版本号后的英文后缀手动去掉,修改后再去maven面板中选择刷新。然后发现pom.xml文件和Java文件标识变正常了,Java文件也可以运行了,但是Java文件中出现红色标识,再返回pom.xml文件中观察。当我们创建好一个SpringBoot项目后,打开目录中的Java文件夹下的DemoApplication.java文件,发现这个文件无法运行。原创 2023-11-15 15:31:28 · 2178 阅读 · 1 评论 -
Maven介绍及仓库配置
唯一的,通过以下代码的三个键值对确定一个唯一的jar包。原创 2023-11-14 21:19:35 · 497 阅读 · 0 评论 -
JVM及其垃圾回收机制(GC)
JVM即Java虚拟机。原创 2023-11-13 17:52:27 · 741 阅读 · 0 评论 -
Linux常用命令及项目部署
Linux操作系统是和Windows并列的关系,Linux主要通过命令行进行操作的。原创 2023-11-08 13:55:11 · 76 阅读 · 0 评论 -
Cookie+Session
浏览器提供的持久化储存数据的机制。把信息保存到客户端,后续访问服务器的时候带着cookie数据进行访问。服务器通过cookie中的值识别当前的客户端及为其提供的服务环节。cookie最典型的应用:标识用户的身份信息举例:用户在浏览器输入正确的账号密码登录成功后,服务器给用户分配一个身份序列(SetCookie身份序号),用户之后访问该服务器时就会带上这个身份序号,后续服务器收到的请求中就会据此判断用户是谁。:上述过程的身份序号。原创 2023-11-03 19:27:36 · 109 阅读 · 0 评论 -
表白墙(服务器)
有新的浏览器打开页面的时候,从服务器获取数据(服务器存档和读档)读档:每次加载页面/刷新页面,触发一次读档操作,把之前服务器上存储的所有记录展示到当前页面中(读所有)在创建时,由于from和to是MySQL中的关键字,需要加上反引号 (`)(键盘上Tab键上方)当前数据是在内存中保存的,重启服务器就没有了,要想持久化保存,就要写入到文件中(硬盘)存档:每次点击提交按钮,触发一次存档操作,把用户输入的内容存储到服务器(存一条)Post是点击提交按钮的时候发起的,Get是页面加载的时候发起的。原创 2023-10-31 20:58:56 · 468 阅读 · 0 评论 -
Servlet核心API
3.POST,参数通过(json),服务器通过getInputStream读取到body的值(此处可以使用第三方库,完成json格式的解析,此处使用Jackson,核心是使用ObjectMapper这个对象,使用readValue把json格式的字符串转换成Java对象)前后端交互过程:前端通过form表单提交值到tomcat服务器,然后tomcat构造req和resp对象,值存在req对象中,然后通过req的方法调用其中的值,通过resp编写响应,写回到tomcat,tomcat发送响应给浏览器显示。原创 2023-10-28 16:28:28 · 162 阅读 · 0 评论 -
Servlet的两种部署方法
Servlet是实现动态页面的技术,是tomcat给Java提供的原生的进行web开发的api。原创 2023-10-24 19:22:09 · 363 阅读 · 0 评论 -
Tomcat
Tomcat是一个HTTP服务器。HTTP协议是HTTP客户端和HTTP服务器之间通信使用的协议。HTTP客户端可以通俗理解为浏览器。而Tomcat是基于Java的一个免费开源的服务器。原创 2023-10-18 20:15:19 · 600 阅读 · 0 评论 -
HTTP和HTTPS
1.针对业务数据,引入对称加密。2.让服务器生成一对非对称密钥,公钥1和私钥1,把公钥1连同证书一起发送给客户端,自己持有私钥1。3.客户端拿到证书进行校验,拿着颁发证书机构提供的公钥2对证书中的签名进行解密,计算校验和是否匹配。4.客户端拿着服务器发送来的公钥1争对对称密钥进行加密,发送给服务器,服务器用私钥1进行解密。原创 2023-10-18 16:18:32 · 1104 阅读 · 1 评论 -
网络原理TCP/IP
当前软件(应用程序)要解决的业务场景是错综复杂的。不同的公司有不同的业务,不同的业务有不同的流程。使用程序来解决复杂的业务也就复杂了。因此很难有一个通用的协议来满足所有的业务需求,所以需要自定义协议。怎样进行自定义协议1.结合需求,分析清楚,请求响应(客户端/服务器之间)要传递哪些信息。2.明确传递的信息以什么样的格式来组织最简单的方式--文本。原创 2023-09-16 11:35:41 · 138 阅读 · 0 评论 -
多线程2--相关理论知识
CAS:全称compare and swap“比较和交换”。CAS可以理解为是CPU给提供的一个特殊指令,通过这个指令,可以一定程度的处理线程安全问题。原创 2023-08-17 11:22:04 · 62 阅读 · 0 评论 -
文件操作---IO
每个文件,在硬盘上都有一个具体的“路径”,表示一个文件的具体位置路径,就可以使用斜杠 / 或者反斜杠 \ 来分割不同的目录级别。广义的文件:泛指计算机中的很多的软硬件资源。2.进行普通文件的复制:把一个文件拷贝成另一个文件,很简单,就是把第一个文件按照字节依次读取,把结果写到另一个文件中。相对路径,如果当前的工作路径是d:/uml 要定位到Doc这个目录,就可以表示成./Doc(./就表示当前的目录)如果没乱就是文本文件。之前的代码,存储数据,主要是靠变量,变量主要存储在内存中,现在的文件是在硬盘上。原创 2023-09-08 14:20:31 · 68 阅读 · 0 评论 -
多线程编程基础
多进程编程已经可以解决并发编程的问题,但创建一个进程,消耗会比较大。(资源分配和回收)线程的出现让创建、销毁、调度的速度更快一些。线程:轻量级进程一个进程可以包含一个线程,也可以包含多个线程。只有第一个线程启动的时候开销比较大。原创 2023-08-15 16:01:48 · 119 阅读 · 0 评论 -
计算机操作系统
并发:微观上,同一时刻,一个核心上只能运行一个程序,但它能够对进程快速切换(比如CPU这个核心上,先运行一下画图板,再运行一下网易云,再运行一下QQ,只要切换速度足够快,宏观上人感知不到)操作系统在进行进程切换的时候,需要把进程执行的“中间状态”记录下来,保存好。代码里不再直接使用真实的物理地址,而是使用虚拟的地址,由操作系统和专门的硬件设备负责进行虚拟地址到物理地址的转换。虚拟地址空间,程序中获取到的内存地址,并非是真实的物理内存的地址,而是经过了一层抽象,虚拟出来的地址。(对下,管理硬件设备;原创 2023-07-31 19:33:28 · 75 阅读 · 0 评论 -
网络编程套接字
任意一个客户端连接上来,都会返回和创建一个socket对象(socket就是文件)每次创建一个clientSocket对象,就要占用一个文件表述符的位置,因此在使用完后要进行释放。客户端的端口是系统自动分配的,如果手动指定,可能会和客户端的其它程序端口冲突。线程池虽然解决了多个程客户端的使用,但是如果有大量的客户端同时使用,一台服务器可能无法承担,机器承担不了太大的线程开销。客户端这边,代码里面构造,构造时指定一个IP和端口号(此处的IP是服务器的IP和端口)由此可以与服务器建立连接了。原创 2023-09-10 17:51:31 · 71 阅读 · 0 评论 -
网络编程原理
传输层使用的协议,最知名的就是UDP和TCP,需要构造出UDP报头(在应用层数据模型基础上加一个UDP报头)端口号:用于定义主机中的进程。(类似于发快递,不仅需要收货地址(IP地址),还需要收件人(端口号))节点:上述设备的统称,任何一个连入网络的交换机、路由器、电脑都可以称为“节点”。1.物理层:网卡接收到的是光信号和电信号,在物理层把广电信号转换回二进制的数据。4.传输层:UDP解析,取出报头,取出载荷,交给对应的应用层程序。最知名的协议:IP协议,基于上述数据,打包成一个IP数据报。原创 2023-06-04 15:42:34 · 195 阅读 · 1 评论