xml、http协议、tomcat

1.XML
1.1 XML概述
1.什么是xml:英文Extensible MarkUp Language,可扩展的标记语言。
* 可扩展的标记语言:在xml里面的标记是可以扩展的。
* xml版本号1.0 ,1.1
xml用途:它用来存储数据
1.作为系统与系统之间传输数据的格式
2.作为项目的配置文件
3.保存有结构关系型的数据。
比如:

<china name="中国"><province name="河北"><city>衡水</city><city>保定</city>----</province>-----</china>

2.XML 和 html的比较:
1.xml文档的标记可以随意扩展,html的标记是预定义好的。
2.xml区分大小写,html不区分大小写。
3. html主要是用来显示数据的,xml是用来保存数据的。
4. html中,空格会自动过滤,而xml不会。
5. html中可以有多个根节点,在xml里面只有一个。

1.2 XML语法
1.XML的文档声明:
语法:<?xml version="1.0" encoding="utf-8" standalone="yes"?>
属性: version 用来表示xml的版本号
encoding 用来表示xml的编码格式
standalone 用来表示xml文档是否依赖外部的文件。
注意:xml的文档声明一定放到第一行,第一列。
比如:

 <?xml version="1.0" encoding="utf-8"?><china name="zhongguo"><province name="hebei"><city> hengshui</city></province></china>

2.XML元素定义:
xml文档都是通过元素操作(标记),元素是开始标记、属性、文本和结束标记组成。
比如:标记可以嵌套,必须合理的嵌套

bbbb

错误的写法:

bbbb

3.属性定义:
语法:
属性对应的值要用""给括起来。
4.注释:
html的注释:
javaScript的注释:参照java的注释
xml的注释:
注意:
1. xml是区分大小写的。
2. xml的标记不能以数字或者_下划线开头。比如<1a>内容</1a>,<_a>内容<_a>,错误的写法
3. xml的标记不能以xml或者XML(大小写都不可以)等开头。
4. xml的标记里面不能包含空格等特殊符号,比如内容</a a>,<a:b>内容</a:b> 错误的写法。

1.3 DTD 约束
1.什么是约束:在xml文档中,咱们可以通过一个文件来约束xml文档中的内容规范,这个规范就是约束。
简单来说:约束就是规定了xml文件中可以写什么,不可以写什么。
为什么要有约束?
因为xml文件可以随意写,如果标记随意写,在解析xml文件时,程序员就不清楚xml文件中的标记具体表示什么含义
所以说用约束规范xml文件的书写。
2.DTD约束
什么是DTD:文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。
DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。
语法:
比如:

  <!ELEMENT 书架 (书+)><!ELEMENT 书     (书名,作者,价格)><!ELEMENT 书名    (#PCDATA)><!ELEMENT 作者    (#PCDATA)><!ELEMENT 价格    (#PCDATA)>

3.DTD引入:
1.直接在xml文件中,引入dtd约束
语法:

      <!DOCTYPE 书架 [<!ELEMENT 书架 (书+)><!ELEMENT 书     (书名,作者,价格)><!ELEMENT 书名    (#PCDATA)><!ELEMENT 作者    (#PCDATA)><!ELEMENT 价格    (#PCDATA)>]>

2.外部引入方式:
>>> 本地引入:
语法:
>>> 公网引入:

4.DTD语法:
1.元素定义:
基本语法 <!ELEMENT 元素名称 元素内容>
元素内容对应的类型:
>>>普通的文本:#PCDATA
>>>子元素:比如说:(子元素1,子元素2,—)
>>>EMPTY:比如说
>>>ANY:代表任意内容,元素内容可以是普通的文本,也可以是子元素。
注意:
* 表示0个或者多个
+ 表示一个或者多个
| 任选一个
,表示子元素按顺序排列
? 表示可以出现0或者1

2.属性定义
语法:<!ATTLIST 元素名称 属性名称 属性类型 默认值>
属性类型:
CDATA:属性值为任意文本数据;
CDATA,即Character Data(字符数据)。表示属性的类型为字符类型!
Enumerated:属性值必须是枚举列表中的一个;
Enumerated不是关键字,定义枚举类型的属性需要给出枚举列表。当属性值为枚举类型时,那么这个属性的取值必须是枚举列表中的一个值
ID:属性值必须是唯一的,并且属性值不能以数字开头;
  一个元素最多只能有一个ID 属性,ID属性用来表示元素唯一性的唯一标识。ID属性就相当与元素的身份证号,必须是唯一标识!
IDREF:属性值必须是ID属性的值;
IDREF属性用来与其他元素建立关联关系,IDREF属性的值必须是另一元素的ID属性值
属性类型的设置说明:
#REQUIRED:表示属性是必须的;
#IMPLIED:表示属性是可选的,即这个属性可以不给出;

1.4 Schema约束
1.什么是Schema约束:它同DTD约束基本一样,也是用来规范xml文件内容的书写规范,只不过Schema的约束比DTD更加强大。
区别:
>>>DTD约束文件的后缀名dtd,机制采用自身的约束。
>>>Scheam约束文件的后缀名是xsd,它是基于xml语法格式。
2.名称空间:
名称空间的作用就是用来在xml文档中引入schema文件的,但是在一个xml文件中可以引入多个schema文件,就可以使用名称空间、
来区分不同的约束文件。
3.引入Schema文档:
第一种方式:通过名称空间来引入shcema文件,第二种:不通过名称空间引入。
4.Schema语法:
>>> 元素定义 >>>属性定义。

2.HTTP协议:
1.1 HTTP概述:
1.HTTP简单
什么是http协议:规范了浏览器和服务器交互或者通信的规则。
https: 基于http实现的,比http更加安全,提供了身份验证和通信内容加密。
服务器从二个层面:
>>>硬件:配置比较高的电脑。
>>>软件:它就是一个应用。比如 前面用过的mysql数据库服务器
2.Http 1.0 和Http 1.1
区别:http1.0 通信基制,每次从浏览器向服务器发送请求,都需要建立一个新的TCP连接。
http1.1 建立一个Tcp连接,可以发送多个请求,服务器在作出多个响应后,最后关闭这个Tcp连接。
3.Http消息:
http是基于请求和响应的。
Http消息:
>>>请求信息:
请求头信息:
Accept text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Encoding gzip, deflate
Accept-Language zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Connection keep-alive
Host localhost:8080
Referer http://localhost:8080/aa/regDemo.html
User-Agent Mozilla/5.0 (Windows NT 6.2; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0

>>>响应信息:
响应头信息:
Accept-Ranges bytes
Content-Length 331
Content-Type text/html
Date Mon, 20 Feb 2017 09:53:34 GMT
Etag W/“331-1449652621901”
Last-Modified Wed, 09 Dec 2015 09:17:01 GMT
Server Apache-Coyote/1.1
注意:浏览器有自带的抓包功能(查看请求和响应信息),点击F12(fn+f12).
火狐浏览器firebug插件抓包。
ie浏览器使用httpwatch插件抓包。

1.3 HTTP请求消息
>>>请求行:
POST /aa/registersuccess.html HTTP/1.1
分三部分:
>>>第一部分:请求的方式。
>>>第二部分:请求的资源地址
>>>第三部分:请求的协议和版本号
>>>请求头信息:
Accept text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Encoding gzip, deflate
Accept-Language zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Connection keep-alive
Host localhost:8080
Referer http://localhost:8080/aa/regDemo.html
User-Agent Mozilla/5.0 (Windows NT 6.2; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0
比如:host 请求资源主机的ip地址和端口号
Referer:请求是从什么地方发起的。
User-Agent:浏览器的版本、类型,以及内核。
>>>请求正文(只有post请求,才有请求正文):
username=aaa_bbb&password=123456&phone=13800000000
get请求和post请求的区别: get请求没有请求正文,get请求的数据在浏览器的地址栏
post请求有请求正文,请求的数据在请求正文里面。
1.4 HTTP响应信息:
响应信息分三部分组成:
>>>响应行信息:
HTTP/1.1 200 OK
* 协议和版本号
* 状态码: 200,302,304,404,405,500等
比如 200:响应成功(服务器向浏览器响应数据成功)
* ok:对状态码的描述。
>>>响应头信息:
Accept-Ranges bytes
Content-Length 331
Content-Type text/html
Date Mon, 20 Feb 2017 09:53:34 GMT
Etag W/“331-1449652621901”
Last-Modified Wed, 09 Dec 2015 09:17:01 GMT
Server Apache-Coyote/1.1
比如:Server 响应头对应的就是咱们使用的服务器。
>>>响应正文信息:

         <body><center><font color="green" size="7">注册成功</font></center></body>

3.TOMCAT服务器
1.1 TOMCAT简介
web程序开发中常用的服务器都那些:
* Tomcat:它是属于apache开源组织,免费。
* weblogic:它是属于bea公司的,大型的服务器,收费。
* websphere:它是IBM公司,大型的服务器,收费。
1.Tomcat安装与卸载
1.tomcat安装分两种情况:
>>> 在apache官网下载: http://tomcat.apache.org 下载对应的版本,它目前的最高版本9.0
但是在开发中不用,因为高版本不稳定。
>>> 使用绿色版本(免安装):直接解压tomcat的压缩包,就能使用。
2.启动和关闭tomcat服务器
>>>启动:找到bin目录的,startup.bat
测试安装成功:http://localhost:8080/去访问tomcat服务器,出现了小猫这个页面,代表安装成功。
>>>关闭:找到bin目录的,shutdown.bat
2.tomcat的目录结构:
>>> bin:存放的是tomcat可执行的脚本和文件
>>> conf:存放的是tomcat的配置文件.
比如:修改访问的端口号,找到server.xml文件,去修改。

注意:80端口是http协议的默认端口,在访问web资源时,80可以省略不写。
>>> lib: 存放时tomcat运行和web程序运行所依赖的jar包
>>> logs:存放的是tomcat生产的日志文件
>>> temp:存放的是tomcat生产的临时文件
>>> webapps:存放的就是web应用(web项目)
>>> work: 存放的jsp生产的servlet文件(现在不讲)
1.2 Tomcat诊断
tomcat启动常见的两种问题:
>>> tomcat启动会出现一闪而过现象:通常在系统里面没有配置JAVA_HOME这个环境变量
或者这个环境变量的名称JAVA_HOME写错了。
解决方案:在系统里面,配置JAVA_HOME环境变量。
>>> tomcat启动时端口号被占用:java.net.BindException:address in already use 或者 Socket bind failed
解决方案:
* 修改tomcat的端口号:去conf目录下面,找到server.xml配置文件。
比如:

* 直接关闭电脑,再重新启动(只能解决tomcat启动一次的问题。)
注意:查看端口号 netstat -ano.
1.3 Web应用
什么是web?
web就是网页,我们所说的internet主机的供外界(网民)访问的网页资源。
web网页资源分为两类:
>>> 静态资源:html ,css,javascript,供用户访问,静态网页的数据不会发生变化。
>>> 动态资源:Jsp和servlet,php,asp等,供用户访问,动态网页的数据会发生变化。
web开发中常见的两种架构:
>>> B / S :browser 和 server ,浏览器和服务器模式,比如说 淘宝,京东,亚马逊等等
>>> C / S:client 和 server,客户端和服务器模式,比如说:迅雷下载,360安全卫士等等
区别:
* b/s模式,优点:可以不用安装,直接访问网站资源,简单方便。缺点:有时候访问比较慢。
* c/s模式,可以在电脑(移动端)打开,直接使用,优点:速度快。缺点:服务器端更新时,客户端也必须更新。

1.web应用:
它其实就是一个web项目,web项目下有可供用户访问的网页资源。
web项目的基本目录机构:
>>> src目录:存放程序员创建的java文件或者配置文件。
>>> WebContent目录:
子目录:
>>> \WEB-INF 里面有个lib:存放的是咱们web项目运行所依赖的jar包
配置文件web.xml,配置的是web项目的信息
>>> \META-INF 这个目录里面的文件没什么用途。
>>> classes目录:存放的是src目录下面的java文件被编译成class文件。
2.配置web访问的默认页面。
配置默认页面:
找到web项目下的web.xml配置文件,比如:my.html,index.html就是默认页面。

 <welcome-file-list><welcome-file>my.html</welcome-file><welcome-file>index.html</welcome-file>-------</welcome-file-list>

注意:第一个默认页面如果不存在,第二个就是我们要访问的默认页面,以次类推。

学习javaweb第二天相关推荐

  1. python学习之第二课时--运行程序和字符编码

    python学习之第二课时--运行程序和字符编码 python的运行方式 Windows的终端运行方式:                [右键点击开始键]--->[运行输入cmd]---> ...

  2. 关于我在学习Javaweb时对Linux服务器安装配置jdk,tomcat,mysql的一些学习心得

    学习javaweb有一段时间了,最近刚好完成一个小的web项目. 勿喷!!!!!!!! 主要参考问题: 1.jdk,tomcat,mysql的安装配置. 2.tomcat,mysql的开机自启(我不会 ...

  3. 《Go语言圣经》学习笔记 第二章 程序结构

    Go语言圣经学习笔记 第二章 程序结构 目录 命名 声明 变量 赋值 类型 包和文件 作用域 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. Go语言小白学习笔记,几乎是书上的内 ...

  4. JavaWeb --第二章 Tomact详情

    JavaWeb --第二章 Tomact详情 文章目录 Tomcat 安装Tomcat Tomcat启动和配置 配置 发布一个web网站 Tomcat 安装Tomcat 去官方下载 https://t ...

  5. 视觉SLAM十四讲学习笔记-第二讲-开发环境搭建

    专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 ​​​​​​​ lin ...

  6. Kotlin学习笔记 第二章 类与对象 第十一节 枚举类 第八节密封类

    参考链接 Kotlin官方文档 https://kotlinlang.org/docs/home.html 中文网站 https://www.kotlincn.net/docs/reference/p ...

  7. TensorFlow 深度学习中文第二版·翻译完成

    原文:Deep Learning with TensorFlow Second Edition 协议:CC BY-NC-SA 4.0 不要担心自己的形象,只关心如何实现目标.--<原则>, ...

  8. TensorFlow 深度学习中文第二版(初稿)

    TensorFlow 深度学习中文第二版 第 1 章深度学习入门 人工神经网络 ANN 如何学习? 神经网络架构 深度学习框架 总结 第 2 章 TensorFlow 的首次观察 TensorFlow ...

  9. mfc 学习的第二天

    mfc 学习的第二天 MFC 入门 1.1 MFC是什么 微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是一个微软公司提供的类库(class librari ...

最新文章

  1. GoLand配置数据库、远程host以及远程调试
  2. 使用FgSegNet进行前景图像分割
  3. ACM训练计划建议(转)
  4. java 导出es数据_elasticseach 数据的导出与导出工具elasticdump使用
  5. nrpe的安装和配置(转)
  6. 小学计算机二课堂教案,信息技术与小学语文整合教学案例
  7. CAD异常eNotOpenForWrite
  8. 克利夫顿优势识别器 Clifton Strengths
  9. java面试简历精通n_Java简历与面试
  10. 连接Charles后,手机无法上网
  11. C++——std::Priority_queue
  12. 全网最全实战注册苹果开发者账号教程
  13. Job for named.service failed because the control process exited with error code.
  14. scala 的上界下界
  15. 火辣辣的心 火辣辣的情
  16. 数组去重与数组合并去重
  17. GeoGebra Classic 5 for Mac(免费动态数学教育软件)
  18. 你真的了解Filter过滤器 ?
  19. SBIO | 浙大陈云组综述农业中细菌与真菌的互作机制
  20. active什么牌子_maiaactive 玛娅是什么牌子,创始人,官网,怎么样详解

热门文章

  1. 响应式Web设计:HTML5和CSS3实战 读书笔记
  2. 六、模块实现:用户管理模块(1)
  3. 高德打车上线支付宝小程序,持续发力一站式出行!
  4. 读书笔记(II) 编译原理及实践
  5. 大学生html5实训心得体会,实训心得体会600字(精选5篇)
  6. Convertio —— 支持 300 种文件格式的在线转换神器
  7. mysql spring lobhandler_Spring 让 LOB 数据操作变得简单易行()
  8. java遍历变量_java – 循环遍历众多变量
  9. 【王道考研】操作系统 笔记 第一章
  10. Dining (网络流)