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解析

6.1DOM4J的SAX使用

**第一步:**导入包
在这里插入图片描述
**第二步:**遍历节点
@Test 单元测试
在这里插入图片描述
XPATH:
专门用于查询,它定义了一种规则。

  • 使用的方法:

    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
在这里插入图片描述

面试题

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文件)。

发布了25 篇原创文章 · 获赞 5 · 访问量 1484

猜你喜欢

转载自blog.csdn.net/qq_43488797/article/details/104103361