A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Black_Y 初级黑马   /  2018-5-21 15:21  /  735 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

XML&Tomcat

###XML的概述:可扩展标记语言
```
允许用户自定义标签
```
###XML的作用:
```
一.传输 和 存取数据.
二.软件的配置文件.(重点)
```
###XML的使用:
```
XML的语法(比HTML严格)
基本语法:必须有关闭标签,区分大小写,属性需要又引号,标签必须正确嵌套.

文档声明:通常出现在XML的第一行第一列的位置.

写法:
    <?xml 属性名="属性值" 属性名="属性值 ..."?>
        version :必须有 使用"1.0"
        encoding :字符集. 是使用浏览器打开的时候采用的默认的字符集的编码.
        standalone:描述 XML 文档是否需要依赖其他的文件.
注释 : <-- 注释 -->

元素<标签>
    *XML命名规范:名称可以含字母`数字以及其他的字符,名称不能以数字或者标点符号开始,名称不能以字符"xml"(或者XML`Xml)开始,名称不能包含空格

   
   
*****名称中不能包含冒号

属性
    *属性的命名规范与元素一致
    *属性需要使用引号

特殊字符和CDATA区
XML的特殊字符:
&lt   <   小于
&gt   >   大于
&amp  &   和号
&apos '   单引号
&quot "   引号

XML的CDATA区:(CDATA:Character Data)
<![CDATA[内容]]>
```
###XML的解析:从XML文档中获得想要的数据(通过代码完成的.)
```
解析方式(重点)

    *DOM解析:DOM:Document Object Model.
    *SAX解析:Simple Api for XML.

DOM解析:一次性将文档加载到内存,形成树形结构进行解析.
    缺点:如果文档特别大,容易导致内存的溢出
    优点:对XML进行增删改的操作.
SAX解析:事件驱动的方式,一行一行进行解析的.
    缺点:不能对文档进行增删改的操作.
    优点:如果文档特别大,不会导致内存的溢出.

针对这两种解析的方式,不同的公司提供了不同的API的实现.

*JAXP : SUN公司提供的一套XML的解析的API.
*JDOM : 开源组织提供了一套XML的解析的API-jdom.
*DOM4J: 开源组织提供了一套XML的解析的API-dom4j.----------<<重点>>
*pull :主要应用在安卓手机端解析XML.
```
##DOM4J
```
步骤一.导入jar包
步骤二.创建解析器
步骤三.解析文档
步骤四.获得根节点
步骤五.查找根节点下的子节点
代码实现:
@Test
    /**
     * 获得元素的内容:查询的操作.
     */
    public void demo1() throws Exception{
        // 创建解析器
        SAXReader reader = new SAXReader();
        // 解析XML的文档
        Document document = reader.read("xml/demo1.xml");
        // 获得跟节点
        Element root = document.getRootElement();
        System.out.println(root.getName());
        // 查找跟节点下的子节点. element() elements();
        Element pElement = root.element("person"); // 查找的是第一个person元素
        // root.elements("person").get(1); // 查找的是第二个person元素
        Element nElement = pElement.element("name");
        Element aElement = pElement.element("age");
        Element sElement = pElement.element("sex");
        System.out.println(nElement.getText());
        System.out.println(aElement.getText());
        System.out.println(sElement.getText());
    }
    XPath:
* dom4j支持XPath的jar包.
    * jaxen-1.1-beta-6.jar
* dom4j的XPath支持的API:
    * List document.selectNodes(String xPath);
    * Node document.selectSingleNode(String xPath);
* 代码:
    @Test
    /**
     * DOM4J的XPath的写法:
     */
    public void demo2() throws Exception{
        // 创建解析器:
        SAXReader reader = new SAXReader();
        // 解析XML返回Document对象.
        Document document = reader.read("xml/demo1.xml");
        /*List<Node> list = document.selectNodes("//name");
        for (Node node : list) {
            Element element = (Element) node;
            System.out.println(element.getText());
        }*/
        
        List<Node> list = document.selectNodes("//person['@id']");
        for (Node node : list) {
            Element element = (Element) node;
            System.out.println(element.attributeValue("id"));
        }
    }

```
##XPath
```
*dom4j支持XPath的jar包.
*dom4j的XPath支持的API:
   
步骤一.创建解析器
步骤二.解析XML返回Document对象
步骤三.
```
##XML的约束(一个XML文件是可以插入多个约束的,一个名称空间对应一个约束)
```
概念:就是用来约束XML的文档中可以出现那些标签,不能出现那些标签,跟标签是否有顺序,出现的次数
作用:用来规范XML的写法.
种类及区别

    *DTD:语法自成一体
    *Schema:语法就是XML的语法,所以更容易被解析器所解析,
            支持名称空间.
            有比DTD更加强大的语义和语法的约束.
```
```
1.引入w3c名称空间:标识这个文档是约束文档
2.定义的元素或属性绑定一个名称空间
3.定义元素和属性:招多少个元素,区分元素是简单的还是复杂的,复杂需要确定是否有序,出现次数...
4.引入w3c的实例文档的名称空间:标识文档是被约束
5.引入约束的文档的名称空间
6.引入约束文档的位置
7.编写XML文档.
```
##1.3    案例二:使用Tomcat发布一个WEB项目.
需求:
有一个web项目,需要通过tomcat服务器被其他人访问到.
分析:
技术分析:
【软件的架构】

```
    C/S架构的软件:
* Client / Server 客户端和服务器端的软件. 都是需要在PC端安装的软件. 比如 QQ,迅雷,暴风...
* 优点:效果炫,一部分代码写到客户端(速度快).
* 缺点:服务器端更新,客户端都需要更新.

    B/S架构的软件:
* Browser / Server 浏览器端和服务器端的软件. 不需要安装到PC端,只需要有一个浏览器即可. 比如 京东,网银,WEBQQ,WEB迅雷...
* 优点:服务器端更新,客户端浏览器不需要进行更新.
* 缺点:效果不炫,所有的代码运行都在服务器端,导致服务器压力过大.
    * 效果:使用HTML5,CSS3可以做出很炫效果.
    * 服务器端压力:搭建服务器的集群.而且还有AJAX技术.
```
###【WEB的资源】
```
    静态资源:
* HTML,CSS,JS,图片...
    动态资源:
* PHP            :
* ASP            :
* Servlet/JSP    :

```
###【服务器】
```
    硬件:其实就是一台配置很高的电脑.
    软件:必须在一台电脑上安装服务器软件.这台电脑称为是WEB服务器.

```
###常见WEB服务器
```
    Apache        :发布PHP的.LAMP:Linux Apache MySQL PHP.
    IIS            :发布ASP的.
    WebSphere    :IBM公司研发,收费的大型服务器软件,支持EE的所有的开发规范.
    WebLogic    :BEA公司研发,收发的大型服务器软件,支持EE的所有的开发规范.
    Tomcat        :Apache组织研发,免费的小型的服务器软件,支持Servlet/JSP的开发规范.
    JBoss        :

```
###【WEB动态资源目录结构】
```
website
    |-----静态资源
    |-----WEB-INF
                |-----web.xml    :必须的
                |-----classes    :可选的
                |-----lib        :可选的
```
```

1.3.4.2    Tomcat常见问题:
【没有配置JAVA_HOME引发tomcat一闪消失】
* 一定要配置JAVA_HOME环境变量.
【端口号冲突的问题】
* 一种:将占用端口的应用结束.
    * netstat -ano
    * 打开任务管理器结束:
* 二种:修改自身应用的端口号.
    * tomcat/conf/server.xml
```

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马