美文网首页
XML&tomcat

XML&tomcat

作者: hgzzz | 来源:发表于2019-04-20 22:14 被阅读0次

XML

  1. XML:eXtendsible markup language 可扩展的标记语言。
  2. 用途:
    • 保存数据
    • 用来做配置文件
    • 数据传输载体
  3. 文档声明
    简单声明, version : 解析这个xml的时候,使用什么版本的解析器解析
    <?xml version="1.0" ?>

    encoding : 解析xml中的文字的时候,使用什么编码来翻译
    <?xml version="1.0" encoding="gbk" ?>

    standalone  : no - 该文档会依赖关联其他文档 ,  yes-- 这是一个独立的文档
    <?xml version="1.0" encoding="gbk" standalone="no" ?>
  1. 编码问题:文档声明中的字符编码意为解析xml中的文字的时候,使用什么编码来翻译,所以要正常显示中文,存文件和解析文件的编码应该一致。比如,电脑默认编码是GBK存储,所以encoding也要是GBK 或 gb2312。建议使用utf-8
  2. 书写规范
    • 元素定义(标签):其实就是里面的标签, <> 括起来的都叫元素 。 成对出现
    • 文档声明下来的第一个元素叫做根元素 (根标签)
    • 标签里面可以嵌套标签
    • 可以写空标签
    • 标签可以自定义
    • 注释 与html的注释一样。
    • 非法字符 < &使用实体 &lt; &amp;
<?xml version="1.0" encoding="utf-8" ?>
<stus>
    <stu id="1">
        <name>zhangsan</name>
        <age>24</age>
    </stu>
    <stu id="2">
        <name>lisi</name>
        <age>25</age>
    </stu>
</stus>
  1. 解析 XML:获取元素里面的字符数据或者属性数据。
    • 如果某段字符串里面有过多的字符, 并且里面包含了类似标签或者关键字的这种文字,不想让xml的解析器去解析。 那么可以使用CDATA来包装。 不过这个CDATA 一般比较少看到。 通常在服务器给客户端返回数据的时候。
      <des><![CDATA[<a href="http://www.baidu.com">我爱黑马训练营</a>]]></des>
    • 解析方式
      a. DOM
      b. SAX


      parse_type.png

      针对以上两种解析方式, 给出的解决方案有哪些?

jaxp  sun公司。 比较繁琐
jdom
dom4j  使用比较广泛
  1. dom4j的使用
    • 导入 jar 包
    • 创建SaxReader对象
    • 指定解析的xml
    • 获取根元素。
    • 根据根元素获取子元素或者下面的子孙元素
public class MainTest {
    public static void main(String[] args) {
        try{
            // 1. 创建sax读取对象
            SAXReader saxReader = new SAXReader();
            // 2. 指定解析的xml源
            Document document = saxReader.read(new File("src/com/xml/stus.xml"));
            //3. 得到元素
            Element rootElement = document.getRootElement();
            List<Element> elements = rootElement.elements();
            //遍历所有的stu元素
            for (Element element:elements) {
                String name = element.element("name").getText();
                String age = element.element("age").getText();
                System.out.println(name + age);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

  1. Xpath的使用:xpath其实是xml的路径语言,支持我们在解析xml的时候,能够快速的定位到具体的某一个元素。
    • 引入 jar 包
    • 在查找指定节点的时候,根据XPath语法规则来查找
    • 后续的代码与以前的解析代码一样。
  2. XML约束
    • DTD:语法自成一派, 早就出现的。 可读性比较差。
1. 引入网络上的DTD

   <!-- 引入dtd 来约束这个xml -->

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

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

1. 引入本地的DTD

   <!-- 引入本地的DTD  : 根标签名字 引入本地的DTD  dtd的位置 -->
   <!-- <!DOCTYPE stus SYSTEM "stus.dtd"> -->

2. 直接在XML里面嵌入DTD的约束规则

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

    <!DOCTYPE stus [
        <!ELEMENT stus (stu)>
        <!ELEMENT stu (name,age)>
        <!ELEMENT name (#PCDATA)>
        <!ELEMENT age (#PCDATA)>
    ]>

    <stus>
        <stu>
            <name>张三</name>
            <age>18</age>
        </stu>
    </stus>
  • DTD语法
    <!ELEMENT stus (stu)>  : stus 下面有一个元素 stu  , 但是只有一个
    <!ELEMENT stu (name , age)>  stu下面有两个元素 name  ,age  顺序必须name-age
    <!ELEMENT name (#PCDATA)> 
    <!ELEMENT age (#PCDATA)>
    <!ATTLIST stu id CDATA #IMPLIED> stu有一个属性 文本类型, 该属性可有可无
    元素的个数:

        + 一个或多个
        *  零个或多个
        ? 零个或一个

    属性的类型定义 

        CDATA : 属性是普通文字
        ID : 属性的值必须唯一
  • Schema:其实就是一个xml , 使用xml的语法规则, xml解析器解析起来比较方便 , 是为了替代DTD 。但是Schema 约束文本内容比DTD的内容还要多。 所以目前也没有真正意义上的替代DTD
    Schema文档
    约束文档:
    <!-- xmlns  :  xml namespace : 名称空间 /  命名空间
    targetNamespace :  目标名称空间 。 下面定义的那些元素都与这个名称空间绑定上。 
    elementFormDefault : 元素的格式化情况。  -->
    <schema xmlns="http://www.w3.org/2001/XMLSchema" 
        targetNamespace="http://www.itheima.com/teacher" 
        elementFormDefault="qualified">
        
        <element name="teachers">
            <complexType>
                 <!-- maxOccurs:出现次数 -->
                <sequence maxOccurs="unbounded">
                    <!-- 这是一个复杂元素 -->
                    <element name="teacher">
                        <complexType>
                            <sequence>
                                <!-- 以下两个是简单元素 -->
                                <element name="name" type="string"></element>
                                <element name="age" type="int"></element>
                            </sequence>
                        </complexType>
                    </element>
                </sequence>
            </complexType>
        </element>
    </schema>
  • 在xml中引入Schema文档
    实例文档:
    <?xml version="1.0" encoding="UTF-8"?>
    <!-- xmlns:xsi : 这里必须是这样的写法,也就是这个值已经固定了。
    xmlns : 这里是名称空间,也固定了,写的是schema里面的顶部目标名称空间
    xsi:schemaLocation : 有两段: 前半段是名称空间,也是目标空间的值 , 后面是约束文档的路径。
     -->
    <teachers
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://www.itheima.com/teacher"
        xsi:schemaLocation="http://www.itheima.com/teacher teacher.xsd"
    >
        <teacher>
            <name>zhangsan</name>
            <age>19</age>
        </teacher>
        <teacher>
            <name>lisi</name>
            <age>29</age>
        </teacher>
        <teacher>
            <name>lisi</name>
            <age>29</age>
        </teacher>
    </teachers>
  • 名称空间的作用一个xml如果想指定它的约束规则, 假设使用的是DTD ,那么这个xml只能指定一个DTD , 不能指定多个DTD 。 但是如果一个xml的约束是定义在schema里面,并且是多个schema,那么是可以的。简单的说: 一个xml 可以引用多个schema约束。 但是只能引用一个DTD约束。
    名称空间的作用就是在 写元素的时候,可以指定该元素使用的是哪一套约束规则。 如果不只有一套规则,那么都可以这么写
<name>张三</name>
<!-- aa 和 bb 表示两种不同的Schema约束规则-->
<aa:name></aa:name>
<bb:name></bb:name>

tomcat

  1. 程序架构
  • C/S(client/server) 有一部分代码写在客户端, 用户体验比较好。但是服务器更新,客户端也要随着更新。 占用资源大。
  • B/S(browser/server) 客户端只要有浏览器就可以了。占用资源小, 不用更新。但是用户体验不佳。
  1. 常见服务器
    Tomcat apache
    WebLogic BEA
    Websphere IBM
    IIS 微软
  2. 安装Tomcat
    a. 直接解压 ,然后找到bin/startup.bat,启动之后,如果能够正常看到黑窗口,表明已经成功安装,在浏览器的地址栏上输入 : http://localhost:8080 , 如果有看到内容 就表明成功了。
    b. 如果双击了startup.bat, 看到一闪而过的情形,一般都是 JDK的环境变量没有配置。
  • 目录结构
bin: 包含了一些jar ,  bat文件 。  startup.bat
conf:tomcat的配置  server.xml  web.xml
lib :tomcat运行所需的jar文件
logs:运行的日志文件
temp:临时文件
webapps:发布到tomcat服务器上的项目,就存放在这个目录。  
work:jsp翻译成class文件存放地
  1. 如何把一个项目发布到tomcat中
    a. 拷贝这个文件到webapps/ROOT底下, 在浏览器里面访问
    b. 通过配置文件配置虚拟路径
    在server.xml这个文件里面的Host节点中写入下内容<Context docBase="D:\xml02"></Context>
    

相关文章

  • XML&Tomcat

    Xml & Tomcat Xml eXtendsible markup language 可扩展的标记语言 X...

  • XML&tomcat

    XML XML:eXtendsible markup language 可扩展的标记语言。 用途:保存数据用来...

网友评论

      本文标题:XML&tomcat

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