您的位置:首页 > 运维架构 > Tomcat

Day24 JavaWeb知识 (1)_XML&tomcat

2019-06-03 17:13 1116 查看

(一)XML

一.概述和作用

  1. eXtendsible Markup Language   可扩展的标记语言
  2. 可以用来保存数据
    可以用来配置文件
    数据传输载体

 二.定义xml

    其实就是一个文件,文件的后缀为  .xml

  1. 文档声明
    - -简单声明,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" ?>
  2. encoding详解: 在解析这个xml的时候,使用什么编码去解析      --解码
           电脑上的文件再保存的时候并不是真正的储存文字,而是存储这些文字的二进制.
    这些二进制根据文件使用的编码来得到
  3. 默认文件保存的时候,使用的是GBK的编码保存
    所以让xml正常显示中文有两种办法
    - - 让encoding也是 GBK 或者 gb2312
    - - 如果encoding是utf-8,那么保存文件的时候也必须使用utf-8
    保存的时候见到的ANSI对应的是本地编码 GBK
  • 元素定义(标签)
    - - 其实就是里面的标签, <>括起来的都叫元素 ,成对出现  <stu></stu>
    - - 文档声明下来的第一个元素叫做根元素(根标签)
    - - 标签里可以嵌套标签
    - - 空标签:既是开始也是结束.一般配合属性来用<br/>
    - - 标签可以自定义. 
  • 简单元素 & 复杂元素
      简单元素
      - - 元素里面包含了普通的文字
    1. 复杂元素
      - - 元素里面还可以嵌套其它的元素
  • 属性的定义
    定义在元素里面,<元素名称  属性名称="属性的值"></元素名称>
  • 三.xml注释

    1. 与html的注释一样 <!-- -->
    2. xml的注释,不允许放置在文档的第一行,必须在文档声明的下面

    四.CDATA区

    1. 非法字符:严格的讲,在XML中仅有<和&是非法的,省略号,引号和大于是合法的,但把他们替换成实体引用是个好的习惯
      <   &lt;             &   &amp;
    2. 如果某段字符串里面有过多的字符,并且里面包含了类似标签或关键字的这种文字,不想让xml的解析器去解析,那么可以使用CDATA来包装,不过这个CDATA一般比较少看到,通常在服务器给客户端返回数据的时候.
      < ! [CDATA[ <a href="http://fssaf.com">练习</a>] ] >

    五.XML解析

    其实就是获取元素里面的字符数据或者属性数据

    1. XML解析方式(面试常用) 有很多种,但是常用的有两种.
      - - DOM docuement:把整个XML全部读到内存当中,形成树状结构,整个文档称之为document对象,属性对应Attribute对象,
          所有的元素节点对应Element对象,文本也可以称之为Text对象,以上所有对象都可以称之为Node节点. 
          如果xml特别大,那么将会造成内存溢出,文档可以进行增删操作
      - - SAX simple API for XML 基于事件驱动,读取一行,解析一行
          不会造成内存溢出,不可以进行增删,只能查询
  • 针对这两种解析方式的API
    一些组织或者公司,针对以上两种解析方式,给出的解决方案
    jaxp     sun公司,比较繁琐
    jdom   
    dom4j  使用比较广泛
  • Dom4j 基本用法
    element.element("stu")    //返回该元素下的第一个stu元素
    element.elements();         //返回该元素下的所有子元素
      创建SaxReader对象  SAXReader reader = new SAXReader();
    1. 指定解析的xml          Document document = reader.read(new File("../stus.xml"));
    2. 获取根元素                Element rootElement = document.getRootElement();
    3. 根据根元素获取子元素或者下面的子孙元素
  • Dom4j的Xpath使用
    - - dom4j里面支持Xpath的写法. Xpath其实是xml的路径语言,支持我们在解析的时候,能够快速的定位到具体的某一个元素

      添加jar包依赖
      jaxen-1.1-beta-6.jar

    1. 在查找指定节点的时候,根据XPath语法规则来查找
      //要想使用Xpath,还得添加支持的jar   获取的是第一个 之返回一个
        Element nameElement = (Element)rootElement.selectSingleNode("//name");
      //获取的所有name元素
        List<Element> list = rootElement.selectNodes("//name");

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

    六.XML约束

    1. DTD     Document Type Definition文档类型定义
      - - 语法自成一派,早期就出现的,可读性比较差 < !ELEMENT 元素的名称 元素的类型 >
      <!ELEMENT stus (stu)>                        //复杂元素 (子元素)
      <!ELEMENT stu (name,age)>              //复杂元素  (子元素)
      <!ELEMENT name (#PCDATA)>          //简单元素 (#PCDATA)
      <!ELEMENT age (#PCDATA)>
    2. 第一,二种在xml中引入dtd
          文档类型  根标签名字 网络上的dtd       dtd的名字             dtd的路径
      <!DOCTYPE     stus          PUBLIC       "//UNKOWN/" "unknown.dtd">
          文档类型  根标签名字 引入本地的dtd       dtd的路径
      <!DOCTYPE     stus         SYSTEM         "../stus.dtd">
    3. 第三种引入dtd:直接在xml中写dtd
      <!DOCTYPE  stus[    填入1的内容       ]>
    4. 添加属性的定义
      <!ATTLIST stu id CDATA 默认值>  //值为字符数据
      <!ATTLIST stu id ID 默认值>          //约束id是唯一的
    5. 元素的个数
      <!ELEMENT stus (stu)+>  
      +   一个或多个
      *   零个或多个
      ?  零个或一个
    6. <!ELEMENT stu (name , age)>   按照顺序来
      <!ELEMENT stu (name | age)>   两个中只能包含一个
  • Schema
    - - 其实就是一个xml,使用xml的语法规则,xml解析器解析起来比较方便,是为了替代DTD
    - - 但是Schema 约束文本内容比DTD的内容还要多,所以目前也没有真正意义上的替代DTD
    <?xml version="1.0" encoding="UTF-8"?>
    <schema
       
    //xml namespace:名称空间/命名空间
        xmlns="http://www.w3.org/2001/XMLSchema"
      
    //目标名称空间.下面定义的那些元素都与这个名称空间绑定上
        targetNamespace="http://www.example.org/stus"
      
    //元素的格式化情况
        elementFormDefault="qualified">
    </schema>
      在将简单元素嵌套在复杂元素中时
      <element name = "stu">复杂元素
               <complexType>
                        <sequence>
                                简单元素
                        </sequence>
               </complexType>
      </element >
  • Schama约束的Xml中的格式
    <stus
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   //不可改动
             xmlns="http://www.example.org/stus"                 //根据Schama中的顶部目标名称空间
             xsi:schemaLocation="http://www.example.org/stus stus.xsd"   //xsd文件路径
    >
        内部元素
    </stus>
  • (二)tomcat

    一.服务器

    1. 服务器
      其实服务器就是一台电脑,配置比一般的要好
    2. web服务器
      处理客户端的请求,返回资源 | 信息
      - - web应用   需要服务器支撑 
      Tomcat               apache
      WebLogic           BEA
      WebSphere        IBM
      IIS                      微软

     二.Tomcat安装

    1. 解压,安装.
    2. 找到bin目录下的startup.bat,启动后会出现黑窗口,表明成功安装,然后浏览器输入localhost:8080看到内容则成功
    3. 若黑窗口一闪而过,我个人是因为没有配置JAVA_HOME D:\JDK1.8,只配置了path D:\JDK1.8\bin

    三.Tomcat目录介绍

    1. bin
      - - 包含了一些jar , bat 文件 , startup.bat
    2. conf
      - - tomcat的配置     server.xml   web.xml
    3. lib
      - - tomcat运行所需的jar文件
    4. logs
      - - 运行的日志文件 
    5. temp
      - - 临时文件
    6. webapps
      - - 发布到tomcat服务器上的项目,就存放在这个目录
    7. work
      - - jsp翻译成class文件存放地

    四.如何把一个项目发布到tomcat中

    需求:如何能让其他的电脑访问我这台电脑的资源
    localhost : 本机地址

    1. - - 拷贝这个文件到webapps/ROOT底下,在浏览器里面访问
               http://localhost:8000/stu.xml
      - - 在webapps下面新建一个文件夹xml,然后拷贝文件放置到这个文件夹中
               http://localhost:8000/xml/stu.xml
               使用ip地址访问
               http:/ip地址:8000/xml/stu.xml
    2. - - 配置虚拟路径
      使用localhost:8080 打开tomcat首页,点击Documentation入口,然后点击Configuration,接着找到Context入口进入
               http://localhost:8080/docs/config/context.html
      - 1 - 在conf/server.xml  找到host元素节点
      - 2 - 加入以下内容
               <!-- docBase:项目的路径地址  如: D:\xml\stu.xml
               path : 对应的是虚拟路径,一定要以/开头
               对应的访问方式是: http://localhost:8080/a/stu.xml  -->
               <Context docBase="D:\xml" path="/a"></Context>
      - 3 - 浏览器访问: http://localhost:8080/a/stu.xml 
    3. - -  配置虚拟路径
        - 1 - 在tomcat/conf/catalina/localhost/ 文件夹下新建一个xml文件,名字可以自己定义stu.xml
        - 2 - 在这个文件里面写入以下内容
                   <?xml version='1.0' encoding='utf-8'?>
                  <Context docBase="D:\xml" ></Context>
        - 3 - 浏览器访问:  http://localhost:8080/stu/stu.xml

    五.给Eclipse配置Tomcat

    1. 在server里面右键新建一个服务器,选择到apache分类,找到对应的tomcat版本,一步步配置即可
    2. 配置完毕后,在server里面,右键open,找到Server Location  选择Tomcat
    3. 创建web工程,在webContent下定义html文件,右键工程,run as server

     

    以上内容学习自黑马Java

    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: