- JDBC:Apache DBUtils的使用
恒奇恒毅
JavaSE
•commons-dbutils是Apache组织提供的一个开源JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。•API介绍:–org.apache.commons.dbutils.QueryRunner–org.apache.commons.dbutils.ResultSetHandler以及一些实现类–工
- 开发实战|commons-lang3库的字符串工具类join方法
六月暴雪飞梨花
commons-lang3StringUtilsStringjoin
作者简介:「六月暴雪飞梨花」,专注于研究Java,就职于科技型公司后端工程师近期荣誉:华为云云享专家、阿里云专家博主、腾讯云优秀创作者、腾讯云TDP-KOL、ACDU成员、墨天轮技术专家博主三连支持:欢迎❤️关注、点赞、收藏三连,支持一下博主~文章目录引言来源StringUtils.joinString.join功能对比StringUtils.join支持原生数组支持集合支持迭代器Iterator
- 爬虫基础
20岁30年经验的码农
1024程序员节
mavenpomorg.jsoupjsoup1.16.1org.apache.httpcomponentshttpcore4.4.16org.apache.httpcomponentshttpclient4.5.14commons-iocommons-io2.13.0====================================遍历网站内容爬取网站网址packagecom.xiaocao
- Apache Commons Lang3 和 Commons Net 详解
波波有料
apache
目录1.ApacheCommonsLang31.1什么是ApacheCommonsLang3?1.2主要功能1.3示例代码2.CommonsNet2.1什么是CommonsNet?2.2主要功能2.3示例代码3.总结3.1ApacheCommonsLang33.2CommonsNet3.3使用建议4.参考资料前言在Java开发中,ApacheCommons项目提供了许多实用的工具库,帮助开发者更高
- YAGO是什么?
魔王阿卡纳兹
知识图谱入门大数据治理与分析知识图谱yago实体
YAGO是一个基于链接数据库的开放语义知识库,由德国马普研究所与巴黎电讯科技大学于2007年联合开发,基于CreativeCommonsAttribution协议。其主要特点是从Wikipedia、WordNet和GeoNames等来源提取事实,形成了一个包含丰富语义信息的知识库。YAGO的数据规模庞大,包含约5亿个实体和20亿条事实,这些事实可以在时间和空间上进行锚定。此外,YAGO还具有预定义
- slf4j导入那个依赖_复杂Spring项目中SLF4J最佳使用姿势
weixin_39955421
slf4j导入那个依赖
一、Java日志体系概述图1-1Java日志体系概况图1-1展示了Java日志体系的三个主要部分:日志门面接口(SLF4J、JCL)一系列绑定和桥接具体的日志实现先来两个例子:Spring项目中通过CommonsLogging直接使用log4j图1-2通过CommonsLogging使用log4j本例中由于spring-core中原生依赖commons-logging,所以只需要添加log4j和l
- 【Java代码审计 | 第十三篇】XXE漏洞成因及防范
秋说
Java代码审计javaXXE
未经许可,不得转载。文章目录XXE漏洞成因解析XML的Java方法DocumentBuilder(原生,可回显)SAXReader(DOM4J,第三方库)SAXBuilder(JDOM,第三方库)SAXParserFactory(原生,不可回显)XMLReaderFactoryDigester(ApacheCommonsDigester)支持XInclude的DocumentBuilderSAXP
- 初学者瞎写的一个爬虫小程序
一大块腹肌呀
爬虫小程序python
学习python三个月,渐渐的的也开始了爬虫之旅,根据某本书的指导,开始想写一个通用的爬虫小程序,希望有大神能指点一下。importdatetimeimporttimefromseleniumimportwebdriverimportreclassMyCommonSpider:def__init__(self):pass使用了selenium进行模拟鼠键操作,目标是爬取51job上的职位信息def
- (undone) MIT6.S081 2023 学习笔记 (Day9: LAB8 locks)
shimly123456
MIT6.S081学习笔记操作系统
url:https://pdos.csail.mit.edu/6.1810/2023/labs/lock.htmlInthislabyou’llgainexperienceinre-designingcodetoincreaseparallelism.Acommonsymptomofpoorparallelismonmulti-coremachinesishighlockcontention.Im
- java使用word模板填充内容,再生成pdf
ByteX
工具类javapdf开发语言
1.word模板填充内容使用EasyPoi写入Word文档。importcn.afterturn.easypoi.word.WordExportUtil;importorg.apache.commons.io.FileUtils;importorg.apache.commons.io.IOUtils;importorg.apache.poi.xwpf.usermodel.XWPFDocument;
- 【Java】日志框架
茉菇
javapython开发语言
一、概述Java日志框架是开发中记录和管理日志的重要工具,合理选择和使用日志组件能提升项目的可维护性和灵活性。1、核心概念日志门面(LoggingFacade)作用:提供统一的API接口,解耦业务代码与具体日志实现。优势:允许灵活切换底层日志库,无需修改代码。常见门面:SLF4J、JCL(ApacheCommonsLogging)。日志实现(LoggingImplementation)作用:实际处
- Spring Boot 3.x 基于 Redis 实现邮箱验证码认证
Vcats
springbootredis后端
文章目录依赖配置开启QQ邮箱SMTP服务配置文件代码实现验证码服务邮件服务接口实现执行流程依赖配置org.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-data-redis3.4.2org.apache.commonscommons-pool22.11.1io.lettu
- java:Apache Commons Configuration2占位符解析异常的正确解法:${prefix:name:-default}
10km
javajavaapacheconfiguration2变量插值Interpolation
问题重现在之前的博文《spring-boot:apachecommons-configuration2异常:java.lang.IllegalArgumentException:name原因分析》中,我们曾遇到SpringBootFat-Jar运行时因LaunchedURLClassLoader资源加载异常导致的启动失败问题。当时的解决方案是通过预创建空配置文件来规避异常1://旧方案:手动创建空
- 记录一次排查问题遇到apache.commons.beanutils包的坑
饭磊
问题排查
引言在开发过程中,难免需要用到对象转换器,比如apache的BeanUtils、ConvertUtils还有spring的BeanUtils。我们在公司的项目中就使用了apache的BeanUtils和ConvertUtils作为公共的对象转换工具。但是在没有充分理解源代码的情况下,添加个性化Converter就会出现意想不到的bug。下面我来介绍一下我在排查问题中遇到的这个bug。问题本文采用的
- org.apache.commons.jar包官方免费版(附下载地址)
王的博客
开发
官方免费下载链接:http://commons.apache.org/proper/commons-io/download_io.cgi亲测可用,如上所示。
- Spring Boot整合FTP实现文件的上传和下载
anhao78
ftp实现文件的上传和下载
第一步:pom.xml文件中引入依赖包 commons-net commons-net 3.3第二步:编写ftp上传文件工具类packagecom.split.ftp;importlombok.Data;importlombok.extern.slf4j.Slf4j;importorg.apache.commons.net.ftp.*;importorg.springframework
- javaweb文件上传:@MultipartConfig注解与Apache Commons FileUpload对比
yuren_xia
后端技术apachejavatomcat
在JavaWeb应用中处理文件上传时,可以选择使用@MultipartConfig注解或第三方库如ApacheCommonsFileUpload(通常简称为fileupload)。以下是两者的比较和建议:使用@MultipartConfig注解简介:@MultipartConfig是JavaServlet规范中用于处理multipart/form-data请求(通常是文件上传)的注解。它简化了在S
- 告诉你如何用springboot调用python脚本
luckilyil
项目springbootpython后端
目录springboot调用python脚本准备工作方法一:使用ProcessBuilder1.编写测试方法2.解释代码方法二:使用ApacheCommonsExec1.编写测试方法2.解释代码Python脚本的数据通过接口让SpringBoot接收。Python脚本作为服务1.使用Flask创建PythonHTTP服务2.在SpringBoot中调用PythonHTTP服务使用RestTempl
- HTML转义和反转义工具类
cv键盘侠
javamvcspringbootspringcloud
HTML转义和反转义工具类packagecom.common.utils;importcn.hutool.http.HTMLFilter;importorg.apache.commons.lang3.StringUtils;/***转义和反转义工具类**@authorlxx*/publicclassEscapeUtil{publicstaticfinalStringRE_HTML_MARK="()
- Struts2的简单使用
dianbiao2276
web.xmljavaui
一、准备工作及实例1.解压struts-2.1.6-all.zipapps目录:struts2自带的例子程序docs目录:官方文档。lib目录:存放所有jar文件。Src目录:源文件存放地2.六个基本包struts2-core-2.1.6.jar:开发的核心类库freemarker-2.3.13.jar:struts2的UI标签的模板使用freemarker编写commons-logging-1.
- 高效Java对象池:Commons-Pool2入门与进阶
中國移动丶移不动
java开发语言springmaven后端
高效Java对象池:Commons-Pool2入门与进阶1.什么是池化技术以及池化技术的核心思想池化技术(Pooling)是一种通过预先创建并管理可复用资源来提升系统性能和资源利用率的设计思想。其核心是避免重复创建和销毁资源的开销,通过共享和复用资源来减少系统压力。池化技术的核心思想资源复用:重复利用已分配的资源(对象、线程、连接等),避免频繁创建和销毁。预先分配:在系统初始化时或按需提前创建一批
- jar、war、pom
JIU_WW
jarjava
1.jar定义与用途用途:默认打包类型,生成JAR文件(JavaArchive),适用于普通Java应用或库。场景:开发工具类库(如commons-lang.jar)。构建可执行应用(通过java-jar运行)。关键行为构建流程:执行mvnpackage后,生成target/.jar。包含编译后的.class文件、资源文件(如.properties)和META-INF/MANIFEST.MF。依赖
- QueryRunner常用方法
Tirzano
java基础queryRunnerjavaqueryRunner
maven依赖:commons-dbutilscommons-dbutils1.6http://commons.apache.org/proper/commons-dbutils/api文档http://commons.apache.org/proper/commons-dbutils/apidocs/index.html查询SQL没参数publicstaticvoidmain(String[]a
- 在SpringBoot中使用redis存放数据和模糊查询 (快速)
Roys_
javaspringbootredis
引入对应的pom坐标org.springframework.bootspring-boot-starter-data-redisorg.apache.commonscommons-pool2com.fasterxml.jackson.datatypejackson-datatype-jsr3102.10.2compile
- RSA加密解密
码农张3
Java基础java后端
packagecom.coder.common.utils.security;importorg.apache.commons.codec.binary.Base64;importjavax.crypto.Cipher;importjava.security.*;importjava.security.interfaces.RSAPrivateKey;importjava.security.int
- 手动配置springMVC4的方法
架构默片
javajavaspringMVC4springMVC
手动配置springMVC4的方法一开始网上查了N多文章都是拿maven装的,而且配置文件都一堆一堆的特别乱,不容易让人明白,所以这里提供一个最基本的HELLOWORLD创建一个动态的WEB工程DnamicWebProbject导入如下包commons-logging-1.1.3.jarspring-aop-4.0.0.RELEASE.jarspring-beans-4.0.0.RELEASE.j
- springboot java ffmpeg 视频压缩、提取视频帧图片、获取视频分辨率
因我你好久不见
javaspringbootffmpeg
用到的maven依赖:lombok依赖就不贴出来了org.bytedecoffmpeg-platform4.3.2-1.5.5org.apache.commonscommons-lang33.12.0cn.hutoolhutool-all5.5.2工具类:importcn.hutool.core.io.IoUtil;importlombok.extern.slf4j.Slf4j;importorg
- Spring Boot整合EasyExcel并行导出及Zip压缩下载
harmful_sheep
springbootspringbootjava后端
1.项目依赖首先,我们需要引入相关的依赖,包括SpringBoot和阿里巴巴的EasyExcel组件,此外还需要使用Java的Zip工具进行压缩操作。org.springframework.bootspring-boot-starter-webcom.alibabaeasyexcel3.0.5commons-iocommons-io2.11.02.创建数据导出逻辑接下来,我们定义数据导出逻辑。在这
- 简单介绍使用
荭色海湾
中间件实战javaandroidintellij-idea
packagecom.x.permissioncontrolserviceapiclient.model.AuthorizeTree.dto;importcom.x.globalcommonservice.global.exception.CodeException;importcom.x.globalcommonservice.global.tree.TreeNode;importcom.x.g
- MongoDb 分组统计查询
**Dragon**
mongodb数据库
db.getCollection("CommonStatisticsLog").aggregate([ { "$match":{ "CreateTime":{ "$gte":ISODate("2025-02-13T09:00:00Z"), "$lte":ISODate("2025-02-13T09:59:59Z") }, "Need
- 桌面上有多个球在同时运动,怎么实现球之间不交叉,即碰撞?
换个号韩国红果果
html小球碰撞
稍微想了一下,然后解决了很多bug,最后终于把它实现了。其实原理很简单。在每改变一个小球的x y坐标后,遍历整个在dom树中的其他小球,看一下它们与当前小球的距离是否小于球半径的两倍?若小于说明下一次绘制该小球(设为a)前要把他的方向变为原来相反方向(与a要碰撞的小球设为b),即假如当前小球的距离小于球半径的两倍的话,马上改变当前小球方向。那么下一次绘制也是先绘制b,再绘制a,由于a的方向已经改变
- 《高性能HTML5》读后整理的Web性能优化内容
白糖_
html5
读后感
先说说《高性能HTML5》这本书的读后感吧,个人觉得这本书前两章跟书的标题完全搭不上关系,或者说只能算是讲解了“高性能”这三个字,HTML5完全不见踪影。个人觉得作者应该首先把HTML5的大菜拿出来讲一讲,再去分析性能优化的内容,这样才会有吸引力。因为只是在线试读,没有机会看后面的内容,所以不胡乱评价了。
- [JShop]Spring MVC的RequestContextHolder使用误区
dinguangx
jeeshop商城系统jshop电商系统
在spring mvc中,为了随时都能取到当前请求的request对象,可以通过RequestContextHolder的静态方法getRequestAttributes()获取Request相关的变量,如request, response等。 在jshop中,对RequestContextHolder的
- 算法之时间复杂度
周凡杨
java算法时间复杂度效率
在
计算机科学 中,
算法 的时间复杂度是一个
函数 ,它定量描述了该算法的运行时间。这是一个关于代表算法输入值的
字符串 的长度的函数。时间复杂度常用
大O符号 表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是
渐近 的,它考察当输入值大小趋近无穷时的情况。
这样用大写O()来体现算法时间复杂度的记法,
- Java事务处理
g21121
java
一、什么是Java事务 通常的观念认为,事务仅与数据库相关。 事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。事务的原子性表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。一致性表示当事务执行失败时,所有被该事务影响的数据都应该恢复到事务执行前的状
- Linux awk命令详解
510888780
linux
一. AWK 说明
awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。
awk的处理文本和数据的方式:它逐行扫描文件,从第一行到
- android permission
布衣凌宇
Permission
<uses-permission android:name="android.permission.ACCESS_CHECKIN_PROPERTIES" ></uses-permission>允许读写访问"properties"表在checkin数据库中,改值可以修改上传
<uses-permission android:na
- Oracle和谷歌Java Android官司将推迟
aijuans
javaoracle
北京时间 10 月 7 日,据国外媒体报道,Oracle 和谷歌之间一场等待已久的官司可能会推迟至 10 月 17 日以后进行,这场官司的内容是 Android 操作系统所谓的 Java 专利权之争。本案法官 William Alsup 称根据专利权专家 Florian Mueller 的预测,谷歌 Oracle 案很可能会被推迟。 该案中的第二波辩护被安排在 10 月 17 日出庭,从目前看来
- linux shell 常用命令
antlove
linuxshellcommand
grep [options] [regex] [files]
/var/root # grep -n "o" *
hello.c:1:/* This C source can be compiled with:
- Java解析XML配置数据库连接(DOM技术连接 SAX技术连接)
百合不是茶
sax技术Java解析xml文档dom技术XML配置数据库连接
XML配置数据库文件的连接其实是个很简单的问题,为什么到现在才写出来主要是昨天在网上看了别人写的,然后一直陷入其中,最后发现不能自拔 所以今天决定自己完成 ,,,,现将代码与思路贴出来供大家一起学习
XML配置数据库的连接主要技术点的博客;
JDBC编程 : JDBC连接数据库
DOM解析XML: DOM解析XML文件
SA
- underscore.js 学习(二)
bijian1013
JavaScriptunderscore
Array Functions 所有数组函数对参数对象一样适用。1.first _.first(array, [n]) 别名: head, take 返回array的第一个元素,设置了参数n,就
- plSql介绍
bijian1013
oracle数据库plsql
/*
* PL/SQL 程序设计学习笔记
* 学习plSql介绍.pdf
* 时间:2010-10-05
*/
--创建DEPT表
create table DEPT
(
DEPTNO NUMBER(10),
DNAME NVARCHAR2(255),
LOC NVARCHAR2(255)
)
delete dept;
select
- 【Nginx一】Nginx安装与总体介绍
bit1129
nginx
启动、停止、重新加载Nginx
nginx 启动Nginx服务器,不需要任何参数u
nginx -s stop 快速(强制)关系Nginx服务器
nginx -s quit 优雅的关闭Nginx服务器
nginx -s reload 重新加载Nginx服务器的配置文件
nginx -s reopen 重新打开Nginx日志文件
- spring mvc开发中浏览器兼容的奇怪问题
bitray
jqueryAjaxspringMVC浏览器上传文件
最近个人开发一个小的OA项目,属于复习阶段.使用的技术主要是spring mvc作为前端框架,mybatis作为数据库持久化技术.前台使用jquery和一些jquery的插件.
在开发到中间阶段时候发现自己好像忽略了一个小问题,整个项目一直在firefox下测试,没有在IE下测试,不确定是否会出现兼容问题.由于jquer
- Lua的io库函数列表
ronin47
lua io
1、io表调用方式:使用io表,io.open将返回指定文件的描述,并且所有的操作将围绕这个文件描述
io表同样提供三种预定义的文件描述io.stdin,io.stdout,io.stderr
2、文件句柄直接调用方式,即使用file:XXX()函数方式进行操作,其中file为io.open()返回的文件句柄
多数I/O函数调用失败时返回nil加错误信息,有些函数成功时返回nil
- java-26-左旋转字符串
bylijinnan
java
public class LeftRotateString {
/**
* Q 26 左旋转字符串
* 题目:定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。
* 如把字符串abcdef左旋转2位得到字符串cdefab。
* 请实现字符串左旋转的函数。要求时间对长度为n的字符串操作的复杂度为O(n),辅助内存为O(1)。
*/
pu
- 《vi中的替换艺术》-linux命令五分钟系列之十一
cfyme
linux命令
vi方面的内容不知道分类到哪里好,就放到《Linux命令五分钟系列》里吧!
今天编程,关于栈的一个小例子,其间我需要把”S.”替换为”S->”(替换不包括双引号)。
其实这个不难,不过我觉得应该总结一下vi里的替换技术了,以备以后查阅。
1
所有替换方案都要在冒号“:”状态下书写。
2
如果想将abc替换为xyz,那么就这样
:s/abc/xyz/
不过要特别
- [轨道与计算]新的并行计算架构
comsci
并行计算
我在进行流程引擎循环反馈试验的过程中,发现一个有趣的事情。。。如果我们在流程图的每个节点中嵌入一个双向循环代码段,而整个流程中又充满着很多并行路由,每个并行路由中又包含着一些并行节点,那么当整个流程图开始循环反馈过程的时候,这个流程图的运行过程是否变成一个并行计算的架构呢?
- 重复执行某段代码
dai_lm
android
用handler就可以了
private Handler handler = new Handler();
private Runnable runnable = new Runnable() {
public void run() {
update();
handler.postDelayed(this, 5000);
}
};
开始计时
h
- Java实现堆栈(list实现)
datageek
数据结构——堆栈
public interface IStack<T> {
//元素出栈,并返回出栈元素
public T pop();
//元素入栈
public void push(T element);
//获取栈顶元素
public T peek();
//判断栈是否为空
public boolean isEmpty
- 四大备份MySql数据库方法及可能遇到的问题
dcj3sjt126com
DBbackup
一:通过备份王等软件进行备份前台进不去?
用备份王等软件进行备份是大多老站长的选择,这种方法方便快捷,只要上传备份软件到空间一步步操作就可以,但是许多刚接触备份王软件的客用户来说还原后会出现一个问题:因为新老空间数据库用户名和密码不统一,网站文件打包过来后因没有修改连接文件,还原数据库是好了,可是前台会提示数据库连接错误,网站从而出现打不开的情况。
解决方法:学会修改网站配置文件,大多是由co
- github做webhooks:[1]钩子触发是否成功测试
dcj3sjt126com
githubgitwebhook
转自: http://jingyan.baidu.com/article/5d6edee228c88899ebdeec47.html
github和svn一样有钩子的功能,而且更加强大。例如我做的是最常见的push操作触发的钩子操作,则每次更新之后的钩子操作记录都会在github的控制板可以看到!
工具/原料
github
方法/步骤
- ">的作用" target="_blank">JSP中的作用
蕃薯耀
JSP中<base href="<%=basePath%>">的作用
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- linux下SAMBA服务安装与配置
hanqunfeng
linux
局域网使用的文件共享服务。
一.安装包:
rpm -qa | grep samba
samba-3.6.9-151.el6.x86_64
samba-common-3.6.9-151.el6.x86_64
samba-winbind-3.6.9-151.el6.x86_64
samba-client-3.6.9-151.el6.x86_64
samba-winbind-clients
- guava cache
IXHONG
cache
缓存,在我们日常开发中是必不可少的一种解决性能问题的方法。简单的说,cache 就是为了提升系统性能而开辟的一块内存空间。
缓存的主要作用是暂时在内存中保存业务系统的数据处理结果,并且等待下次访问使用。在日常开发的很多场合,由于受限于硬盘IO的性能或者我们自身业务系统的数据处理和获取可能非常费时,当我们发现我们的系统这个数据请求量很大的时候,频繁的IO和频繁的逻辑处理会导致硬盘和CPU资源的
- Query的开始--全局变量,noconflict和兼容各种js的初始化方法
kvhur
JavaScriptjquerycss
这个是整个jQuery代码的开始,里面包含了对不同环境的js进行的处理,例如普通环境,Nodejs,和requiredJs的处理方法。 还有jQuery生成$, jQuery全局变量的代码和noConflict代码详解 完整资源:
http://www.gbtags.com/gb/share/5640.htm jQuery 源码:
(
- 美国人的福利和中国人的储蓄
nannan408
今天看了篇文章,震动很大,说的是美国的福利。
美国医院的无偿入院真的是个好措施。小小的改善,对于社会是大大的信心。小孩,税费等,政府不收反补,真的体现了人文主义。
美国这么高的社会保障会不会使人变懒?答案是否定的。正因为政府解决了后顾之忧,人们才得以倾尽精力去做一些有创造力,更造福社会的事情,这竟成了美国社会思想、人
- N阶行列式计算(JAVA)
qiuwanchi
N阶行列式计算
package gaodai;
import java.util.List;
/**
* N阶行列式计算
* @author 邱万迟
*
*/
public class DeterminantCalculation {
public DeterminantCalculation(List<List<Double>> determina
- C语言算法之打渔晒网问题
qiufeihu
c算法
如果一个渔夫从2011年1月1日开始每三天打一次渔,两天晒一次网,编程实现当输入2011年1月1日以后任意一天,输出该渔夫是在打渔还是在晒网。
代码如下:
#include <stdio.h>
int leap(int a) /*自定义函数leap()用来指定输入的年份是否为闰年*/
{
if((a%4 == 0 && a%100 != 0
- XML中DOCTYPE字段的解析
wyzuomumu
xml
DTD声明始终以!DOCTYPE开头,空一格后跟着文档根元素的名称,如果是内部DTD,则再空一格出现[],在中括号中是文档类型定义的内容. 而对于外部DTD,则又分为私有DTD与公共DTD,私有DTD使用SYSTEM表示,接着是外部DTD的URL. 而公共DTD则使用PUBLIC,接着是DTD公共名称,接着是DTD的URL.
私有DTD
<!DOCTYPErootSYST