【JavaWeb】Tomcat(93-120)
93.xml-什么是XML以及他的作用
什么是 xml?
xml 是可扩展的标记性语言。
xml 的作用?
1、用来保存数据,而且这些数据具有自我描述性
2、它还可以做为项目或者模块的配置文件
3、还可以做为网络传输数据的格式(现在 JSON 为主)。
94.xml-第一个xml文件示例
XML语法
1.文档声明。
2.元素(标签)
3.xml 属性
4.xml 注释
5.文本区域(CDATA 区)
我们创建一个简单 XML 文件,用来描述图书信息
创建一个 xml 文件
<?xml version="1.0" encoding="utf-8" ?><!-- xml声明 version是版本的意思 encoding是编码 --><books><!-- 这是xml注释 --><bookid="SN123123413241"><!-- book标签描述一本图书 id属性描述 的是图书 的编号 --><name>java编程思想</name><!-- name标签描述 的是图书 的信息 --><author>华仔</author><!-- author单词是作者的意思 ,描述图书作者 --><price>9.9</price><!-- price单词是价格,描述的是图书 的价格 --></book><bookid="SN12341235123"><!-- book标签描述一本图书 id属性描述 的是图书 的编号 --><name>葵花宝典</name><!-- name标签描述 的是图书 的信息 --><author>班长</author><!-- author单词是作者的意思 ,描述图书作者 --><price>5.5</price><!-- price单词是价格,描述的是图书 的价格 --></book></books>在浏览器中可以查看到文档
95.xml-xml语法介绍
html和XML注释一样:<!-- html 注释 -->html 标签:
格式:<标签名>封装的数据</标签名>单标签:<标签名/><br/>换行<hr/>水平线双标签<标签名>封装的数据</标签名>标签名大小写不敏感 标签有属性,有基本属性和事件属性 标签要闭合(不闭合 ,html 中不报错。但我们要养成良好的书写习惯。闭合)元素是指从开始标签到结束标签的内容。 例如:<title>java 编程思想</title>元素 我们可以简单的理解为是 标签。 Element 翻译 元素XML命名规则
1.名称可以含字母、数字以及其他的字符
2.名称不能以数字或者标点符号开始
3.名称可以以字符 “xml”(或者 XML、Xml)开始 (它是可以的)
4.名称不能包含空格
xml中的元素(标签)也分成单标签和双标签:
单标签 格式:<标签名属性=”值”属性=”值”....../>双标签 格式:< 标签名 属性=”值” 属性=”值” ......>文本数据或子标签</标签名>xml 的标签属性和html的标签属性是非常类似的,属性可以提供元素的额外信息
在标签上可以书写属性:
一个标签上可以书写多个属性。每个属性的值必须使用引号引起来。不然会报错
书写的规则和标签的书写规则一致。
语法规则:
1.所有 XML 元素都须有关闭标签(也就是闭合)
2.XML 标签对大小写敏感
3.XML 必须正确地嵌套
4.XML 文档必须有根元素
5.XML 的属性值须加引号
6.XML 中的特殊字符
7.文本区域(CDATA 区)
CDATA 语法可以告诉 xml 解析器,我 CDATA 里的文本内容,只是纯文本,不需要 xml 语法解析 CDATA 格式:<![CDATA[ 这里可以把你输入的字符原样显示,不会解析 xml ]]>96.xml-xml解析技术介绍
xml 可扩展的标记语言。
不管是 html 文件还是 xml 文件它们都是标记型文档,都可以使用 w3c 组织制定的 dom 技术来解析。
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 文件。
97.xml-使用dom4j读取xml文件得到Document对象
由于dom4j它不是sun公司的技术,而属于第三方公司的技术,我们需要使用 dom4j 就需要到 dom4j 官网下载 dom4j的 jar 包。
Dom4j 类库的使用
解压后:
dom4j 目录的介绍:
docs 是 文 档 目 录
如何查 Dom4j 的文档
Dom4j 快速入门
2) lib 目录
3) src 目录是第三方类库的源码目录:
dom4j 编程步骤:
第一步: 先加载 xml 文件创建 Document 对象第二步:通过 Document 对象拿到根元素对象
第三步:通过根元素.elelemts(标签名); 可以返回一个集合,这个集合里放着。所有你指定的标签名的元素对象
第四步:找到你想要修改、删除的子元素,进行相应在的操作
第五步,保存到硬盘上
获取 document 对象
创建一个 lib 目录,并添加 dom4j 的 jar 包。并添加到类路径。
需要解析的 books.xml 文件内容
<?xml version="1.0" encoding="UTF-8"?><books><booksn="SN12341232"><name>辟邪剑谱</name><price>9.9</price><author>班主任</author></book><booksn="SN12341231"><name>葵花宝典</name><price>99.99</price><author>班长</author></book></books>解析获取 Document 对象的代码
第一步,先创建 SaxReader 对象。这个对象,用于读取 xml 文件,并创建 Document
packagecom.atguigu.pojo;importorg.dom4j.Document;importorg.dom4j.io.SAXReader;importorg.junit.Test;publicclassDom4jTest{@Testpublicvoidtest1()throwsException{// 创建一个SaxReader输入流,去读取 xml配置文件,生成Document对象SAXReadersaxReader=newSAXReader();Documentdocument=saxReader.read("src/books.xml");System.out.println(document);}}98.xml-使用dom4j解析xml
1.读取bookes.xml文件
2.通过Document对象获取根元素
3.通过根元素获取book标签对象
4.遍历处理每个book标签转换为Book类(实体类)
//读取 xml 文件中的内容@TestpublicvoidreadXML()throwsDocumentException{// 需要分四步操作:// 第一步,通过创建 SAXReader 对象。来读取 xml 文件,获取 Document 对象// 第二步,通过 Document 对象。拿到 XML 的根元素对象// 第三步,通过根元素对象。获取所有的 book 标签对象// 第四步,遍历每个 book 标签对象。然后获取到 book 标签对象内的每一个元素,再通过 getText() 方法拿到起始标签和结束标签之间的文本内容//第一步,通过创建 SAXReader 对象。来读取 xml 文件,获取 Document 对象SAXReaderreader=newSAXReader();Documentdocument=reader.read("src/books.xml");// 第二步,通过 Document 对象。拿到 XML 的根元素对象Elementroot=document.getRootElement();// 打印测试// Element.asXML() 它将当前元素转换成为 String 对象// System.out.println( root.asXML() );//第三步,通过根元素对象。获取所有的 book 标签对象// Element.elements(标签名)它可以拿到当前元素下的指定的子元素的集合List<Element>books=root.elements("book");//第四步,遍历每个 book 标签对象。然后获取到 book 标签对象内的每一个元素,for(Elementbook:books){// 测试// System.out.println(book.asXML());// 拿到 book 下面的 name 元素对象ElementnameElement=book.element("name");// 拿到 book 下面的 price 元素对象ElementpriceElement=book.element("price");// 拿到 book 下面的 author 元素对象ElementauthorElement=book.element("author");// 再通过 getText() 方法拿到起始标签和结束标签之间的文本内容System.out.println("书名"+nameElement.getText()+" , 价格:"+priceElement.getText()+", 作者:"+authorElement.getText());}}打印内容:
99.Tomcat-JavaWeb概念
- 什么是 JavaWeb
JavaWeb 是指,所有通过 Java 语言编写可以通过浏览器访问的程序的总称,叫 JavaWeb。
JavaWeb 是基于请求和响应来开发的。 - 什么是请求
请求是指客户端给服务器发送数据,叫请求 Request。 - 什么是响应
响应是指服务器给客户端回传数据,叫响应 Response。 - 请求和响应的关系
请求和响应是成对出现的,有请求就有响应。
100.Tomcat-Web资源分类
web 资源按实现的技术和呈现的效果的不同,又分为静态资源和动态资源两种。
- 静态资源: html、css、js、txt、mp4 视频 , jpg 图片
- 动态资源: jsp 页面、Servlet 程序
101.Tomcat-常见的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 服务器(在收费的Web服务器中),支持 JavaEE 规范,而且不断的完善以适应新的开发要求,适合大型项目(收费,用的不多,适合大公司)。
102.Tomcat-Tomcat服务器和Servlet版本的对应关系
当前企业常用的版本 7、8
Servlet 程序从 2.5 版本是现在世面使用最多的版本(xml 配置)
到了 Servlet3.0 之后。就是注解版本的 Servlet 使用。
以 2.5 版本为主线讲解 Servlet 程序。
103.Tomcat-Tomcat服务器的安装
官网下载:https://tomcat.apache.org/
找到你需要用的 Tomcat 版本对应的 zip 压缩包,解压到需要安装的目录即可。
一般选择这个版本下载
104.Tomcat-Tomcat目录介
105.Tomcat-如何启动Tomcat服务器
找到 Tomcat 目录下的 bin 目录下的 startup.bat 文件,双击,就可以启动 Tomcat 服务器。
如何测试 Tomcat 服务器启动成功???
打开浏览器,在浏览器地址栏中输入以下地址测试:
1、http://localhost:80802、http://127.0.0.1:80803、http://真实 ip:8080当出现如下界面,说明 Tomcat 服务器启动成功!!!
106.Tomcat-常见的Tomcat服务器启动失败的原因
常见的启动失败的情况有,双击 startup.bat 文件,就会出现一个小黑窗口一闪而来。 这个时候,失败的原因基本上都是因为没有配置好 JAVA_HOME 环境变量。
配置 JAVA_HOME 环境变量:
107.Tomcat-Java_HOME配置失败的几种常见情况
环境变量配置
#此电脑--->属性--->高级系统设置--->环境变量--->系统变量(S)--->新建#变量名:CATALINA_HOME#变量值:(按照你的实际安装路径)D:\Programming\Apache\Tomcat\apache-tomcat-10.0.27#此电脑--->属性--->高级系统设置--->环境变量--->系统变量(S)--->找到Path变量--->编辑--->新建#新建值%CATALINA_HOME%\binJava_HOME配置失败的几种常见情况
一:JAVA_HOME 必须全大写。
二:JAVA_HOME 中间必须是下划线,不是减号-
三:JAVA_HOME 配置的路径只需要配置到 jdk 的安装目录即可。不需要带上 bin 目录。
108.Tomcat-另一种其它Tomcat服务器的方式catalina run
- 打开命令行
- cd 到 你的 Tomcat 的 bin 目录下
- 敲入启动命令: catalina run
可以显示错误信息
109.Tomcat-停止Tomcat服务器的几种方式
1、点击 tomcat 服务器窗口的 x 关闭按钮
2、把 Tomcat 服务器窗口置为当前窗口,然后按快捷键 Ctrl+C
3、找到 Tomcat 的 bin 目录下的 shutdown.bat 双击,就可以停止 Tomcat 服务器
110.Tomcat-修改Tomcat默认端口号
Mysql 默认的端口号是:3306
Tomcat 默认的端口号是:8080
找到 Tomcat 目录下的 conf 目录,找到 server.xml 配置文件。
平时上百度:http://www.baidu.com:80
HTTP 协议默认的端口号是:80,80会自动隐藏显示
111.Tomcat-第一种部署web工程的方式
只需要把 web 工程的目录拷贝到 Tomcat 的 webapps 目录下即可。
在 webapps 目录下创建一个 book 工程:
2. 把上午做的书城第一阶段的内容拷贝到里面:
如何访问 Tomcat 下的 web 工程。
只需要在浏览器中输入访问地址格式如下:
http://ip:port/工程名/目录下/文件名
http://ip:port此时访问到了webapps 文件夹下
112.Tomcat-第二种部署web工程的方式
找到 Tomcat 下的 conf 目录\Catalina\localhost\ 下,创建如下的配置文件:
abc.xml 配置文件内容如下:
<!-- Context 表示一个工程上下文 path 表示工程的访问路径:/abc docBase 表示你的工程目录在哪里--><Contextpath="/abc"docBase="E:\book"/>访问这个工程的路径如下:http://ip:port/abc/ 就表示访问 E:\book 目录
113.Tomcat-手托html页面到浏览器和在浏览器中输入地址访问的背后不同原因
手托 html 页面的原理:
输入访问地址访问的原因:
114.Tomcat-默认访问工程和默认访问的资源
当我们在浏览器地址栏中输入访问地址如下:
http://ip:port/ ====>>>> 没有工程名的时候,默认访问的是 ROOT 工程。index.jsp汤姆猫页面
当我们在浏览器地址栏中输入的访问地址如下:
http://ip:port/工程名/ ====>>>> 没有资源名,默认访问 index.html 页面
115.Tomcat-IDEA整合Tomcat服务器
操作的菜单如下:File | Settings | Build, Execution, Deployment | Application Servers
配置你的 Tomcat 安装目录
可以配置多个Tomcat
就可以通过创建一个 Model 查看是不是配置成功!!!
116.Tomcat-如何创建动态web工程
1、创建一个新模块:
2、选择你要创建什么类型的模块:3、输入你的模块名,点击【Finish】完成创建
4、创建成功如下图:
117.Tomcat-动态web工程目录介绍
118.Tomcat-给Tomcat添加第三方jar包
1、可以打开项目结构菜单操作界面,添加一个自己的类库:2、添加你你类库需要的 jar 包文件。
3、选择你添加的类库,给哪个模块使用:
4、选择 Artifacts 选项,将类库,添加到打包部署中:
119.Tomcat-如何在IDEA中启动部署web模板
1、建议修改 web 工程对应的 Tomcat 运行实例名称:
2、确认你的 Tomcat 实例中有你要部署运行的 web 工程模块:
3、你还可以修改你的 Tomcat 实例启动后默认的访问地址:
120.Tomcat-Tomcat实例使用的其他细节说明
修改工程访问路径
修改运行的端口号
修改运行使用的浏览器
配置资源热部署