美文网首页
Web核心day01-XML&TOMCAT

Web核心day01-XML&TOMCAT

作者: 爱乐之农 | 来源:发表于2018-10-21 23:41 被阅读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

    相关文章

      网友评论

          本文标题:Web核心day01-XML&TOMCAT

          本文链接:https://www.haomeiwen.com/subject/hzmpzftx.html