![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA EE
文章平均质量分 87
安苒_
但行好事,莫问前程.
展开
-
网络 | 应用层-websocket协议概述与握手过程解析
websocket是应用层协议,与http地位对等,都是基于传输层tcp协议实现的。为了兼容现有设施,websocket协议使用与http协议相同端口,使用http upgrade机制实现websocket握手,当握手完成,通信双方可以按照websocket方式进行交互。原创 2024-05-11 10:27:42 · 482 阅读 · 1 评论 -
网络 | 应用层-websocket协议报文格式解析
websocket的官方文档为rfc(request for comments),是网络协议的规范文档。它包含了许多计算机世界的核心知识除了这里的websocket,它里边还包含我们熟知的http,tcp等协议的解析。websocket协议对应的编号是rfc 6455。原创 2024-05-11 09:28:33 · 728 阅读 · 1 评论 -
localhost:8080 is already in use
报错原因:本机的8080端口号已经被占用。因为机器的空闲端口号是随机分配的,而idea默认启动的端口号是8080,所以是存在这种情况。对于这个问题,我们只需要重启idea或者修改项目的启动端口号即可。更推荐第二种。对于修改项目启动端口号,我提供两种方法,第一种是比较简单,第二种能够更加清晰的知道谁占用了,怎么修改。原创 2023-08-15 11:33:27 · 3478 阅读 · 0 评论 -
Could not open JDBC Connection for transaction; nested exception is java.sql.SQLNonTransientConnecti
使用MyBatis的SqlSession是不会自动关闭数据源连接的,需要使用Spring包装过的SelSqlSessionTemplate才会自动关闭数据源连接。所以每次执行一个请求对应的方法,都会占用一个数据源连接而不被释放,最终导致数据源连接池被占满,无法开启新的连接。配置数据连接的字段上加一个useSSL=false;原创 2023-08-15 11:08:26 · 10047 阅读 · 1 评论 -
AOP与SpringAOP
AOP即Aspect-Oriented Programming面向切面编程。它是一种思想,它是对某类事情的集中处理。SpringAOP是一个框架,是AOP思想的一种具体实现产物。原创 2023-08-15 01:41:58 · 251 阅读 · 0 评论 -
Spring事务
事务就是逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部失败。事务具有四大特性(ACID),原子性(Atomomicity),一致性(Consistency),持久性(Isolation),隔离性(Durability)。不同的隔离级别总共可能产生三种问题脏读,不可重复度,幻读。MySQL事务的隔离级别有四种read uncommited,read commited,repeatable read,serializable,MySQL默认是可重复读。原创 2023-08-15 01:21:01 · 208 阅读 · 0 评论 -
MyBatis操作数据库常见用法总结2
是mybatis的特性之一,能在xml里边写逻辑判断(if else for循环)原创 2023-08-10 23:03:07 · 240 阅读 · 0 评论 -
MyBatis操作数据库常用用法总结1
这里使用的标签是update,这里只有一个id属性名,没有namespace其他的,至于resultType,因为方法那里默认就是返回int类型,所以可以省略不写。但是即使是上边的场景也是需要参数可以被枚举的,是可控的,不过不建议用这种方法,最好在Controller层Service层就能进行确定,做好了服务编排,提高安全性。结论:用于查询的字段,尽量使用#{}预编译处理的方式,尤其是的时候非数据类型的,否则不仅可能会有sql注入的问题,还有sql语句中缺少对应的引号。#{}:原理是预编译处理。原创 2023-08-10 19:30:14 · 363 阅读 · 0 评论 -
MyBatis简介及环境配置
MyBatis是一种持久层框架,也是一种ORM框架(Object Relational Mapping即对象关系映射)。其中是持久层框架代表着,使用它可以更简单的操作和读取数据库工具。是ORM框架,说明MyBatis可以将OOP中的对象和关系型数据库中的数据建立起映射关系,自动完成数据和对象的互相转换:①将输入数据和sql映射成原生sql②将结果集映射成返回对象。ORM将数据库映射成对象:数据库->类记录->对象字段->对象属性。原创 2023-08-08 11:42:57 · 1294 阅读 · 0 评论 -
SpringBoot项目配置文件
比如数据库的连接信息(包括用户名和密码设置)、项目的启动端口、第三方系统的调用密匙等信息、用于发现和排查定位问题的普通日志和异常日志等。一般来讲,配置文件会随着spring容器的启动而自动加载,但是也可以主动读取配置文件中的内容,通过@Value注解实现。注意:读取值为 null 的配置和根本不存在的配置结果不⼀致,是两回事,要注意区分。其中.properties类型的配置文件是默认的,两者可以同时存在,但实际开发中公司会规定使用哪一种。注意:冒号后边要加空格,不然不生效!下边详细说明,并进行对比。原创 2023-08-08 11:20:57 · 476 阅读 · 0 评论 -
SpringWeb项目核心功能总结
SpringWeb项目核心功能总结原创 2023-08-08 11:11:16 · 541 阅读 · 0 评论 -
Spring MVC项目概述及创建
Spring MVC是基于SevletAPI的原始Web框架。Spring MVC项目也叫做SpringWeb项目。它是在springboot项目中引入了web框架,原本的spring项目不具备网络通信能力,而spring mvc允许http响应,当用户在浏览器输入了url后,spring mvc项目就可以感知到用户的请求。MVC是model view controller的缩写,是软件工程中的一种软件架构模式,它把软件系统分为模型,试图和控制器三个基本部分。原创 2023-08-07 12:05:15 · 680 阅读 · 0 评论 -
分代回收工作流程
GC回收垃圾主要有三个算法,分别是标记清除,复制算法以及标记整理。三种算法各有优缺点,其中标记清除的优点就是简单高效,缺点就是很容易带来内存碎片化问题。复制算法的话,优点确实解决了内存碎片化问题,但是同时也带来了空间利用率不高,当垃圾少,有效对象多时,效率比较低的问题。标记整理的话,优点是解决了空间利用率的问题,缺点是还是没解决效率问题。而分代回收则是基于上述三种回收算法的一种复合回收策略,将垃圾回收分成不同的场景,不同的场景应用不同的回收算法。下边则是对分代回收工作过程的梳理。原创 2023-05-18 20:32:26 · 719 阅读 · 0 评论 -
SpringMVC常用注解用法
Spring MVC是基于Servlet API构建的原始Web框架。MVC是Model View Controller的缩写即视图模型控制器,是一种思想,而Spring MVC是对该思想的具体实现。关于SpringMVC的学习我们需要掌握用户和程序的连接、获取参数以及返回数据三大部分。而这三大功能的实现离不开注解,所以这里对这三个过程进行说明,同时对在此过程中用到的注解进行总结。原创 2023-05-15 15:03:50 · 375 阅读 · 0 评论 -
Spring Boot项目创建和使用
Spring Boot 就是 Spring 框架的脚⼿架,它就是为了快速开发 Spring 框架⽽诞⽣的。原创 2023-05-09 21:48:30 · 984 阅读 · 0 评论 -
Spring执行流程&Bean生命周期
PostConstruct 注释用于在依赖关系注入完成之后需要执行的方法上,以执行任何初始化。如果当前类使用的Bean还没有,任务停止,开始去做那个Bean的实例和初始化。其中前置方法和后置方法用的是比较少的,但是初始化方法用的是比较多的。因为可能在调用方法的时候可能用到依赖的对象,必须要先进行属性注入。说明:这里只是说的大概流程,不是严格按照源码上一步一步说的。实例化:在堆上开辟内存,将非静态的变量和方法放到里边。因为现在使用注解比较多,相应的注解的优先级也更高。在此过程中,会完成Bean的注入和装配。原创 2023-05-09 21:44:45 · 577 阅读 · 0 评论 -
Bean的六种作用域及设置方式
Bean作用域:是指Bean在Spring框架中的某种行为模式/可用范围。Spring容器在初始化一个Bean的实例时,同时会指定该实例的作用域。例如singleton单例模式,就表示Bean在整个Spring中只有一份,它是全局共享的,当其他人修改了这个值,另一个人读取到的就是被修改的值。Spring中的Bean一共有6种作用域,前两种时core项目和MVC项目都可以用的,后四种是必须基于MVC项目的。即core项目中Bean有两种作用域,MVC项目中Bean有6种作用域。原创 2023-05-08 20:04:43 · 1204 阅读 · 0 评论 -
Spring更简单的存取Bean
在上一篇blog里边我介绍了spring项目的创建以及Bean对象的存储和读取。存储:1.首先创建Bean对象 2.将Bean对象注册到Spring容器中【Bean标签】读取:1.获取Spring上下文对象 2.获取指定的Bean对象 3.使用Bean对象但是随着Bean对象的增多以及使用频率的提高,上述过程难免有点效率低,所以需要学习下边更为简单的存取Bean对象的方式——使用注解,这也是Spring中更为简单存取Bean对象的核心。原创 2023-05-08 19:28:30 · 447 阅读 · 0 评论 -
Spring项目的创建与使用
联系:从继承关系而言,ApplicationContext和BeanFactory都是Spring容器的两个顶级的接口,并且ApplicationContext是继承于BeanFactory的;从功能角度而言,ApplicationContext和BeanFactory都有获取Spring上下文对象的功能。区别:从功能角度而言,前者除了继承后者所有功能外还具有独特特性,添加了对国际化、资源访问及事件传播等方面的支持;原创 2023-05-05 17:46:33 · 2287 阅读 · 0 评论 -
Spring核心概念
我们通常所说的Spring,其实也就是Spring Framework ,是java圈子里应用非常广泛的一种框架,如果用一句话概括,那就可以说Spring是包含了众多工具方法的IoC容器。如果需要对这个概述做进一步阐释,前半句没什么好说的,那我们就需要从IoC和容器这两个角度来入手进一步讨论。原创 2023-04-09 14:22:09 · 382 阅读 · 0 评论 -
认识Tomcat&Maven&Servlet&第一个Servlet程序
Tomcat本质上就是一个HTTP服务器。那么问题就来到了什么是HTTP服务器?与其他服务器类似,HTTP服务器干两件事,第一,将前端提交的数据转换成对象,第二,将服务器响应返回的对象进行解析。HTTP协议就是HTTP客户端和HTTP服务器之间通信使用的协议。浏览器本身就是一个HTTP客户端,与各种HTTP服务器进行交互。HTTP服务器有很多种实现,其中Tomcat就是java圈子里最知名、使用最广泛的http服务器。我们可以使用tomcat部署一些静态页面。【注意url写对,否则可能404】原创 2023-03-14 16:12:08 · 1287 阅读 · 3 评论 -
HTTP加密/HTTPS工作过程
HTTPS其实就是HTTP的plus版本、安全版本。这怎么说?HTTPS其实可以理解为HTTP+SSL。对于HTTP,前边我们已经提过了,那么什么是SSL呢?SSL全称为Secure Sockets Layer,即安全套接层。SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。目前就理解它是用于加密、帮助安全传输的协议即可,等之后能理解了,再看看这个文章。SSL基于HTTPS一个比较安全的交互过程的流程针对业务数据,进行对称加密。原创 2023-03-09 21:14:41 · 1155 阅读 · 1 评论 -
构造http请求
因为请求头要求以键值对的形式来组织:所以这里我们构造使用input标签进行组织,用户输入(文本输入框)与我们预先设定构成一对键值对,最后设置一个input标签,type色设置成submit,value设置成提交。那么A现在面临两种选择,一是就一直等待B的结果,其他啥也不干,而是给B返回结果留出位置,但是同时一边干自己其他的事情(时间管理大师),等待B的召唤,两者再进行交接。,如登录发帖,发帖就必须要登录,如果不登录不能发帖,发帖和登录这两个模块之间就要有交互,就会抛出一个接口,进行内部系统调用。原创 2023-03-08 18:20:59 · 402 阅读 · 2 评论 -
HTTP概念&协议报文结构&请求响应数据报分析
HTTP是应用层应用最广泛使用协议之一,非常非常重要。浏览器获取到网页,就是基于HTTP。它是浏览器和服务器之间的交互桥梁。可以通过多抓抓包分析来多练习URL中的路径URL中query stringheader中的键值对header中cookie中的键值对body其他基本均不可!!!原创 2023-03-07 18:41:46 · 2230 阅读 · 6 评论 -
Java EE|TCP/IP协议栈之应用层协议DNS详解
DNS,即Domain Name System,是域名系统的简称。它是Internet上解决网上机器命名的一种系统。TCP/IP中的IP地址是由四段以“.”分开的数字组成(此处以IPv4的地址为例,IPv6的地址同理),记起来总是不如名字那么方便,所以,就采用了域名系统来管理名字和IP的对应关系。域名可将一个IP地址关联到一组有意义的字符上去。用户访问一个网站的时候,既可以输入该网站的IP地址,也可以输入其域名,对访问而言,两者是等价的。原创 2023-02-26 22:30:00 · 829 阅读 · 3 评论 -
Java EE|TCP/IP协议栈之数据链路层协议详解
为IP模块发送和接收IP数据报;为ARP模块发送 ARP请求和接收ARP应答;为RARP发送RARP请求和接收RARP应答。实际上,各个设备之间在数据传输时,数据链路层和物理层都是必不可少的。众所周知,计算机以二进制0、1来表示信息,然而实际的通信媒介之间处理的却是电压的高低、光的闪灭以及电波的强弱等信号。把这些信号与二进制的0、1进行转换正是物理层的责任。数据链路层处理的数据也不是单纯的0、1序列,该层把它们集合为一个叫做**“帧”**的块,然后再进行传输。原创 2023-02-26 22:30:00 · 1263 阅读 · 9 评论 -
JavaEE|TCP/IP协议栈之TCP协议工作机制下
这里的34,就来不及挥手了,认为连接还在,一旦接收端接收端认为连接还在,一旦接收端有写入操作,接收端发现连接已经不在了,就会进行reset。只有确认应答的数据才可以从缓冲区删除,窗口越大,网络的吞吐量越大,传输效率越高,同时资源开销越多】在不清楚当前网络状态下,贸然发送大量的数据,是很有可能引起雪上加霜的。接收方处理能力是一个很重要的约束依据,发送方发的速度,不能超出接收方的处理能力,需要协调发送方的发送速率。我们假定这里的窗口大小是3,那么发送前3个段的时候,不需要等待任何的ack,直接发送;原创 2023-02-26 00:15:00 · 185 阅读 · 0 评论 -
Java EE|TCP/IP协议栈之网络层IP协议详解
P是整个TCP/IP协议族的核心,也是构成互联网的基础。IP位于TCP/IP模型的网络层(相当于OSI模型的网络层),它可以向传输层提供各种协议的信息,例如TCP、UDP等;对下可将IP信息包放到链路层,通过以太网、令牌环网络等各种技术来传送。IP所提供的服务大致可归纳为两类:IP信息包的传送。IP信息包的分割与重组。协议版本:ipv4、ipv6【其中v为version】原创 2023-02-26 00:30:00 · 438 阅读 · 1 评论 -
Java EE|TCP/IP协议栈之TCP协议工作机制上
前边,我们已经大概交代了TCP的报文结构。但是仍有一些字段我们不确定到底怎么理解,这里就分析TCP的内部工作机制了。TCP的内部很复杂,有很多机制,这里我们只讨论比较核心的10个机制。本篇,我们先介绍前3个。原创 2023-02-24 19:11:13 · 781 阅读 · 23 评论 -
JavaEE|TCP/IP协议栈之TCP协议端格式详解
TCP,是Transmission Control Protocol的简称,中文名是传输控制协议,是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设置的一个传输协议。互联网络与单个网络有很大的不同,因为互联网络的不同部分可能有截然不同的拓扑结构、带宽、延迟、数据包大小和其他参数。而不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。相关术语:(注意这里的延迟的概念)网络拓扑结构就是指用传输媒体把计算机等各种设备互相连接起来的物理布局,是指。原创 2023-02-21 18:38:05 · 311 阅读 · 1 评论 -
Java EE|TCP/IP协议栈之传输层UDP协议详解
UDP,是User Datagram Protocol的简称,中文名是用户数据报协议,是OSI和TCP/IP协议族参考模型中的一种无连接的传输层模型。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。原创 2023-02-20 17:31:54 · 687 阅读 · 0 评论 -
JavaEE|网络编程之套接字 TCP
Java EE|计算机网络|TCP|UDP|多线程|服务器|客户端|网络通信|Socket|……原创 2023-02-20 15:54:16 · 539 阅读 · 0 评论 -
JavaEE|网络编程之套接字 UDP
DatagramSocket|DatagramPacket|回显服务器的实现|带有业务逻辑的请求发送|Java EE|计算机网络原创 2023-02-18 19:59:47 · 518 阅读 · 0 评论 -
JavaEE|网络编程基础与Socket套接字
计算机网络|Socket|客户端服务器|Java EE|网络编程|端口号原创 2023-02-18 18:04:11 · 558 阅读 · 0 评论 -
JavaEE|网络原理初识
计算机网络基础原理|javaEE|TCP/IP|OSI|数据分发|封装分用|客户端与服务器原创 2023-02-18 10:38:10 · 416 阅读 · 1 评论 -
JavaEE|文件操作·上
文件io|java ee原创 2023-02-16 19:40:16 · 313 阅读 · 1 评论 -
Java EE|多线程代码实例之定时器与线程池
JavaEE|多线程|定时器|线程池原创 2023-01-14 16:50:14 · 744 阅读 · 14 评论 -
Java EE|多线程代码实例之单例模式与阻塞队列
JAVAEE|多线程|代码实例|单例模式|阻塞队列原创 2023-01-13 21:46:21 · 640 阅读 · 20 评论 -
Java EE|多线程之线程状态与线程安全
JAVAEE|线程状态|线程安全|锁原创 2023-01-11 23:17:00 · 951 阅读 · 19 评论 -
Java EE|多线程基本操作
thread类\jconsole\多线程原创 2022-11-30 08:41:24 · 520 阅读 · 23 评论