XML和Tomcat學習

重點

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的意思
分類

  1. DOM解析
    將文檔加載進內存,形成一顆dom樹(document對象),將文檔的各個組成部分封裝爲一些對象。
  2. 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管理工具刪除項目。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章