java

DOM解析XML报错Content is not allowed in prolog解决方案详解

2020-10-17
报错内容为: Content is not allowed in prolog. Nested exception: Content is not allowed in prolog 网上所述总结来说就是解析内容内包含BOM.这个标记是看不到的,流里面有这个标记而已. BOM:Byte Order Mark,中文名字节顺序标记.UCS规范建议在传输字节流前,先传输BOM来判断字节顺序. 其实UTF-8是不需要用BOM来表明字节顺序的,但是可以 用BOM来表明编码方式.BOM的UTF-8编码是EF

Mybatis传入List实现批量更新的示例代码

2020-10-17
Dao层写法 /** * 批量更新新库存 * @param list * @return */ int updateNewStock(@Param(value = "list") List<GreenBeanMsg> list); xml具体实现代码 <update id="updateNewStock" parameterType="java.util.List"> <foreach collection=&quo

Servlet机制Pushlet原理及用法详解

2020-10-17
Pushlet(一种comet 架构的实现)是基于Servlet 机制,数据从server端的Java 对象直接推送(push)到客户端浏览器的(动态)HTML 页面,而无需任何Java applet 或者插件的帮助. 在MyEclipse中创建工程.附件包含了从官方下载的Pushlet包已经本次的源码包,直接导入到开发工具即可. 在创建的工程中增加pushlet.jar,log4j.jar.拷贝pushlet.properties,sources.properties到WEB-INF下.拷贝a

Spring 配置文件字段注入到List、Map

2020-10-17
今天给大家分享冷门但是有很实小知识,Spring 配置文件注入list.map.字节流. list 注入 properties文件 user.id=3242,2323,1 使用spring el表达式 @Value("#{'${user.id}'.split(',')}") private List list; yaml 文件 在yml配置文件配置数组方式 number: arrays: - One - Two - Three @Value("${number.arrays}

基于JDOM生成解析XML过程解析

2020-10-17
JDOM是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析.生成.序列化以及多种操作. JDOM 直接为JAVA编程服务.它利用更为强有力的JAVA语言的诸多特性(方法重载.集合概念以及映射),把SAX和DOM的功能有效地结合起来. Jdom是用Java语言读.写.操作XML的新API函数.Jason Hunter 和 Brett McLaughlin公开发布了它的1.0版本.在直觉.简单和高效的前提下,这些API函数被最大限度的优化.在接下来的篇幅里将介绍怎么用Jdom去

如何基于FTP4J实现FTPS连接过程解析

2020-10-17
FTPS: 一种多传输协议,相当于加密版的FTP.当你在FTP服务器上收发文件的时候,你面临两个风险.第一个风险是在上载文件的时候为文件加密.第二个风险是,这些文件在你等待接收方下载的时候将停留在FTP服务器上,这时你如何保证这些文件的安全.你的第二个选择(创建一个支持SSL的FTP服务器)能够让你的主机使用一个FTPS连接上载这些文件.这包括使用一个在FTP协议下面的SSL层加密控制和数据通道.一种替代FTPS的协议是安全文件传输协议(SFTP).这个协议使用SSH文件传输协议加密从客户机到服

详解Mybatis 传递参数类型为List的取值问题

2020-10-17
问题描述: 参数传递为List时: 当传递一个 List 实例或者数组作为参数对象传给 Mybatis.此时,Mybatis 会自动将它包装在一个 Map 中,用名称在作为键.List 实例将会以"list" 作为键,而数组实例将会以"array"作为键.所以,当我们传递的是一个List集合时,mybatis会自动把我们的list集合包装成以list为Key值的map. DAO 层: List<User> selectUserByIDs( List ID

浅谈java对象结构 对象头 Markword

2020-10-17
概述 对象实例由对象头.实例数据组成,其中对象头包括markword和类型指针,如果是数组,还包括数组长度; | 类型 | 32位JVM | 64位JVM| | ------ ---- | ------------| --------- | | markword | 32bit | 64bit | | 类型指针 | 32bit |64bit ,开启指针压缩时为32bit | | 数组长度 | 32bit |32bit | header.png compressed_header.png 可以看到

Java 格式化输出JSON字符串的2种实现操作

2020-10-17
1 使用阿里的FastJson 1.1 项目的pom.xml依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.58</version> </dependency> 1.2 Java示例代码 (1) 导入的包: com.alibaba.fastjson.JSON; import

浅谈Java开发中的安全编码问题

2020-10-16
1 - 输入校验 编码原则:针对各种语言本身的保留字符,做到数据与代码相分离. 1.1 SQL 注入防范 严重性高,可能性低. (1) 参数校验,拦截非法参数(推荐白名单): public String sanitizeUser(String username) { return Pattern.matches("[A-Za-z0-9_]+", username) ? username : "unauthorized user"; } (2) 使用预编译: Stri

Java 手动解析不带引号的JSON字符串的操作

2020-10-16
1 需求说明 项目中遇到了一批不带引号的类JSON格式的字符串: {Name:Heal,Age:20,Tag:[Coding,Reading]} 需要将其解析成JSON对象, 然后插入到Elasticsearch中, 当作Object类型的对象存储起来. 在对比了阿里的FastJson.Google的Gson, 没找到想要的功能 ( 可能是博主不够仔细, 有了解的童学留言告诉我下呀

Java如何基于反射获取对象属性信息

2020-10-16
先建立一个类,有四种属性: private int id; private String name; private byte by; private short st; 以下方法,创建一个对象,然后打印该对象的属性名字,属性值,和属性的类型: public class T { public static void main(String[] args) throws Exception { User u = new User(); u.setId(1); u.setName("cc"

Intelli IDEA安装Scala插件并安装Scala软件和配置环境变量的详细教程

2020-10-16
下载IDEA插件 IDEA插件 选择版本号 下载与IDEA版本号相近的插件 打开IDEA,导入下载好的插件在File下找到setting 在Plugins中选择Install plugins from disk 放入下载好的压缩包 点击ok,完成插件的安装 下载Scala软件并配置环境变量 Scala软件下载 安装到本地配置环境变量 测试Scala是否安装成功 创建Scala工程测试 在File中选择New下的Project 选择scala下的IDEA 第一次创建Scala工程时会发现这儿是空的

基于Java信号量解决死锁过程解析

2020-10-16
死锁在多线程的情况下,会出现数据不同步情况, 而为了避免这种情况,之前也说了:界区实现方法有两种,一种是用synchronized,一种是用Lock显式锁实现. 而如果不恰当的使用了锁,且出现同时要锁多个对象时,会出现死锁情况,如下: package lockTest; import java.util.Date; /** * 崔素强 * @author cuisuqiang@163.com */ public class LockTest { public static String obj1

基于jfreechart生成曲线、柱状等图片并展示到JSP

2020-10-16
虽然现在JS做报表和图形展示已经非常普遍和漂亮了,但是不能忽略有jfreechart 这样一种东西! 这些翻阅资料,在看以前写的示例时发现了关于jfreechart 的简单示例,不管怎样发上来分享一下! 这个示例使用JSP和Servlet做后台和前台展示,下面有源代码可以直接运行! 生产线型趋势图: package com.xidian.servlet; import java.awt.Color; import java.awt.Font; import java.io.*; import j

mybatis plus怎么忽略映射字段

2020-10-16
其实mybatis plus是比mybatis优秀的mybatis有的,他全有,它没的,或者不优秀的地方,mybatis plus全优秀,所以晚的总比早的好. 今天要说的是: 忽略字段问题,我被这个坑了好长时间,我开发项目呐有个需求是忽略数据库中字段,但是实体类还要有,我操,我目前的知识告诉我,@Transient这个是很好的选择,我操,我于是,开始搞,忘了说了,我的数据库中间件是mybatis plus,搞的我烦,先是看网上的,发现无论在字段上加还是在get方法上加,都不行,最后我配置文件又试

详解Spring与Mybatis的整合方法(基于Eclipse的搭建)

2020-10-16
项目工程总览: 项目路径建的包不是唯一,只要之后配置的路径映射正确即可 Emp.java <properties> <spring.version>5.1.5.RELEASE</spring.version> <mybatis.version>3.4.6</mybatis.version> <log4j.version>1.2.17</log4j.version> </properties> <depen

SpringBoot快速配置数据源的方法

2020-10-16
SpringBoot如何快速配置数据源:有如下两种方式: 通过spring-boot-starter-jdbc快速配置数据源 自定义数据源DataSource 首先我们需要明确数据源DataSource有什么作用: 通过DataSource可以获取数据库连接Connection 通过DataSource创建JdbcTemplate操作数据库 实际项目中,我们在配置数据源的时候会指定数据库连接池,比如流行的Hikari(spring默认的数据库连接池).C3p0.Dbcp2以及阿里巴巴的Druid

你所不知道的Spring自动注入详解

2020-10-16
自动注入和@Autowire @Autowire不属于自动注入! 注入方式(重要) 在Spring官网上(文档),定义了在Spring中的注入方式一共有两种:set方法和构造函数. 也就是说,你想在A类里面注入另外一个B类,无论你是通过写 XML文件,或者通过 @Autowried,他们最终都是通过这个A类的set方法或者构造函数,将B类注入到A类中! 换句话说,你如果A类里面没有setB(B b){-},那你就别想通过set方法把B类注入到A类中 自动注入 首先摆出一个比较颠覆的观点:@Aut

详解Spring与Mybatis整合方法(基于IDEA中的Maven整合)

2020-10-16
项目结构 项目路径可以自己定义,只要路径映射正确就可以 pom.xml <properties> <spring.version>5.1.5.RELEASE</spring.version> <mybatis.version>3.4.6</mybatis.version> <log4j.version>1.2.17</log4j.version> </properties> <dependencies&g