重點
1.XML簡介:
可擴展:所有的標籤都是自定義的。
功能:用於數據存儲、配置文件、數據傳輸
2.html與xml區別:
html語法鬆散,xml語法嚴格
html做頁面展示,xml做數據存儲
html所有標籤都是預定義的,xml所有標籤都是自定義的
3.XML約束
3.1dtd約束使用
第一步:創建一個student.dtd約束文件
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT students (student*) >
<!ELEMENT student (name,password,gender,birthday)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT password (#PCDATA)>
<!ELEMENT gender (#PCDATA)>
<!ELEMENT birthday (#PCDATA)>
<!ATTLIST student number ID #REQUIRED>
ATT:Attribute 屬性的意思
第二步:在xml添加約束
xml中引用dtd的方式
1.本地dtd文件:
2.網絡dtd文件:
3.2schema約束的使用
第一步:寫個xsd
<?xml version="1.0"?>
<xsd:schema xmlns="http://www.gyf.cn/xml"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.gyf.cn/xml" elementFormDefault="qualified">
<xsd:element name="students" type="studentsType"/>
<xsd:complexType name="studentsType">
<xsd:sequence>
<xsd:element name="student" type="studentType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="studentType">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="password" type="xsd:string" />
<xsd:element name="gender" type="genderType" />
<xsd:element name="birthday" type="xsd:string" />
</xsd:sequence>
<xsd:attribute name="number" type="numberType" use="required"/>
</xsd:complexType>
<xsd:simpleType name="genderType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="male"/>
<xsd:enumeration value="female"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="numberType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="itgyf_\d{4}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
第二步:寫個xml引用xsd
導入xsd約束文檔:
1.編寫根標籤
2.引入實例名稱空間 xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
3.引入名稱空間 xsi:schemaLocation=“http://www.gyf.cn/xml student.xsd”
4.引入默認的名稱空間
<?xml version="1.0" encoding="UTF-8"?>
<students
xmlns="http://www.gyf.cn/xml"
xsi:schemaLocation="http://www.gyf.cn/xml student.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<student number="itgyf_1001">
<name>gyf</name>
<password>123</password>
<gender>male</gender>
<!-- 這是有順序的 -->
<birthday>2017-11-12</birthday>
</student>
</students>
4.XML解析
xml解析就是讀寫xml的意思
分類:
- DOM解析
將文檔加載進內存,形成一顆dom樹(document對象),將文檔的各個組成部分封裝爲一些對象。 - SAX解析
逐行讀取,基於事件驅動
5.XML常用的解析器-DOM4J
dom for java
dom4j是一個Java的XML API,是jdom的升級品,用來讀寫XML文件的。dom4j是一個十分優秀的JavaXML API,具有性能優異、功能強大和極其易使用的特點,它的性能超過sun公司官方的dom技術
6.DOM4J解析(使用時記得導入dom4j-1.6.1.jar包)
6.1DOM4J的SAX使用
**第一步:**導入包
**第二步:**遍歷節點
@Test 單元測試
6.2XPATH:(解決了SAX不能修改的問題)
專門用於查詢,它定義了一種規則。
-
使用的方法:
selectSingleNode():
selectNodes(): -
使用步驟:
1、注意:要導包 jaxen…jar
2、創建解析器SAXReader reader = new SAXReader();
3、解析xml 獲得document對象 Document document = reader.read(url);
XPath規則:
// nodename 選取此節點。
/ 從根節點選取。
… 選取當前節點的父節點。
@ 選取屬性。
[@屬性名] 屬性過濾
[標籤名] 子元素過濾
修改節點保存
public static void main(String[] args) throws Exception {
SAXReader reader = new SAXReader();
Document doc = reader.read(new FileInputStream("xml/books.xml"));
List list = doc.selectNodes("//書/@出版社");
for(Object o : list){
if(o instanceof Attribute){
Attribute att = (Attribute) o;
att.setValue("美國");
}
}
XMLWriter writer = new XMLWriter(new FileOutputStream("xml/books.xml"));
writer.write(doc);
}
7.Tomcat簡介
官方網址爲http://tomcat.apache.org。得到了廣大開源代碼志願者的大力支持,且可以和目前大部分的主流Web服務器(IIS、Apache服務器)一起工作,它運行穩定、可靠且高效。已成爲目前開發企業JavaWeb應用的最佳Servlet容器選擇之一。
8.Tomcat的版本
- 三者按以下方式匹配兼容
9. Tomcat目錄結構
10.創建動態Web項目(勾web.xml)
使用Eclipse創建一個JavaWeb應用程序,然後打包成war包
war的目錄結構
11. tomcat部署war包
將war包放在tomcat的webapp,然後啓動,訪問http://localhost:8080/hello
12.URL&URI
URL: 統一資源定位符(網址)
URI: 統一資源標識符
http://localhost:8080/hello/1.html
協議 主機IP(端口號) URI(當前應用的資源路徑)
13.tomcat配置虛似主機
假如兩家公司Web應用都發布在同一個Tomcat服務器上,可以爲每家公司分別創建一個虛擬主機,如:www.gyf.cn www.guo.com
儘管以上兩個虛擬主機位於同一個主機,但是當客戶通過以上兩個不同虛擬主機名訪問Web應用時,會感覺到這兩個應用分別擁有獨立的主機
如需在WEB服務器中配置一個網站
1.在Server.xml需使用Host元素進行配置
例:
2. 配置的主機(網站)要想被外部訪問,必須在DNS服務器或windows系統中註冊。
修改C:\WINDOWS\system32\drivers\etc\hosts
127.0.0.1 www.guo.com
127.0.0.1 www.gyf.com
14.端口被佔用解決方法:
windows命令行執行以下
1:netstat -aon|findstr “9090”(注意空格)
2:taskkill /f /PID 2688(注意空格)
如圖:
面試題
1.XML解析思想
DOM解析:
將文檔加載進內存,形成一顆dom樹(document對象),將文檔的各個組成部分封裝爲一些對象。
優點:因爲,在內存中會形成dom樹,可以對dom樹進行增刪改查。
缺點:dom樹非常佔內存,解析速度慢。
SAX解析:
逐行讀取,基於事件驅動
優點:不佔內存,速度快
缺點:只能讀取,不能回寫(改數據)
總結
通過今天的學習,掌握了XML的dom4j解析器的使用,會用Test單元測試,知道了第三方jar的引入,建立映射。掌握了Tomcat服務器的使用,會創建項目打War包在Tomcat上部署,會使用虛擬主機(在C盤的C:\Windows\System32\drivers\etc 下的hosts文件裏添加虛擬主機的網址及IP,注意用管理員身份打開文本編輯器,再從中打開hosts文件)在實際開發中,上線的項目,記得清除Tomcat中webapps文件夾下的其他自帶項目,防止別人通過Tomcat管理工具刪除項目。