Web核心day01-XML&TOMCAT

2018-10-21  本文已影响0人  爱乐之农

一:XML的介绍

XML(可扩展的标记语言)的作用:

1.可以用来保存数据

2.可以用来做配置文件

3.数据传输载体


二:XML文档结构

例:

<?xml versio="1.0" encoding="UTF-8"?>

<stus>

    <stu>

            <name>zhangweiwei</name>

            <age>25</age>

            <desc>我曾经喜欢过你</desc>

    </stu>

    <stu>

            <name>wangyunting</name>

             <age>24</age>

             <desc>我曾经喜欢过你</desc>

    </stu>

<stus>

XML文档结构图

三.XML文档声明

1.文档声明

      简单声明,version:解析这个xml的时候,使用什么版本的解析器解析

      <?xml version="1.0" ?>


      encoding:解析xml中的文字的时候,使用声明编码来翻译

      <?xml version="1.0" encoding="gbk" ?>

       注:XML其实就是一个文件,文件的后缀名是XML,用记事本编辑的时候,存储的编码格式要和

       encoding声明的编码一致才能正确读取中文(或者让encoding声明为GBK或者GB2312也      

       可以)。


    standalone:no - 该文档会依赖关联其他文档(比如HTML关联CSS), yes-- 这是一个独立的文档

      <?xml version="1.0" encoding="ISO-8859-1"  standalone="no"?>


四:XML元素的定义

1.   其实就是里面的标签,<括起来的都叫元素>。标签是成对出现的,如下:

      <stu></stu>

2.文档声明下来的第一个元素叫做根元素(根标签)

3.标签里面可以嵌套标签

4.空标签

        即是开始也是结束,一般配合属性来用。

        <age/>

        <stu>

            <name>张三</name>

            <age/>

        </stu>

5.标签名字可以自定义。 (了解即可,命名尽量简单,做到见名知其义)

        XML 元素必须遵循以下命名规则:

        名称可以含字母、数字以及其他的字符

        名称不能以数字或者标点符号开始

        名称不能以字符 “xml”(或者 XML、Xml)开始

        名称不能包含空格

        可使用任何名称,没有保留的字词。


五.XML属性定义

1.简单元素&复杂元素

>简单元素:元素里面包含了普通的文字

>复杂元素:元素里面还可以嵌套其他的元素

2.属性的定义

>定义在元素里面,格式:<元素名称 属性名称="属性的值"></元素名称>

例:

<stus>

    <stu id="001">

            <name>zhangweiwei</name>

            <age>25</age>

            <desc>我曾经喜欢过你</desc>

    </stu>

    <stu id="002">

            <name>wangyunting</name>

             <age>24</age>

             <desc>我曾经喜欢过你</desc>

    </stu>

<stus>


六.XML解析的方式(DOM&SAX)

XML解析的方式有很多种,常用就就两种:DOM和SAX

一些组织或者公司,针对以上两种解析方式,给出的解决方案有:

    jaxp      sun公司,比较繁琐

    jdom

    dom4j   使用比较广泛

DOM和SAX解析的不同



Dom4j的基本用法

element.element("stu"):返回该元素下的第一个stu元素。

element.elements():返回该元素下的所有子元素。

1.创建SAXReader对象

2.解析指定xml

3.获取根元素

4.根据根元素获取子元素或者下面的子孙元素

代码如下:

public class MainTest {

public static void main(String[] args) {

try {

//1.创建SAX读取对象

SAXReader reader = new SAXReader();

//2.解析指定xml

Document document = reader.read(new File("src/xml/demo.xml"));

//3.得到元素

//得到根元素

Element RootElement = document.getRootElement();

//4.获得根元素下的子元素age

//RootElement.element("age");

// System.out.println(RootElement.element("stu").element("age").getText());

//获取根元素下面的所有子元素

List<Element> elements = RootElement.elements();

for(Element element:elements) {

String name = element.element("name").getText();

String age = element.element("age").getText();

String desc = element.element("desc").getText();

System.out.println("name="+name+" "+"age="+age+" "+"desc="+desc);

}

} catch (Exception e) {

e.printStackTrace();

                }

        }

}


Dom4j的Xpath用法

>dom4j里面支持Xpath的写法。xpath其实是xml的路径语言,支持我们在解析xml的时候,能后快速的定位到具体的某一个元素

1.添加jar包

2.在查找指定节点的时候,根据XPath语法规则来茶渣

3.后续的代码与以前的解析代码一样。

代码:

//想要使用XPath,还得添加支持的jar

//获取的是第一个,只返回第一个

Element nameElement = (Element) RootElement.selectSingleNode("//name");

System.out.println(nameElement.getText());

System.out.println("-----------");

//获取文档里所有name的元素

List<Element> list = RootElement.selectNodes("//name");

for(Element element:list) {

System.out.println(element.getText());

}


七.XML的约束(了解)

一般学生元素同一个学号ID不可能对应几个学生,那么怎么规定ID的值是唯一,或者元素只能出现一次,不能出现多次?甚至是规定里面只能出现具体的元素名字。

<stus>

    <stu id="001">

            <name>zhangweiwei</name>

            <name>zhajinling</name>

            <name>zhangpeipei</name>

            <age>25</age>

            <desc>我曾经喜欢过你</desc>

    </stu>

    <stu id="002">

            <name>wangyunting</name>

            <age>24</age>

            <desc>我曾经喜欢过你</desc>

    </stu>

</stus>

有两种约束的方法:

1.DTD:语法自成一排,早期就出现的,可读性比较差。

方法代码:

方法一:引入网络上的DTD

<!-- 引入DTD文件来约束这个xml -->

<!-- 文档类型    根标签名字  网络上的dtd    dtd的名称        dtd的路径

<!DOCTYPE          stus           PUBLIC  "//UNKNOW"    "unknown.dtd"> -->

方法二:引入本地的DTD

<!-- 引入本地的DTD   根标签名字  本地的DTD  DTD的位置

<!      DOCTYPE             stus           SYSTEM      "stus.dtd">-->

方法三:直接在XML里面嵌入DTD的约束规则

<!-- xml文档里面直接嵌入DTD的约束法则 -->

<!DOCTYPE stus[

<!ELEMENT stus (stu)>

<!ELEMENT stu (name,age,desc)>

<!ELEMENT name (#PCDATA)>

<!ELEMENT age (#PCDATA)>

<!ELEMENT desc (#PCDATA)>]>

<stus>

    <stu >

            <name>zhangweiwei</name>

            <age>25</age>

            <desc>我曾经喜欢过你</desc>

    </stu>

要点:

<!ELEMENT stus (stu)>   stus下面有一个元素stu,但是只有一个

<!ELEMENT stu (name,age,desc)>  stu下面有三个元素:name,age,desc,顺序必须为name,age,desc

<!ELEMENT stu (name|age>  stu下面有两个元素:name,age,两个中只能写一个元素

<!ELEMENT name (#PCDATA)>

<!ELEMENT age (#PCDATA)>

<!ELEMENT desc (#PCDATA)>

<!ATTLIST stu id CDATA#IMPLIED>  stu有一个属性:文本类型,该属性可有可无

元素的个数表达符号:

+:一个或多个

*零个或多个

?零个或一个

2.Schema:其实就是一个xml,使用xml的语法规则,xml解析器解析起来比较方便,是为了替代DTD,但是Schema约束文本内容比DTD的内容还要多,所以目前也没有真正意义上的替代DTD。

不同点:一个xml可以引用多个Schema约束,只能引用一个DTD约束。


七.Web服务器介绍

程序架构:

C/S(client/server)

> QQ 微信 LOL

优点:

有一部分代码写在客户端, 用户体验比较好。

缺点:

服务器更新,客户端也要随着更新。 占用资源大。

* B/S(browser/server)

> 网页游戏 , WebQQ ...

优点:

客户端只要有浏览器就可以了。 占用资源小, 不用更新。

缺点:

用户体验不佳。

服务器:

其实服务器就是一台电脑。 配置比一般的要好。

Web服务器软件:

> 客户端在浏览器的地址栏上输入地址 ,然后web服务器软件,接收请求,然后响应消息。

> 处理客户端的请求, 返回资源 | 信息

Web应用  需要服务器支撑。

主要有三种:

Tomcat  apache

WebLogic BEA

Websphere IBM 

IIS 微软


八:如何将一个项目发布到tomcat上

方法一:

1.拷贝这个文件到webapps/root文件夹里面,在浏览器里访问:

http://localhost:8080/stu.xml

或者在webapps里面建一个文件夹xml,将文件放置到xml文件夹里,在浏览器里访问:

http://localhost:8080/xml/stu.xml

方法二:

配置虚拟路径

使用localhost:8080打开tomcat首页,在左侧找到tomcat的文档入口,点击进去后,在左侧接这找到Cnotext入口,进入找到:

http://10.2.75.3:8080/docs/config/context.html

1. 在本地tomcat程序目录conf/server.xml 找到host元素节点。

2. 用记事本编辑打开,加入以下内容。

  <Context docBase="" path=""></Context>

 docBase的双引号内填写项目的路径地址 如: C:\xml

  path的双引号内填写对应的虚拟路径:以/开头自己拟定,例如:/a

  对应的访问方式为: http://localhost:8080/a/stus.xml 

  完整的格式如下:

  <Context docBase="C:\xml" path="/a"></Context>

3. 在浏览器地址栏上输入: http://localhost:8080/a/stus.xml

方法三:

配置虚拟路径

1. 在tomcat/conf/catalina/localhost/ 文件夹下新建一个xml文件,名字可以自己定义。      如:person.xml

2. 在这个文件里面写入以下内容

  <?xml version='1.0' encoding='utf-8'?>

  <Context docBase="C:\xml"></Context>

3. 在浏览器上面访问

  http://localhost:8080/person/xml文件的名字即可


九:给Eclipse配置Tomcat

1. 在server里面 右键新建一个服务器, 选择到apache分类, 找到对应的tomcat版本, 接着一步一步配置即可。

2. 配置完毕后, 在server 里面, 右键刚才的服务器,然后open  , 找到上面的Server Location , 选择中间的 Use Tomcat installation...

3. 创建web工程, 在WebContent下定义html文件, 右键工程, run as server


总结

XML:
1. 会定义xml

2. 会解析xml

    1)会dom4j的基本解析

    2)Xpath手法

tomcat:

1. 会安装 ,会启动 , 会访问。

2. 会设置虚拟路径

3. 会给eclipse配置tomcat

上一篇下一篇

猜你喜欢

热点阅读