1.XML 简介

什么是 xml?
xml 是可扩展的标记性语言。

xml 的作用?
xml 的主要作用有:
1、用来保存数据,而且这些数据具有自我描述性
2、它还可以做为项目或者模块的配置文件
3、还可以做为网络传输数据的格式(现在 JSON 为主)。

3、xml 语法

  1. 文档声明。
    2. 元素(标签)
    3. xml 属性
    4. xml 注释
    5. 文本区域(CDATA 区)

3.1、文档声明

1)创建一个 xml 文件

  1. <?xml version="1.0" encoding="UTF-8"?> xml 声明。
  2. <!-- xml 声明 version 是版本的意思 encoding 是编码 -->
  3. 而且这个<?xml 要连在一起写,否则会有报错

属性
version 是版本号
encoding 是 xml 的文件编码
standalone=”yes/no” 表示这个 xml 文件是否是独立的 xml 文件
2)图书有 id 属性 表示唯一 标识,书名,有作者,价格的信息

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <!-- xml 声明 version 是版本的意思 encoding 是编码 -->
  3. <books> <!-- books表示多个图书信息 sn属性表示图书序号 -->
  4. <book sn="SN123412123412">
  5. <name>时间简史</name><!-- name 标签描述 的是图书 的信息 -->
  6. <author>霍金</author><!-- author 单词是作者的意思 ,描述图书作者 -->
  7. <price>75</price><!-- price 单词是价格,描述的是图书 的价格 -->
  8. </book>
  9. <book sn="123412123411">
  10. <name>Java从入门到入狱</name>
  11. <author>沙丘</author>
  12. <price>9.9</price>
  13. </book>
  14. </books>

3.2、xml 注释

html 和 XML 注释 一样 :

3.3、元素(标签)

咱们先回忆一下:
html 标签:
格式:<标签名>封装的数据</标签名>
单标签: <标签名 />

换行


水平线
双标签 <标签名>封装的数据</标签名>
标签名大小写不敏感
标签有属性,有基本属性和事件属性
标签要闭合(不闭合 ,html 中不报错。但我们要养成良好的书写习惯。闭合)

1)什么是 xml 元素
QQ截图20220305222744.png
元素是指从开始标签到结束标签的内容。
例如:
元素 我们可以简单的理解为是 标签。
Element 翻译 元素
2)XML 命名规则
XML 元素必须遵循以下命名规则:
2.1)名称可以含字母、数字以及其他的字符
2.2)名称不能以数字或者标点符号开始
2.3)名称不能以字符 “xml”(或者 XML、Xml)开始 (它是可以的)
2.4)名称不能包含空格

3)xml 中的元素(标签)也 分成 单标签和双标签:
单标签
格式: <标签名 属性=”值” 属性=”值” …… />
双标签
格式:< 标签名 属性=”值” 属性=”值” ……>文本数据或子标签</标签名>

3.4、xml 属性

xml 的标签属性和 html 的标签属性是非常类似的,属性可以提供元素的额外信息
在标签上可以书写属性:
一个标签上可以书写多个属性。每个属性的值必须使用 引号 引起来
的规则和标签的书写规则一致。
QQ截图20220305223203.png
1)属性必须使用引号引起来,不引会报错示例代码

3.5、语法规则:

3.5.1)所有 XML 元素都须有关闭标签(也就是闭合)
3.5.2)XML 标签对大小写敏感
3.5.3)XML 必须正确地嵌套
3.5.4)XML 文档必须有根元素
根元素就是顶级元素,
没有父标签的元素,叫顶级元素。
根元素是没有父标签的顶级元素,而且是唯一一个才行。
3.5.5)XML 的属性值须加引号
3.5.6)XML 中的特殊字符
3.5.7)文本区域(CDATA 区)
CDATA 语法可以告诉 xml 解析器,我 CDATA 里的文本内容,只是纯文本,不需要 xml 语法解析
CDATA 格式:
<![CDATA[ 这里可以把你输入的字符原样显示,不会解析 xml ]]>
关于 CDATA 部分的注释:
CDATA 部分不能包含字符串 “]]>”。也不允许嵌套的 CDATA 部分。
标记 CDATA 部分结尾的 “]]>” 不能包含空格或折行。

2、xml 解析技术介绍

xml 可扩展的标记语言。
不管是 html 文件还是 xml 文件它们都是标记型文档,都可以使用 w3c 组织制定的 dom 技术来解析。
QQ截图20220305224224.png
document 对象表示的是整个文档(可以是 html 文档,也可以是 xml 文档)

早期 JDK 为我们提供了两种 xml 解析技术 DOM 和 Sax 简介(已经过时,但我们需要知道这两种技术)
dom 解析技术是 W3C 组织制定的,而所有的编程语言都对这个解析技术使用了自己语言的特点进行实现。
Java 对 dom 技术解析标记也做了实现。
sun 公司在 JDK5 版本对 dom 解析技术进行升级:SAX( Simple API for XML )
SAX 解析,它跟 W3C 制定的解析不太一样。它是以类似事件机制通过回调告诉用户当前正在解析的内容。
它是一行一行的读取 xml 文件进行解析的。不会创建大量的 dom 对象。
所以它在解析 xml 的时候,在内存的使用上。和性能上。都优于 Dom 解析。

第三方的解析:
jdom 在 dom 基础上进行了封装 、
dom4j 又对 jdom 进行了封装。
pull 主要用在 Android 手机开发,是在跟 sax 非常类似都是事件机制解析 xml 文件。
这个 Dom4j 它是第三方的解析技术。我们需要使用第三方给我们提供好的类库才可以解析 xml 文件。

3、dom4j 解析技术(重点*

由于 dom4j 它不是 sun 公司的技术,而属于第三方公司的技术,我们需要使用 dom4j 就需要到 dom4j 官网下载 dom4j 的 jar 包。

3.3、dom4j 编程步骤:

第一步: 先加载 xml 文件创建 Document 对象
第二步:通过 Document 对象拿到根元素对象
第三步:通过根元素.elelemts(标签名); 可以返回一个集合,这个集合里放着。所有你指定的标签名的元素对象
第四步:找到你想要修改、删除的子元素,进行相应在的操作
第五步,保存到硬盘上

3.4、获取 document 对象

创建一个 lib 目录,并添加 dom4j 的 jar 包。并添加到类路径。
需要解析的 books.xml 文件内容

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <books>
  3. <book sn="SN1212341232">
  4. <name>辟邪剑谱</name>
  5. <price>9.9</price>
  6. <author>班主任</author>
  7. </book>
  8. <book sn="SN1212341231">
  9. <name>葵花宝典</name>
  10. <price>99.99</price>
  11. <author>班长</author>
  12. </book>
  13. </books>
  1. package com.atguigu.pojo;
  2. import org.dom4j.Document;
  3. import org.dom4j.DocumentException;
  4. import org.dom4j.Element;
  5. import org.dom4j.io.SAXReader;
  6. import org.junit.Test;
  7. import java.util.List;
  8. public class Dom4jTest {
  9. @Test
  10. public void test1() throws DocumentException {
  11. //创建一个SAXReader输入流,去读取xml配置文件,生产document对象
  12. SAXReader saxReader = new SAXReader();
  13. Document document = saxReader.read("src/books.xml");
  14. System.out.println(document);
  15. }
  16. /**
  17. * 读取books.xml文件生成doc类
  18. */
  19. @Test
  20. public void test2() throws Exception {
  21. //1、读取books.xml文件
  22. SAXReader saxReader = new SAXReader();
  23. Document document = saxReader.read("src/books.xml");
  24. //2、通过Document对象标签对象
  25. Element rootElement = document.getRootElement();
  26. System.out.println(rootElement);
  27. //3、通过根元素获取book标签对象
  28. //element()和elements()都是通过标签名查找子元素
  29. List<Element> books = rootElement.elements("book");
  30. //4、遍历,处理每个book标签转换为Book类
  31. for (Element book : books) {
  32. //asXML()把标签对象,转换为标签字符串
  33. Element nameElement = book.element("name");
  34. //getText();可以获取标签中的文本内容
  35. String nameText = nameElement.getText();
  36. //直接获取指定标签名的文本内容
  37. String priceText = book.elementText("price");
  38. String authorText = book.elementText("author");
  39. String snValue = book.attributeValue("sn");
  40. System.out.println(new Book(snValue, nameText, Double.parseDouble(priceText), authorText));
  41. }
  42. }
  43. }

1.JavaWeb 的概念

a)什么是 JavaWeb
JavaWeb 是指,所有通过 Java 语言编写可以通过浏览器访问的程序的总称,叫 JavaWeb。
JavaWeb 是基于请求和响应来开发的。
b)什么是请求
请求是指客户端给服务器发送数据,叫请求 Request。
c)什么是响应
响应是指服务器给客户端回传数据,叫响应 Response。
d)请求和响应的关系
请求和响应是成对出现的,有请求就有响应
QQ截图20220306142158.png

2.Web 资源的分类

web 资源按实现的技术和呈现的效果的不同,又分为静态资源和动态资源两种。
静态资源: html、css、js、txt、mp4 视频 , jpg 图片
动态资源: jsp 页面、Servlet 程序

3.常用的 Web 服务器

Tomcat:由 Apache 组织提供的一种 Web 服务器,提供对 jsp 和 Servlet 的支持。它是一种轻量级的 javaWeb 容器(服务器),也是当前应用最广的 JavaWeb 服务器(免费)。
Jboss:是一个遵从 JavaEE 规范的、开放源代码的、纯 Java 的 EJB 服务器,它支持所有的 JavaEE 规范(免费)。
GlassFish: 由 Oracle 公司开发的一款 JavaWeb 服务器,是一款强健的商业服务器,达到产品级质量(应用很少)。
Resin:是 CAUCHO 公司的产品,是一个非常流行的服务器,对 servlet 和 JSP 提供了良好的支持,
性能也比较优良,resin 自身采用 JAVA 语言开发(收费,应用比较多)。
WebLogic:是 Oracle 公司的产品,是目前应用最广泛的 Web 服务器,支持 JavaEE 规范,而且不断的完善以适应新的开发要求,适合大型项目(收费,用的不多,适合大公司)。

4.Tomcat 服务器和 Servlet 版本的对应关系

QQ截图20220306142346.png
Servlet 程序从 2.5 版本是现在世面使用最多的版本(xml 配置)
到了 Servlet3.0 之后。就是注解版本的 Servlet 使用。
以 2.5 版本为主线讲解 Servlet 程序。

5.Tomcat 的使用

a)安装
找到你需要用的 Tomcat 版本对应的 zip 压缩包,解压到需要安装的目录即可。
b)目录介绍
bin 专门用来存放 Tomcat 服务器的可执行程序
conf 专门用来存放 Tocmat 服务器的配置文件
lib 专门用来存放 Tomcat 服务器的 jar 包
logs 专门用来存放 Tomcat 服务器运行时输出的日记信息
temp 专门用来存放 Tomcdat 运行时产生的临时数据
webapps 专门用来存放部署的 Web 工程。
work 是 Tomcat 工作时的目录,用来存放 Tomcat 运行时 jsp 翻译为 Servlet 的源码,和 Session 钝化的目录。
c)如何启动 Tomcat 服务器
找到 Tomcat 目录下的 bin 目录下的 startup.bat 文件,双击,就可以启动 Tomcat 服务器。
如何测试 Tomcat 服务器启动成功???
打开浏览器,在浏览器地址栏中输入以下地址测试:
1、http://localhost:8080
2、http://127.0.0.1:8080
3、http://真实 ip:8080
当出现如下界面,说明 Tomcat 服务器启动成功!!!
QQ截图20220306142816.png
常见的启动失败的情况有,双击 startup.bat 文件,就会出现一个小黑窗口一闪而来。
这个时候,失败的原因基本上都是因为没有配置好 JAVA_HOME 环境变量。
配置 JAVA_HOME 环境变量:
常见的 JAVA_HOME 配置错误有以下几种情况:
一:JAVA_HOME 必须全大写。
二:JAVA_HOME 中间必须是下划线,不是减号-
三:JAVA_HOME 配置的路径只需要配置到
另一种启动 tomcat 服务器的方式
1、打开命令行
2、cd 到 你的 Tomcat 的 bin 目录下
QQ截图20220306143335.png
3、敲入启动命令: catalina run
d)Tomcat 的停止
1、点击 tomcat 服务器窗口的 x 关闭按钮
2、把 Tomcat 服务器窗口置为当前窗口,然后按快捷键 Ctrl+C
3、找到 Tomcat 的 bin 目录下的 shutdown.bat 双击,就可以停止 Tomcat 服务器
e)如何修改 Tomcat 的端口号
Mysql 默认的端口号是:3306
Tomcat 默认的端口号是:8080
找到 Tomcat 目录下的 conf 目录,找到 server.xml 配置文件。
f) 如何部暑 web 工程到 Tomcat 中
第一种部署方法:只需要把 web 工程的目录拷贝到 Tomcat 的 webapps 目录下即可。
1、在 webapps 目录下创建一个 book 工程:
2、把上午做的书城第一阶段的内容拷贝到里面:
3、如何访问 Tomcat 下的 web 工程。
只需要在浏览器中输入访问地址格式如下:
http://ip:port/工程名/目录下/文件名

第二种部署方法:
找到 Tomcat 下的 conf 目录\Catalina\localhost\ 下,创建如下的配置文件:
QQ截图20220311091403.png
abc.xml 配置文件内容如下:


访问这个工程的路径如下:http://ip:port/abc/ 就表示访问 E:\book 目录
g)手托 html 页面到浏览器和在浏览器中输入 http://ip:端
口号/工程名/访问的区别
手托 html 页面的原理:
QQ截图20220311091521.png
输入访问地址访问的原因:
QQ截图20220311091617.png
h)ROOT 的工程的访问,以及 默认 index.html 页面的访

当我们在浏览器地址栏中输入访问地址如下:
http://ip:port/ ====>>>> 没有工程名的时候,默认访问的是 ROOT 工程。
当我们在浏览器地址栏中输入的访问地址如下:
http://ip:port/工程名/ ====>>>> 没有资源名,默认访问 index.html 页面

6.IDEA 整合 Tomcat 服务器

操作的菜单如下:File | Settings | Build, Execution, Deployment | Application Servers
QQ截图20220306150156.png
QQ截图20220306150217.png

7.IDEA 中动态 web 工程的操作

a)IDEA 中如何创建动态 web 工程
1、创建一个新模块:
2、选择你要创建什么类型的模块:
3、输入你的模块名,点击【Finish】完成创建。
b)Web 工程的目录介绍
QQ截图20220306150619.png
c)如何给动态 web 工程添加额外 jar 包
1、可以打开项目结构菜单操作界面,添加一个自己的类库:
QQ截图20220311091833.png

d)如何在 IDEA 中部署工程到 Tomcat 上运行
1、建议修改 web 工程对应的 Tomcat 运行实例名称:
2、确认你的 Tomcat 实例中有你要部署运行的 web 工程模块:
3、你还可以修改你的 Tomcat 实例启动后默认的访问地址:

04尚硅谷书城项目第一阶段王振国 - 课堂笔记.pdf
05尚硅谷_Tomcat王振国 - 课堂笔记.pdf
05尚硅谷_xml王振国 - 课堂笔记.pdf