1. 什么是XML
Extensible Markup Language 可扩展标记语言
作用:
- 可以用来保存数据;
- 可以用来保存一些常见的配置文件;
- 可以作为小型数据库。
例如:c3p0-config.xml
HTML标签是w3c组织固定,不能更改;
XML可以根据需求随意更改。
2. XML文件的定义与声明
在xml文件中,所有的标签都可以自己定义。
语法如下:
1.强制的语法要求:标签必须成对;
2.xml文件中有且仅有一个根节点
3.xml标签可以带有属性,可以相互嵌套
4.xml标签可以自定义,但要求见名知意
5.xml标签一般都是小写
<?xml version="1.0" encoding="utf-8"?>
<!-- xml文件的声明:
告诉解析器,目前xml版本为 1.0
解析当前的xml文件使用的编码集是 utf-8
-->
<!--
在xml文件中,所有的标签都可以自己定义。
语法如下:
1.强制的语法要求:标签必须成对;
2.xml文件中有且仅有一个根节点
3.xml标签可以带有属性,可以相互嵌套
4.xml标签可以自定义,但要求见名知意
5.xml标签一般都是小写
-->
<stus>
<student id="001">
<name>陈卓璇</name>
<age>23</age>
<gender>1</gender>
<!-- 性别 男 0 女 1-->
</student>
<student id="002">
<name>耶啵</name>
<age>23</age>
<gender>0</gender>
</student>
<student id="003">
<name>赞赞</name>
<age>29</age>
<gender>0</gender>
</student>
</stus>
<?xml version="1.0" encoding="utf-8"?>
<bookstore>
<book category="fiction"><!-- category 类别 fiction 小说-->
<title lang="zh">红楼梦</title><!-- lang 语言 zh 中文 -->
<author>曹雪芹</author>
<year>1778</year>
<price>78.0</price>
</book>
</bookstore>
3. XML解析
SUN公司提供了XML文件的解析方式,但过于繁琐,并且没有任何更新,被人弃用的。但是我们现在所使用的第三方工具,都是基于SUN原生解析方式来完成的。
jaxp jdom
dom4j 核心:
element.element(String elementName); 获取指定名字的节点类对象
element.elements(String elementName); 获取指定名字的所有节点类对象,并且返回值是List集合。
public class Demo {
public static void main(String[] args) throws DocumentException {
//1.获取xml对应的document对象
Document document = new SAXReader().read(new File("./src/student.xml"));
// System.out.println(document);
//2.获取根节点元素对象
Element rootElement = document.getRootElement();
// System.out.println(rootElement);
//3.获取所有student节点
//java.lang.NoClassDefFoundError: org/jaxen/JaxenException
//与XPath有关
List<Element> students = rootElement.selectNodes("student");
for(Element student:students){
System.out.println(student);
}
// List<Element> names = rootElement.selectNodes("//name");//方式1
// //name 不管位置在哪,只要有节点名为name,就找出来
List<Element> names = rootElement.selectNodes("/stus/student/name");//方式二
for(Element name:names){
System.out.println(name);
}
System.out.println("---------------student节点下的所有子节点-----------------------");
List<Element> list1 = rootElement.selectNodes("//student/*");
for(Element elem:list1){
System.out.println(elem);
}
System.out.println("---------------所有节点中 有id属性的节点-----------------------");
//Exception in thread "main" java.lang.ClassCastException: org.dom4j.tree.DefaultAttribute cannot be cast to org.dom4j.Element
// List<Element> list2 = rootElement.selectNodes("/stus/student/@id");
// for(Element id:list2){
// System.out.println(id);
// }
List<DefaultAttribute> list2 = rootElement.selectNodes("/stus/student/@id");
for(DefaultAttribute id:list2){
System.out.println(id);
}
//总结:使用 //nodename 即可
System.out.println("-------------/stus/student[1]-------------------");
List list3 = rootElement.selectNodes("/stus/student[1]");
System.out.println(list3.get(0));
System.out.println("---------------/stus/student[last()]---------------");
List list4 = rootElement.selectNodes("/stus/student[last()]");
System.out.println(list4.get(0));
System.out.println("------------------//name | //age-------------------");
List<Element> list5 = rootElement.selectNodes("//name | //age");
for(Element li:list5){
System.out.println(li.getText());
}
}
}
4. Tomcat的介绍
Tomcat
服务器软件,如果安装了Tomcat,安装过的电脑就相当于一台服务器。
服务器软件符合JavaEE规范。
为什么使用Tomcat
1. Tomcat支持大部分的JavaEE规范!!!并且可以商用!!!
2. Tomcat源码公开
3. 免费
Tomcat 是 Apache 组织基金会维护的一个项目
5. Tomcat的目录结构
bin:
主要存放的内容有 .jar .bat Windows批处理文件 .sh shell 脚本,主要用于Linux下
startup.bat/.sh shutdown.bat/sh
conf:
当前Tomcat服务器对应的配置文件,server.xml 和 web.xml
lib:
库!!!当前Tomcat服务器执行需要的库文件,以及JavaWEB需要的一些第三方Jar包
servlet-api.jar
logs:
Tomcat运行日志目录
temp:
临时文件目录
webapps: 【重点】
Web Application Web 应用存放的目录,要求所有的Web项目存放到当前目录下
Work:
暂时不考虑!!!
6. Tomcat 启动失败原因
1. 不按照规矩操作
使用startup.bat 启动,使用 shutdown.bat 关闭
2. Java环境安装存在问题
a) 没装
b) JDK环境变量配置有错
Tomcat运行需要Java支持!!!
7. JavaWEB项目目录 【重点】
要求在Java中所有的WEB项目,都要按照当前的WEB目录结构来完成
--| WEBProject 当前Web Application的根目录,目录名就是你项目的名字
可以在WEBProject存放静态资源,利用HTML,CSS,JS,img, video...
----| META-INF 不用操心,目前不用考虑
----| WEB-INF 目录的所有内容都不能通过浏览器 URL目录结构方式来访问,需要通过一些配置来完成
--| classes 存放Java文件对应的.class 字节码文件,提供给Tomcat服务器运行执行
--| lib 当前项目执行需要的第三方Jar目录
--| web.xml 当前整个WEB项目的配置文件