自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 收藏
  • 关注

原创 SpringBoot整合JWT

JWT 就是上述痛点的解决方案之一,客户端在请求服务端进行登录操作时,服务端验证用户的账号和密码,验证成功后生成 token 返回给客户端,之后浏览器的每一次操作都会在请求头中带上这个 token,服务器会验证该 token 信息,验证成功后才会返回资源给浏览器。JWT 的开销非常小,可以轻松在不同的域名中传递,所以在单点登录(SSO)中用到比较广泛,信息交换在通信的双方之间使用JWT对数据进行编码是一种非常安全的方式,由于它的信息是经过签名的,可以确保发送者发送的信息是没有经过伪造的。

2023-04-17 08:20:00 2087 1

原创 设计模式-工厂模式

(1)原则:开闭原则(对扩展开放,对修改关闭)、依赖倒置原则(要面向接口编程,不要面向实现编程)、迪米特法则(只与你的直接朋友交谈,不跟陌生人说话;即使两个类之间有部分关系不要直接关联,建立第三方类,降低程序模块间的耦合度)(2)将选择实现类,创建对象统一管理和控制。从而将调用者跟我们的实现类解耦。(1)实例化对象不使用new,用工厂模式代替。1.实现了创建者和调用者的分离。

2023-04-17 08:16:51 164

原创 链设计模式-装饰模式、职责链设计模式

每个类只需要处理自己该处理的工作,不该处理的传递给下一个对象完成,明确各类的责任范围,符合类的。简单通俗,装饰模式就是动态的对一个原有对象添加一些额外的职责;2.实现方式:将一个类的对象嵌入到另外一个新的对象之中,由另外一个对象(原有对象)来决定是否调用嵌入对象的行为对自己的扩展功能,这个新的对象为装饰器(装饰机制)。为了使得装饰器与它所装饰的对象客户端来说是透明的,装饰器类和被装饰必须实现相同的接口,客户使用时不需要知道一个类的对象是否被装饰过,可以一致性地使用装饰的对象以及被装饰的对象。

2022-11-10 21:24:36 616 1

原创 Mybatis要点总结

深度延迟: 执行对主加载对象的查询时,不会执行对关联对象的查询。1.什么是延迟加载:Mybatis中的延迟加载,也称为懒加载,是指在进行表的关联查询时,按照设置延迟规则推迟对关联对象的select查询,例如进行一对多查询时,之查询出一方数据,当程序中需要多方数据时,mybatis在发出sql语句进行查询,这样延迟加载就可以减少对数据库压力。缓存的意义是将用户查询的数据放入缓存(内存)中,用户再去查询相应的数据就不会直接从关系数据库中查询,直接从缓存中查询,从而提高了并发开发中的系统的性能问题。

2022-11-05 13:49:41 620

原创 redis:内存穿透、内存击穿、内存雪崩以及各数据类型应用场景

redis存储数据类似于map集合是以键值对的形式进行存储数据,当用户输入查找的数据key首先在redis缓存数据库中进行查找,如果redis数据库中没有对应的key就会下层到数据库中执行sql代码在对应的数据库(例:mysql)中按照对应的where条件查询数据,如果最后在数据库中也没有找到对应的数据,则这就是redis内存穿透。一个长期没有被访问的数据或缓存时间到期的数据,从redis缓存数据库中删除时,然后又有大量的数据并发访问改数据时,就会访问到底层数据库,造成数据库服务器负荷量大幅度增加。

2022-10-18 17:42:20 2946 1

原创 Ajax学习

值的取值类型:数字(整数或浮点数) 字符串(在双引号中) 逻辑值(true或false) 数组(在方括号中){"persons":[{}],{}} 对象(在花括号中){"name":"张三","age":23,"gender":"男","address":{"province":"扬州"....}};(1)redis是一个内存数据库,当服务器重启,数据会丢失,将redis内存中的数据持久化保存到硬盘中。AOF:日志记录的方式,可以记录每一条命令的操作,可以每一次命令操作后,持久化数据。

2022-10-17 10:36:05 334

原创 java.sql.SQLException: Unknown initial character set index ‘255‘ received from server. Initial clien

mysql服务器收到的字符集与客户端字符集不一致所导致;

2022-10-17 09:37:35 686 1

原创 jedis: java.net.SocketTimeoutException: connect timed out

如果忘记打开了,在redis文件中点击:redis-server.exe 打开服务器端。最后找了半天发现是在创建Jedis对象连接redis时需要将redis服务端开启!keys *查看当前redis数据库中的所有键,然后获取username的值就得到正确连接成功了。网上一堆都是解决防火墙问题!千万不要忘记将redis服务器打开!运行之后在redis打开文件中打开客户端。打开后在测试类中测试一下内容。

2022-10-14 14:47:47 817

原创 JQuery学习

JQuery框架相关知识点:框架、dom操作,以及高级JQuery动画效果,遍历,事件绑定

2022-10-13 09:25:33 1550

原创 JQuery练习案列

内部实现事件函数,并采用类选择器,将表中复选框的checked属性值设置为与当前复选框的值一样。在

2022-10-13 09:14:07 414

原创 Filter:过滤器学习

具体资源路径: /index.jsp(只用访问Index.jsp资源时,过滤器才会被执行)后缀名拦截: *.jsp 访问所有后缀名jsp文件时,过滤器都会被执行。web.xml配置: 谁定义在上边,谁先执行。拦截目录:/user/* 访问/user下的所有资源时,过滤器都会被执行。init:在服务器启动后,会创建Filter对象,调用init方法,执行一次。doFilter:在每一次请求拦截资源时,会执行,执行多次。如果有两个过滤器:过滤器1和过滤器2。

2022-10-11 10:47:05 227

原创 会话技术(cookie、Session)及MVC开发模式

(4)在一个tomcat服务器中,部署了多个web项目,其他无关项目是不能获取到指定项目的cookie,只有对应的项目才能获取到对应的cookie值;遍历容器(增强for循环):属性:items:容器对象、var:容器中元素的临时变量(元素值)、varStatus:循环状态对象(index:容器中元素索引,从0开始;遍历容器(增强for循环):属性:items:容器对象、var:容器中元素的临时变量(元素值)、varStatus:循环状态对象(index:容器中元素索引,从0开始;

2022-09-30 15:15:58 546

原创 response响应设置编解码问题

response无法识别解码问题

2022-09-29 09:45:02 1771

原创 idea翻译插件Translation Tkk错误

然后将hosts文件右击取消只读勾选,将hosts移至桌面(原因:在c盘目录下不能进行相应的修改,修改完成后再将文件移回原来的目录下),用记事本打开,在最后加上下面两句内容即可。网上一大部分都是一样的在idea里修改Translation的相关配置以及注册什么百度翻译和网易翻译,其实都没有相应的作用(百度翻译和网易翻译确实有效,但需要付费的,idea配置谷歌是不需要付费的,所以干嘛要做大冤种,看看我的解决办法吧。最后解决问题后的效果。

2022-09-29 09:25:58 594 9

原创 idea控制台乱码、读取cookie乱码

idea搭配tomcat控制台打印乱码问题,以及控制台读取cookie内容乱码问题

2022-09-28 15:02:43 564

原创 tomcat、servlet、Http协议

(状态码都是3位数字)1xx~5xx 1xx:服务器接收客户端消息,但没有接收完成,等待一段时间后,发送1xx多状态码 2xx:成功,代表:200 3xx:重定向。(状态码都是3位数字)1xx~5xx 1xx:服务器接收客户端消息,但没有接收完成,等待一段时间后,发送1xx多状态码 2xx:成功,代表:200 3xx:重定向。值:in-line(默认值,在当前页面内打开) attachment:以附件形式打开响应体,文件下载。

2022-09-27 16:27:08 368

原创 设计模式-单列设计模式

是前辈们对代码开发经验的总结,是解决特定问题的一系列套路,它不是语法规定,而是一套用来提高代码复用性、可维护性、可读性、稳健性以及安全性的解决方案。3.行为模式:模板方法模式、命令模式、迭代器模式、观察者模式、中介模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。2.结构型模式:适配器模式,桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。1.创建型模式:单列模式、工厂模式、抽象工厂模式、建造者模式、原型模式。(2)问题:描述了该模式的应用环境,描述一个模式的前因后果;

2022-09-26 08:50:08 208

原创 JavaSCript

④比较运算符:>、=、

2022-09-22 20:25:37 489

原创 CSS页面优化构建一个注册页面

1.首先是给整个页面插入一张背景图;在标签中写一个标签,用body{}选择器插入一张图片设置大小占整个布局的全部,3.后面就是继续定义内层div写如注册内容,其中内层涉及到了浮动,需要设置整个页面在浮动后大小不变需要设置:box-sizing: border-box;需要设置一下其背景颜色为白色,以及边框大小和颜色,设置好后,继续调整一下表格与在整个页面的位置。4.其余就是根据对应的class或者id设置字体大小、颜色以及位置。

2022-09-19 09:50:35 1750

原创 HTML&css

状态:link:初始化的状态;a:定义一个超链接 属性:herf:指定访问资源的URL(统一资源定位符) target:指定打开资源的方式(——self:默认值,打开当前页面;属性:color:颜色,width:宽度,size:高度,align:对齐方式 (center:居中,left:左对齐,right:右对齐)(2)B/S:Browser/Server 浏览器/服务器端:只需要一个浏览器,用户通过不同的网址(URL),客户访问同的服务器程序。错误写法:

2022-09-19 08:46:40 176

原创 校园兼职平台(三层架构)

管理员还可以调整兼职的逾期费用,每天逾期扣除的费用相同,比如:原定一份兼职总薪资1000元,工作要求10天完成,逾期1天扣除100元,调整后一天扣除200元(系统管理员登录成功之后可以把所有公司发布的兼职信息录入到平台,录入信息包括:营业执照编号、公司名字、岗位名称、兼职类型、兼职等级、工作内容、需求人数、工作时间等。系统提前录入了一些管理员或者学生的信息在系统中,但是未全部录入,所以后续需要注册的用户需要已经录入的管理员登录平台进行信息录入,系统录入仅需要学号/教师编号和姓名即可,此信息供用户注册使用。

2022-09-14 20:32:35 825

原创 输入一个矩阵,按照从外向里依顺序一次打印

然后纵向从上而下打印,第一个元素未从左至右横向打印的最后一个元素,所以总向打印应该从第二个元素开始,即为二位数组第二行最后一个元素,依次纵向打印即为:第k行(第k个一维数组)中的最后一个元素;最后从下而上纵向打印与上不同之处为第一个元素以及最后一个元素都已打印过,只需要打印中间部分其索引号空间为:二位数组总长度减1再减1,第一个减一是因为,索引号从零开始,第二个减一是因为最后一个元素已打印过,减i是为了避免上一次打印过的再次打印;输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,

2022-09-13 09:08:37 381

原创 Git远程码云与本地交互

注意:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal: refusing to merge unrelated histories ),解决此问题可以在git pull命令后加入参数--allow-unrelated-histories。(2)从远程仓库克隆:在自己想要保存的的目录下打开Git Bash执行git clone 网址,回车在对应的文件下出现你所要克隆的文件时,则克隆成功,第一次克隆时需要登录自己在码云的账户。

2022-09-02 17:18:02 262

原创 三层架构

为了符合“高内聚、低耦合”的基本思想,将没跟功能模块划分为:表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)三层架构,各层之间采用接口相互访问,并通过对象模型的实体类(Model)作为数据传递的载体,不同的对象模型的实体类一般对应于数据库的不同表,实体类的属性与数据库表的字段名一致。是数据库表的映射对象,在信息系统软件实际开发的过程中,要建立的对象实例,将关系数据库表采用对象实体化的方式展现出来,辅助软件开发中各个系统功能的控制与操作执行。(1)提高了模块内元素的结合度,降低了模块间的耦合性。..

2022-09-01 17:23:15 218

原创 JDBC

(1)JDBC(Java Database Connectivity)是一个独立于特定数据库管理系统、通用的SQL数据库存取和操作的公共接口(一组API),定义了用来访问数据库的标准Java类库,(java.sql,javax.sql)使用这些类库可以以一种标准的方法、方便地访问数据库资源。大多数情况下,特别是企业级应用,**数据持久化意味着将内存中的数据保存到硬盘**上加以”固化”**,而持久化的实现过程大多通过各种关系数据库来完成**。(1)数据库连接池的基本思想:就是为数据库连接建立一个“缓冲池”。.

2022-08-31 20:25:23 556

原创 JDBC连接池c3p0连接异常和日志处理

如果在对应的xml文件中url后添加:?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC&useSSL=falser时需要添加转义字符:&创建完成后,在对应的主方法中调用该方法就能完美处理日志(将调用部分放在代码块中优先执行)处理方式:需要在url后添加:?如果只有其中一个问题取其一即可;如果问题都有全加上就能完美处理问题。1.c3p0连接数据库由于时区没限制报出的错误。2.C3P0采用配置文件连接数据库。...

2022-08-30 20:55:40 806 1

原创 索引与sql的优化

(2)主键顺序插入:因为innodb类型的表是按照主键的顺序存储的,所以导入的数据按照主键的顺序排列,可以有效的提高导入数据的效率,如果innoDB表没有主键,那么系统会自动默认创建一个内部列作为主键,所以如果可以给表创建一个主键,将可以利用主键顺序插入以提高导入数据的效率;尽量减少额外排序,通过索引直接返回数据,where条件和order by 使用相同的索引,并且order by的顺序和索引的顺序相同,且order by的字段要么都是升序,要么都是降序。如果没有索引,则应该考虑增加索引;...

2022-08-25 17:07:18 1515

原创 TCL数据事务语言要点总结与DQL92连接查询与99连接查询的差异

①外连接查询的结果为主表中所有的记录,如果从表中有与之配对的结果则显示匹配的结果;4.持久性:指事务一旦提交,则他所修改的数据则会是永久的将不会因接下来的任何操作以及数据库故障影响。(3)幻读:一个事务读取数据时,另外一个事务对这组数据进行更新导致第一个事务读到了没有更新的数据。3.隔离性:指事务的操作以及其实用的数据不受其他并发事务的影响,并发事务之间因该相互隔离;1.隔离级别产生的原因:多个并发事务同时操作同一个数据库中的同一组数据造成的并发问题;①等值连接:多表等值连接结果为多表的交集部分。

2022-08-24 20:38:57 150

原创 关卡17:数据库

其中M代表整数部分加小数部分总长度(超出插入临界值),D代表小数部分的长度(超出则四舍五入)M和D均可省略,decimal省略默认为(10,0),定点数的精确的较高。⑦foreign key:外键:用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值,在从表中添加外键约束,用于用主表中的某列值;⑤日期型:date(日期),datetime(日期加时间,范围(1000-9999)),timestamp(日期加时间,范围(1970-2038)),time(时间),year(年)

2022-08-24 20:06:20 296

原创 校园兼职平台——JavaSE项目

管理员能够添加平台用户信息到系统,本平台是针对学生的软件,所以能够注册的只能是学生,所以平台需要提前将学生信息录入系统,用户才能注册账号,如果未能及时录入信息照成无法注册,那么就需要联系管理员进行信息录入。:包括兼职人员设置、兼职的金额设置、兼职的时间录入以及兼职的其他信息录入。兼职信息投放:管理员可以把所有公司的兼职招聘信息发布到网上,根据公司的需求设置岗位所需人员,工资以及兼职的时间段,比如发传单,这份兼职需要周一到周五的上午9点至11点工作,那么在这个时间段已经有了其他工作的用户就不能申请该工作。..

2022-08-17 09:19:47 318

原创 mysql安装与启动问题

mysql的下载安装与配置出现问题的解决方案

2022-08-16 15:49:24 493

原创 集合的多态与类的多态区别

编译看父类:系统编译时会找父类中是否有这重写方法,有了之后执行的时候就会看子类了,子类对其方法进行了重写,系统默认为子类方法,如果要想用父类中的eat方法,就得必须用关键字super(在子类的eat方法中添加此关键字)调用父类方法;这里null是因为我们在子类中定义的name是String类型的,创建无参对象时(后面未对其属性赋值)系统会默认为其数据类型的值,String的默认数据就是NULL。(1)多态的定义:必须有继承或者实现关系,有方法重写,有父(类/接口)引用指向子类(实现类)对象。...

2022-08-15 09:49:22 164

原创 关卡十五:反射基础知识

3)缓存机制:保证所有加载过程的Class都会被缓存,当程序需要某个Class对象时,类加载器先从缓存区中搜索该Class,只有当缓存区中不存在该Class对象时,系统才会读取该类对应的二进制数据,并将其转换成Class对象,存储到缓存区。1.类的初始化(类的加载):当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过类的加载,类的连接,类的初始化这三个步骤来对类进行初始化。(4)类加载器的继承关系:System的父加载器为Platform,而Platform的父加载器为Bootstrap。...

2022-08-04 17:00:39 53

原创 反射基本运用

3. 通过newInstance的方法创建File对象,并创建E:\\DELL\\后端关卡8-16\\关卡15_反射思想\\01_反射\\课后练习\\mynew.txt文件。②首先创建一个类的对象,然后通过对象名.getClass()方法实例化(Classc=Class.forName("包名.类名");二、反射获取File类,并调用其中带参方法创建对象,调用其中方法创建一个文件。1. 利用Class类的forName方法得到File类。答:①Class c=类名.class;...

2022-08-04 16:59:56 101

原创 猜数小游戏程序

3.开始猜数游戏进入猜数游戏,其中会有充值和猜数开始;充值会给出相应的充值方案,供用户参考;猜数开始会给出用户剩余猜数游戏次数,根据用户输入的数据判断是否猜数正确;2.登录成功后进入游戏主菜单页面,有修改密码和赞助作者以及开始游戏等子功能。1.首先实现登录注册功能,对其密码格式限制。IO流小实验:猜数小游戏程序。...

2022-08-03 11:14:57 848

原创 关卡十四:io流

创建一个新的PrintWriter out:字符输出流 autoFlush: 一个布尔值,如果为真,则println , printf ,或format方法将刷新输出缓冲区。(1)BufferedWriter:将文本写入字符输出流,缓冲字符,以提供单个字符,数组和字符串的高效写入,可以指定缓冲区大小,或者可以接受默认大小。默认值足够大,可用于大多数用途。(2)BufferedReader:从字符输入流读取文本,缓冲字符,以提供字符,数组和行的高效读取,可以指定缓冲区大小,或者可以使用默认大小。.

2022-08-03 11:14:10 101

原创 获取目录下文件与指定后缀名相同的文件绝对路径,给定目录和其子目录下一个文件,在与文件同目录下创建新文件

根据题目所提供的目录用递归方法,判断此目录下的内容是文件还是目录,如果是文件则获取它的后缀名,与指定的后缀名相比较,如果相同则打印出该文件的绝对路径,反之则不需打印;如果目录下的内容是目录,则采用了递归方法调用方法本身,重复上面的步骤,判断子目录下的是文件还是目录;用递归方式一直重复上述步骤最终就能获取到相应的文件绝对路径。判断指定目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称。......

2022-07-29 10:25:33 149

原创 关卡13容器集合

就是将类型由原来的具体的类型参数化,然后在使用/调用时传入具体的类型。3)两元素之间的哈希值相同,就通过.equals()方法比较两元素的内容是否相同,不同则存入,相同则不存入,确保了元素的唯一性。Iteratoriterator()返回此集合中元素的迭代器,通过集合的iterator()方法得到。(2)用于允许程序员沿任一方向遍历的列表迭代器,在迭代期间修改列表,并获取列表中迭代器的当前位置。2)所在位置元素的哈希值与需要加入的元素的哈希值进行比较,不同直接加入,相同进入第三步。...

2022-07-28 15:57:12 81

原创 项目开发团队分配管理系统

实现员工的添加(根据职业添加(无,程序员,设计师,架构师))实现员工的修改(至少修改员工的姓名,年龄,工资)实现员工的删除(注意员工id需要动态显示,也就是删除后,员工id需要更新)实现员工的查看(显示所有数据)(5)组建过程包括将成员插入到团队中,或从团队中删除某成员,还可以列出团队中现有成员的列表,开发团队成员包括架构师、设计师和程序员。---------------------添加成员---------------------(1)软件启动时,首先进入登录界面进行注册和登录功能。......

2022-07-23 11:19:06 314

原创 常用类与异常体系

1)定义一个日期工具类(DateUtils),包含两个方法把日期转换为指定格式的字符串;把字符串解析为指定格式的日期,然后定义一个测试类(DateDemo),测试日期工具类的方法。所有类都直接或者间接的继承自该类,换句话说,该类所具备的方法,所有类都会有一份。alt+insert选择equals()andhashCode(),IntelliJDefault,一路next,finish即可。sout(对象名);publicstaticintmax(inta,intb);...

2022-07-18 10:22:14 75

空空如也

空空如也

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

TA关注的人

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