- 博客(26)
- 收藏
- 关注
原创 List.toArray()用法详解----ArrayList转化为一个String数组
ArrayList直接转化为一个String数组如果要把一个List直接转化为Object数组,则可以直接使用Object[] o = list.toArray();如果要转化为String数组,则有以下两种方式:方法一、String[] arr = new String[list.size]; list.toArray(arr);//此时arr就有了list中的值了方法二、String[] arr = (String[])list.toArray(new String[0]);...
2022-03-25 11:25:50
1823
2
原创 bat批处理把文件从一个电脑复制到另一台电脑
1:两台电脑在同一局域网,可以互相访问。2:接收复制文件的电脑,文件夹要设置共享。代码:echo ---文件传输开始---net use \\172.16.16.20 "password" /user:"username"xcopy D:\ceshi.txt \\192.168.0.1\beifen\ /s/d/yecho ---文件传输结束---pause参数详解:192.168.0.1是接收文件的电脑ip,beifen是设置了共享的文件夹。password 远程连接密码 us
2022-02-09 17:44:24
4145
原创 添加个简单的过滤器,防止反射型 XSS攻击漏洞
web.xml 配置文件:<filter> <filter-name>XssFilter</filter-name> <filter-class>com.crazy.filter.XssFilter</filter-class> </filter> <filter-mapping> <filter-name>XssFilter</filter-name> &l
2021-12-09 10:39:34
390
原创 iReport - 无法正常启动的解决方法
问题与分析iReport目前官网最新的版本是5.6.0,适用于jdk1.7,升级到1.8就无法打开iReport客户端。百度了下,确实如此。目前官网最新的版本是5.6.0,据说有外国大神说是下个版本将会支持jdk 1.8。不过现在我就需要使用到iReport,也不可能等到下个版本出来再使用,项目已经使用了jdk 1.8,也不可能将版本降下来。一番百度后,解决办法就是单独为iReport指定低于1.8版本的jdk,这样就可以正常启动了。解决方法找到iReport的安装目录,然后将etc/irepo
2021-12-07 14:30:53
1099
原创 SQL注入 ?oracle sql语句参数,Oracle 中参数化SQL 语句 写法
为什么要参数化执行SQL语句呢?一个作用就是可以防止用户注入漏洞。简单举个列子吧。比如账号密码登入,如果不用参数,写的简单点吧,就写从数据库查找到uname和pw与用户输入一样的数据吧sql:select uname,pw where uname='inputID' and pw='inputPW';一般情况没什么问题,但如果用户输入的uname或PW带 ‘ ,这是可能就会出现漏洞,bug了比如用户输入的uname是: 1'or '1'='1这是sql语句执行的是:select id,pw
2021-12-03 14:35:33
1309
原创 jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending clas
\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class当我在 CSDN、博客园、开源中国等查阅了个遍时,无一例外是让我工程 包含javax.servlet包的JAR包,造成与Tomcat自身的servlet-api.jar的冲突,因为Tomcat的WebappClassLoader加载JAR包时会进行
2021-12-01 20:54:21
4140
2
原创 Error deploying web application directory D:\tomcat7.0.30\webapps\docs java.lang.IllegalStateExcep
不加载任何自己的项目启动即报错:严重: Error deploying web application directory D:\tomcat7.0.30\webapps\docsjava.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].Stan
2021-12-01 17:29:53
991
原创 shiro权限绕过漏洞
1.shiro权限绕过漏洞1.1.漏洞成因分析Apahce Shiro 由于处理身份验证请求时出错,存在“权限绕过漏洞”(漏洞编号:CVE-2020-11989),远程攻击者可以发送特制的HTTP请求,绕过身份验证过程,并获得对应用程序的未授权访问。1.2.解决方案1.电脑端:(1)将jdk由1.7升级至1.8,因为shiro 1.7.1所需的运行环境是1.8。(2)删除shiro开头的jar包,集成单点登录的shiro-cas 不用删(3)将shiro版本号升级至1.7.1,加入以下jar
2021-12-01 14:56:40
3292
原创 Idea 编译时报错:Error:java: Compilation failed: internal java compiler error
Idea 运行时报错:Error:java: Compilation failed: internal java compiler error大概意思是编译器内部错误问题原因分两种原因一:导致这个错误的原因主要是因为jdk版本问题,此处有两个因素,一个是编译版本不匹配,一个是当前项目jdk版本不支持。查看项目的jdkFile ->Project Structure->Project Settings ->Project或使用快捷键Ctrl+Alt+shift+S打开项目的j
2021-08-29 23:13:20
3740
原创 后台高级查询
//1.Mapper层List<Customer> queryAll(Customer customer);//2.Mapper.XML<select id="queryAll" parameterType="com.crazy.Model.Customer" resultType="com.crazy.Model.Customer"> select * from customer <where> <if test="identity!=n
2021-04-25 06:51:31
205
原创 java集合
文章目录java集合一、集合和数组的区别二、Set和List的区别java集合概念:对象的容器,实现了对对象的操作,类似于数组。一、集合和数组的区别1.数组长度固定,集合长度不固定。2.数组可以存储基本类型和引用类型,集合只能引用类型。二、Set和List的区别Set 接口实例存储的是无序的,不重复的数据。List 接口实例存储的是有序的,可以重复的元素。Set检索效率低下,删除和插入效率高,插入和删除不会引起元素位置改变 <实现类有HashSet,TreeSet>。
2021-04-23 07:49:50
126
原创 Cannot resolve plugin org.apache.maven.plugins: maven-resources-plugin:3.2.0
SpringBoot项目,Maven构建时报错Cannot resolve plugin org.apache.maven.plugins:maven-resources-plugin:3.2.0报红处理办法:在pom.xml文件中的 节中添加阿里的环境仓库:<repositories> <repository> <id>alimaven</id> <url>http
2021-01-20 11:57:09
2202
原创 对称加密和非对称加密
对称加密加密方和解密方使用相同的秘钥常用的算法:DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合。3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高特点:速度快,适合大数量级的加解密,安全性中等问题:秘钥管理比较难非对称加密加密方和解密方使用不同的秘钥(每一端
2020-12-23 21:52:17
447
原创 Http和Https
文章目录一、HTTP1、常用的HTTP方法有哪些?2、GET方法与POST方法的区别3、HTTP请求报文与响应报文格式4、常见的HTTP相应状态码5、HTTP1.1版本新特性6.Http协议实现的原理机制二、Https1、HTTP的缺点与HTTPS2、HTTPS的SSL过程3、为什么数据传输是用对称加密?4、本地随机数被窃取怎么办?一、HTTPhttp请求由三部分组成,分别是:请求行、消息报头、请求正文HTTP(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式
2020-12-23 21:38:39
311
1
原创 synchronized
synchronized能写在哪里?锁分别是什么?1.可以写在代码块上,锁类的实例对象2.可以写在类上,锁类对象3.可以写在实例方法上,锁类的实例对象4.可以写在静态方法上, 锁类对象
2020-12-23 21:10:57
356
转载 Stack描述及对外接口
Stack–extends Vector底层为数组结构(因为Vector是ArrayList的线程安全版本),先进后出,线程安全的。Stack中的几种操作(对外接口)push 将元素压入栈pop 将栈顶元素弹出来(获取并删除栈顶元素),如果栈为空,则抛出异常peek 返回栈顶元素,如果栈为空,抛出异常empty 判断栈是否为空search 返回离栈顶最近的元素到栈顶的距离转自:https://blog.csdn.net/qq_28411869/ar
2020-12-23 19:37:45
147
转载 B+树相比B树的优势
B+树的优势在于查找效率上,具体说明: 首先,B+树的查找和B树一样,类似于二叉查找树。起始于根节点,自顶向下遍历树,选择其分离值在要查找值的任意一边的子指针。在节点内部典型的使用是二分查找来确定这个位置。 (1)不同的是,B+树中间节点没有卫星数据(索引元素所指向的数据记录),只有索引,而B树每个结点中的每个关键字都有卫星数据;这就意味着同样的大小的磁盘页可以容纳更多节点元素,在相同的数据量下,B+树更加“矮胖”,IO操作更少 (2)、其次,因为卫星数据的不同,导致查询过程也不同;B树的查找只
2020-12-23 19:14:27
2924
1
转载 单例模式
单例模式,顾名思义就是只有一个实例,并且她自己负责创建自己的对象,这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。下面我们来看下有哪几种实现方式吧。核心代码:构造方法私有化,private。1、懒汉式,线程不安全/** * 这种方式是最基本的实现方式,这种实现最大的问题就是不支持多线程。 * 因为没有加锁 synchronized,所以严格意义上它并不算单例模式。 */public class Singleton { //构造函数私有化 private Sin
2020-12-20 16:15:02
78
1
原创 ==和equals的区别
1)对于==,比较的是值是否相等如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;如果作用于引用类型的变量,则比较的是所指向的对象的地址2)对于equals方法 ,注意:equals方法不能作用于基本数据类型的变量,equals继承Object类,比较的是是否是同一个对象如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容...
2020-12-16 10:57:09
204
原创 String、StringBuffer与StringBuilder之间区别
StringStringBufferStringBuilderString的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且浪费大量优先的内存空间StringBuffer是可变类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产生新的对象。每个StringBuffer对象都有一定的缓冲区容量,当字符串大小没有超过容量时,不会分配新的容量,当字符串大小超过容量时,会自动增加容量可变类,速度更快不可变可变可变线...
2020-12-16 09:10:47
76
原创 java面试基础
文章目录1.什么是Java2.JVM、JRE和JDK的关系3.什么是字节码?采用字节码的最大好处是什么4.先看下 java 中的编译器和解释器:5.Java应用程序与小程序之间有那些差别?6.Java和C++的区别1.什么是JavaJava是一门面向对象编程语言,不仅吸收了C++ 语言的各种 优点,还摒弃了C++ 里难以理解的 多继承、指针 等概念,因此Java语言具有 功能强大 和简单易用两个特征。2.JVM、JRE和JDK的关系JVMJava Virtual Machine是Java虚拟机
2020-12-13 09:26:40
423
原创 MySQL的三种常见引擎以及Innodb和Myisam的区别
一、1.常用的3种2.InnoDB、 Myisam、 Memory3.InnoDB跟Myisam的默认索引是B+tree,Memory的默认索引是hash区别:1.InnoDB支持事务,支持外键,支持行锁,写入数据时操作快,MySQL5.6版本以上才支持全文索引2.Myisam不支持事务。不支持外键,支持表锁,支持全文索引,读取数据快3.Memory所有的数据都保留在内存中,不需要进行磁盘的IO所以读取的速度很快, 但是一旦关机的话表的结构会保留但是数据就会丢失,表支持Hash索引,因此查找速
2020-12-12 21:50:31
394
转载 Mapper.xml之BaseResultMap
今天测试mybatis接口时遇到一个小问题,花了好长时间Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [E
2020-11-08 12:56:41
2355
原创 Mybatis GENERATOR
Mybatis GENERATOR 逆向工程生成文件失败,控制台并没有抱任何错误将工程的配置文件 *.xml里的targetpackage属性里的相对路径改为绝对路径**<!-- 指定javaBean生成位置 --> <javaModelGenerator targetPackage="com.atguigu.curd.bean" targetProject=".\src\main\java"> <property name="enableSubPa
2020-11-08 08:56:35
133
转载 解决方案 git@github.com出现Permission denied (publickey)
解决方案 git@github.com出现Permission denied (publickey)分享一下个人在Git@GitHub时ssh的秘钥问题的解决方法:我在使用命令ssh-keygen -t rsa -C “youremail@example.com” 生成SSH Key时,会在Enter file in which to save the key ("当前所在路径"): “给...
2020-04-02 10:58:15
425
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人