自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

BRSblackshoot的博客

拥抱开源,分享知识

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

原创 少女异闻录:白鹭白百合的华丽日常 v1.02 存档

少女异闻录:白鹭白百合的华丽日常v1.02 全回想记录将下面的内容保存到txt文件中,并重命名为 config.rpgsave 然后拿这个文件替换游戏www\save目录下的同名文件这东西放云盘挂了还得补,就这样直接给本体,动动手再拿去用吧有的游戏,如果有回想系统的话,其回想可能并不记录在存档文件中,而是记录在其他文件中,比如config.rpgsave这是为了方便所有存档共通回想,如果需要修改这方面的数据,但是在存档文件中找不到相关设置,不妨看一看其他文件========下面是需要复.

2022-05-12 15:30:15 8245 2

原创 yanqiyetan V1.0 存档

魇骑夜谭 V1.0 全流程剧情存档将下面的内容保存到txt文本中,将其重命名为 file1.rpgsave ,然后新建一个存档1,把刚才的文件覆盖这个档,就行了这东西放云盘挂了还得补,就这样直接给本体,动动手再拿去用吧N4IgzgnmAuCmC2IBcoD6YCGA3WBRAdhgEYA2sAJstAE4CusANCKvLPrQcWZUjfU6jYBjAPa18cap1IVkAMwwkwjZnJHV4GaAEsR+adyp0VqIluhkAwmInIAnAGYBAd235r46PafNYYIRgA.

2022-05-07 14:39:21 17104 6

原创 service包的目录结构

1 service包说明之前开发service时,只有service接口-service实现类 对应着dao接口-dao实现类现在要求拆分service为 service包 接口,纯粹的抽象类,全都是未被实现的抽象方法。 abst包 抽象包,下面的类叫抽象类。 实现service包中的接口,但是只实现对dao层进行直接调用的方法(对数据的增删改查),其他方法保持不变。 由于类里存在未被实现的抽象方法,因此被称

2021-07-26 09:48:42 1339

原创 web项目的包管理

1根目录在往后说之前,我们先说一下什么是根目录所谓根目录指的就是项目配置到tomcat时的目录,项目中设置的方式如图: 获取项目根目录的方法如下: request . getContextPath() 获得项目在服务器中的根目录,返回类型为字符串 使用代码如下: 获得的path与设置的相符: ...

2021-07-26 09:48:17 292

原创 单元测试包junit报错 java.lang.NoClassDefFoundError

junit 单元测试报错:java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing_u011954243的博客-CSDN博客报错的原因是junit4.10之后的版本不能单独引入junit 需要连带着引入hamcrest-core-1.3包或者降低junit版本到junit4.10 ...

2021-07-26 09:46:50 402

原创 javaweb VUE+ElementUI 分页组件设置 后端部分

2 后端操作后端的准备工作和第一阶段时的分页写法相似,准备好实体类,dao和dao的实现类以及sql代码,service和service的实现类(如果没有什么复杂业务,那么service基本就是直接调用dao即可)以及最后要完成servlet其中差别最大的是sql代码,需要使用拼接来动态调整查询方式2.1 实体类首先是实体类,用于储存分页信息,但是相比第一阶段①“每页显示几条“,不再是固定值,而是由用户决定进而产生变化②实体类需要注解实现get方法,其他的均不用注解实现③实体

2021-07-26 09:46:04 246

原创 javaweb VUE+ElementUI 分页组件设置 前端部分

在前端页面上使用ElementUI实现分页组件分页 | Element1组件布局代码 :current-page="nowPage" 设置当前第几页的初始值,通常为1 :page-sizes="[3, 6, 9]" 设置一个下拉列表,给用户选择每页可展示的数据量 ...

2021-07-26 09:45:26 305

原创 javaweb VUE+ElementUI 文件上传 后端部分

1文件上传在很多业务场景,用户都需要上传头像、证件照以及其他文件。文件上传就是用户通过浏览器选择需要上传的文件并将文件传输至网站服务器上的一个过程文件上传需要对请求中传的的文件流进行解析,一般会使用第三方jar包对文件流进行解析1.1 实现步骤文件上传不同于常见的form表单数据提交,后端servlet不能直接从HttpServletRequest中取到文件,需要进一步解析请求头。直接对request使用getParameter提取数据什么也取不到,要借助第三方jar包...

2021-07-26 09:43:24 977

原创 javaweb VUE+ElementUI 文件上传 前端部分

Upload 上传 | Element上传文件的方式很多,我们只说其中一种常见的。如果前端的文件的上传是同步请求,那么就要求用户填写完表单信息后将表单信息连带文件一起上传,在用户提交表单信息前,文件一直处于未上传状态,当用户提交信息时还得等待文件上传,前端功能不太友好。所以我们可以把文件上传和普通表单提交的流程分开,通过工具把文件单独上传到服务器(异步上传),并在页面接收存储的地址(相对路径),用户填完数据提交表单时,文件已上传,只需要提交普通表单即可。事实上下面使用的VUE+ElemenU

2021-07-26 09:41:10 430

原创 javaweb AXIOS的post请求方式测试

后端servlet使用了反射方法,能自动读取前端传输的json对象中约定好的一个叫type的键值对的值 然后自动执行和这个值同名的方法 前端传输的json对象 后端会被调用的方法 现在前端分别使用AXIOS.post的两种数据书写格式进行传输 格式一 格式二 ...

2021-07-26 09:39:23 237

原创 关于request和response的cookie大小不等的说明

如图,可以看到服务器发送给浏览器的cookie和浏览器保存起来的cookie尺寸不等。 可以直接给出结论:两者总是相差2个字符这是因为服务器发送过来的cookie包含了分号和空格,浏览器储存时会将这两类字符去掉,每个cookie都会因此减少两个字符如果以后去做cookie解析,这个长度需要考虑到...

2021-07-26 09:38:14 147

原创 异步请求只能使用IO流传输的原因

原生的AJAX实现中,使用了一个对象——XMLHttpRequest后面我们在写AJAX时,都是基于上层框架去实现,但是框架的核心依然是这个对象——XMLHttpRequest我们都需要实例化XMLHttpRequest对象,在这个对象中设置属性,基于这个对象的responseText方法发送数据给服务器所以异步请求其实是基于一个对象去实现的,无论是发送数据还是接收数据,都基于这个对象。如果要进行请求转发和重定向,需要改变页面的URL——而这是一个对象无法做到的。这个对象只能单纯的进

2021-07-26 09:37:51 108

原创 注解 笔记

1 注解注解到底是干什么的?_张铎-CSDN博客注解(Annotation)相当于一种标记,在程序中加入注解就等于为程序打上某种标记。标记可以加在包、类,属性、方法,方法的参数以及局部变量上。第一阶段最早在继承父类然后方法重载的时候就接触过注解。@override就是一个标识,说明这是一个重写的方法。实际编译为字节码文件时就没有用了,只是在源码进行标识和判断方法重载的格式是否正确。有一些注解则具备功能性比如@getting 和@webServlet(将servlet配置到web.xm

2021-07-25 00:21:23 93

原创 泛型 笔记

2 泛型泛型就这么简单 - SegmentFault 思否在定义属性、方式时,有一些数据无法确定数据类型,只有在使用时,才能知道是什么类型。此时就可以用泛型来代指这些数据类型,泛型可以看做一个占位符,运行时会被替换成实际放置的数据类型。泛型可以用任意的字符来表示,但是通常约定如下,实际情况要根据开发逻辑使用,正确的名字能增强代码可读性。 E 代表entity 说明这里输入的是实体对象,不是String或者Data T

2021-07-25 00:12:03 121

原创 反射 笔记

1 反射封装代码的依据就是反射和泛型,理解反射和泛型能帮助自己更好的掌握手动封装代码的方法,减少代码量,而且对于框架的源码阅读也有帮助。之前有接触过反射和泛型的概念,现在再系统说明一次以加强对这两个概念的认识反射和泛型属于java的机制,和web无关 反射通常与泛型一起使用,因为用反射封装的方法需要适用于所有数据类型,此时数据类型是不确定的,需要用泛型“占位” 反射机制最核心的源码如图1.1 获取Class对象反射中Class.forName()和ClassLoader.loa

2021-07-25 00:11:46 85

原创 异步请求中前后端数据格式说明

1 后端发送给前端无论是哪种写法,无论是哪种回调函数,服务器那边封装数据都是封装为map集合,然后借助第三方jar包将集合转为字符串型json,最后以IO流传给前端——因为是异步请求,所以都是用IO流这种异步请求的返回方法,因此只能传递字符串。 而AXIOS提供的异步请求方法在参数列表接收到的数据都是xmlHttpResponse(响应对象),里面包含了配置信息config、数据data、响应头headers、请求头request、状态码status,实际使用时得从中取

2021-07-25 00:11:20 327

原创 关于前端 后端 数据库 时间的设置与传递

Java时间日期格式转换Date转String和String转Date - Sharpest - 博客园 (cnblogs.com)java和mysql之间的时间日期类型传递 - GaoAnLee - 博客园 (cnblogs.com)sql在储存时间+日期时 使用datetime 如果后端使用Date(sql或util均可) 那么可以正常储存 但是后端需要传给前端时 需要使用@jsonField转换格式如果后端使用util.Date 前端传值给后端没问题

2021-07-25 00:11:06 2876

原创 javaweb BaseServlet 自动封装数据并调用service方法

这篇笔记是学习web开发时基于反射和泛型的产物,实际开发时不需要去造这种轮子,仅供学习引入整个项目要以数据库的表为基准,有多少张表,就要有多少个实体类,在之前的开发中,我们都是单表开发,根据功能去拆分出多个servlet、service和dao。如图就是典型的单表开发,根据功能书写多个servlet、service和dao。但是现在有很多表,如果每个表都要根据功能去写servlet,整个项目就会很冗余,也很不直观。所以我们不应该根据功能去写dao\service\servle.

2021-07-25 00:05:03 560 1

原创 动态获取方法参数表中需要的实体对象的全类名

1 理清整个封装的思路首先在循环判断中,我们做的操作就是一一识别方法的参数表各个位置上需要的都是什么数据类型,Class对象指向方法的参数表上的各个位置 如果是请求头就给请求头,如果是响应头就给响应头,如果是实体类就给实体类对象,如果是其他的情况就躺平吧,这个servlet封装方法还做不到面对那么复杂的情况,需要使用spring的四个包进行辅助,在这里先不说了。分析现状所以现在我们默认处理的方法参数列表中,只有请求头、响应头、实体类。但是一般请求头和响应..

2021-07-25 00:03:14 435

原创 自动封装请求头中的数据

封装json数据 自动将json存入对应的实体类前端除了传递请求类型,一般还会传递数据,比如将用户在页面表单填写的数据以json格式传给后端用于增删改查。例图:VUE基于AXIOS实现异步请求,将json对象传给后端,json对象中存有请求类型type以及用户提交的表单数据注意:该图仅用于说明json对象需要传递,下面说明文章主题时举例的是“修改”,不是这里图中的“添加”传统的写法:①在servlet中使用switch-case分配方法,此时与前端对接的servlet只是将编

2021-07-25 00:02:42 323

原创 javaweb 自动封装请求头中的数据到指定实体类中

在编写添加数据的方法时,我们需要根据sql的添加语句中需要的"?"去获取request请求中传过来的数据,先用set方法将其放在对象中,然后再到daoimpl下使用get方法调出数据传给sql语句。根据添加语句的不同,我们就要不断的去改这个过程中使用的set/get以及对象的成员变量,就会产生许多的可能。这一切都是重复的,近机械的操作。因此就生发出“如果java能自动将我请求头中传输的所有数据都存到指定的对象中就好了” 的想法,这样就简化了使用set函数的环节。实际上是可以实现上面说的想

2021-07-25 00:01:24 712

原创 关于onenote2016遇到的页面大片空白无法正常收缩的bug

问题示意 解决办法1:将页面中的信息复制到新的一页后 恢复正常 简单 高效 省事 解决办法2:这个办法有点麻烦,但是本质是对原来的页面的修复,不需要创建新页面,然后把旧页面的内容搬到新页面。那么旧页面到底发生了什么?使用Onetastic插件自带的功能 查看了一下两个页面的xml 发现前者多了无用的outline语句 旧页面 .

2021-07-25 00:00:50 1806 2

原创 对cookie的一些研究

1.关于cookie对象的创建cookie在实例化时只有一个有参构造函数,cookie没有set函数,只能通过这个有参构造进行键值对的设置在将key和value存入cookie对象之前,会先进行验证:如果之前有同key的cookie,会进行一个覆盖。如果key输入不合法,例如为空则报异常2.request.getCookies();的实现原理每个页面除了可能存在的由程序员设置的cookie对象外,还有一个必定存在的页面自带的cookie——JSESSIONID,由服务器自

2021-07-24 17:21:48 245

原创 涉及到添加用户(注册)的功能时,不能使用请求转发,只能使用重定向

一句话概括原理:请求转发会导致功能模块的地址依然是注册的页面,只是展示的内容是其他页面的内容,刷新页面时重载的不是其他页面,而是注册的页面,就会导致注册页面中所有的方法——包括新增用户会被重复执行。实例:请求转发时,页面内容是showUser(新页面)的内容,但是地址栏还是saveUser(旧页面)的地址,此时执行页面刷新时,地址栏是旧页面的地址,就会被重复进入saveUser,而此时请求头中依然存在表单提交的数据,就会导致数据重复提交doGet不会提示,直接重复提交数据doPos..

2021-07-24 17:17:51 269

原创 令IDEA控制台打印输出的文本对齐 以及 实现这个功能时个人的体会

String.format处理中文对齐问题_Super 米的博客-CSDN博客在控制台打印输出时,抬头和下面toString循环输出的字符串str之间的对齐可以靠/t而str之间 如果是全英文字符串 那么可以使用format指定最小长度进行对齐但是如果str中存在中文 由于format不认识中文所以会进行忽略 这就造成了字符串之间的差异 最后就导致format达不到想要的效果此时直观表现就是导致后面跟着的其他数据无法对齐要解决这个办法就需要使用工具类,对于存在中文的字符串进行

2021-07-24 17:11:49 4020

原创 哈希表的并发修改异常

Java ConcurrentModificationException异常原因和解决方法 - 那些年的代码 - 博客园 (cnblogs.com)Java ConcurrentModificationException 异常分析与解决方案_Android-CSDN博客_concurrentmodificationexception代码如下:异常如下:原因:简单来说就是当键集的个数大于1时 执行修改操作时如果是一个一个删就会出问题解决办法:单线程下 建一个..

2021-07-24 17:07:57 68

原创 基于JDBC的原生代码+反射机制,简单模拟DBUtils的实现方式

写在开头的话:现代开发基于框架,mybatis、mybatis-plus才是常用的,DBUtils其实都很少用了,这篇笔记只是我当初刚了解JAVA与数据库的连接时,基于JAVA反射机制的一些钻研,认识也并不算非常准确,仅供参考问题描述如果使用JDBC最原始的方式连接数据库,那么在执行查询的sql语句时,我们需要使用动态数组存放数据,比如下图的students对象,然后循环的将结果集中每一行数据与对象的成员变量对应,从而实现把结果集上的数据都存入对象中的目的但是对比查询全表和查询单个数据的.

2021-07-24 16:57:07 168

原创 关于死锁的粗浅理解

要尽量避免死锁的出现Java中synchronized同步的个人见解_porkczr的博客-CSDN博客Java线程同步:synchronized锁住的是代码还是对象_叉叉哥的BLOG-CSDN博客_synchronized锁的是对象还是方法当两个线程都有一把自己的锁时又互相调用对方的锁,此时又同时执行自己的方法 那么就可能互相锁死,就产生了死锁以下是死锁的图解:①首先有两个线程,它们分别有一把锁 合计两把锁②然后它们在自己的run()主体代码中分别又上了一把锁...

2021-07-24 16:22:25 79

原创 为什么有了HashMap 还产生了HashTable

有了HashMap 还产生了HashTable 是因为后者能实现线程同步 保证线程安全但是后者基本不用 因为效率很低HashTable的创建:取而代之的是ConcurrentHashMap这个新的类型提出了一个“段”的概念 通过分段来保证线程安全与效率并举ConcurrentHashMap原理 - 莫等、闲 - 博客园 (cnblogs.com)这篇文章很好地说明了取而代之的原因总之 以后在多线程要使用Map时 推荐用ConcurrentHashMapConcu.

2021-07-24 16:20:03 79

原创 LinkedList有索引 为什么查找还会慢

LinkedList根据索引查找为什么慢_alexdedream的博客-CSDN博客这是因为该索引非彼索引查看源码可以知道 LinkedList根据索引进行的操作都是,每一次for循环增加一次索引变量,然后返回item,不断循环下找到数据而非真的根据索引直接找到对应元素。假如集合size=100,要取index=40的元素,根据源码,100>>1=50,40<50,需要从前往后循环,循环40遍取出node.item.如果正好取中间那位或者排后面的,则从后往前循环,直

2021-07-24 16:17:51 1416 1

原创 ArrayList的扩容机制和移除机制

ArrayList的底层是数组,因此ArrayList的扩容机制就是依靠Arrays.copyOf()实现的 但是在具体的判断上要说明一下:当ArrayList创建出来时,如果给了初始容量,那么就会有一个初始容量如果没有设置 那么初始容量就默认为10容量设置发生在第一次添加数据前 接着就是根据代码不断向其中添加数据当第10次添加数据时,整个ArrayList就被填满了此时如果继续添加 那么在第11次添加数据前,系统就会自动对ArrayList进行扩容:从代码可以看出新的容量是

2021-07-24 16:16:10 477

原创 关于 .java .class 以及机器码

(3条消息) java通过java编译器到class再通过jvm解释器到机器码(jvm开始操作指令集)_浅释的思旭的博客-CSDN博客我们在编译器(IDE)中编写.java文件编译器自动将 .java文件编译成 .class文件 (字节码文件)jvm自动将 .class文件解释成机器码 然后jvm操作指令集执行代码java的编译器分平台 但是编译成的字节码文件不分平台 只看你有没有我要的虚拟机 有的话就能执行所以java具备一次编译,到处运行的特点(3条消息) .cl

2021-07-24 16:03:56 459

空空如也

空空如也

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

TA关注的人

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