java web 概述

2 XML 基础

在实际开发中,由于不同语言项目之间数据传递的格式有可能不兼容,导致这些项目在数据传输时变得很困难。为解决此问题,W3C组织推出了一种新的数据交换标准一-XML, 它是一种通用的数据交换格式,可以使数据在各种应用程序之间轻松地实现数据的交换。接下来,本节将对XML进行详细的讲解。

2.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"?>


hengshui

2.2.XML元素定义:

	  xml文档都是通过元素操作(标记),元素是开始标记、属性、文本和结束标记组成。
	  比如:标记可以嵌套,必须合理的嵌套
		 <a>
			<b>bbbb</b>
		</a>
		错误的写法:
		<a>
			<b>bbbb</a>
		</b>
	3.属性定义:
		语法:<province name="hebei">
		属性对应的值要用""给括起来。
	4.注释:
	   html的注释:<!-- html的注释-->
	   javaScript的注释:参照java的注释
	   xml的注释:<!--xml的注释-->
	 注意:
	  1. xml是区分大小写的。
	  2. xml的标记不能以数字或者_下划线开头。比如<1a>内容</1a>,<_a>内容<_a>,错误的写法
	  3. xml的标记不能以xml或者XML(大小写都不可以)等开头。
	  4. xml的标记里面不能包含空格等特殊符号,比如<a a>内容</a a>,<a:b>内容</a:b> 错误的写法。

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

2.3.DTD引入:

    1.直接在xml文件中,引入dtd约束
      语法:
      <!DOCTYPE 书架 [
	  <!ELEMENT 书架 (书+)>
	  <!ELEMENT 书     (书名,作者,价格)>
	  <!ELEMENT 书名    (#PCDATA)>
	  <!ELEMENT 作者    (#PCDATA)>
	  <!ELEMENT 价格    (#PCDATA)>
	]>
    2.外部引入方式:
	>>> 本地引入:
	    语法:<!DOCTYPE 书架 SYSTEM "book.dtd">
	>>> 公网引入:
		<!DOCTYPE 书架  PUBLIC "DTD名称" "DTD文件在公网的url">

2.4.DTD语法:

	1.元素定义:
	 基本语法 <!ELEMENT 元素名称 元素内容>
	 元素内容对应的类型:
	 >>>普通的文本:#PCDATA
	 >>>子元素:比如说:(子元素1,子元素2,---)
	 >>>EMPTY:比如说 <book />
	 >>>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语法:
	>>> 元素定义	>>>属性定义。

3.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文件,去修改。
		    <Connector port="80" protocol="HTTP/1.1"
			connectionTimeout="20000"
			redirectPort="8443" />
		    注意: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配置文件。
	    比如:
	    <Connector port="80" protocol="HTTP/1.1"
			connectionTimeout="20000"
			redirectPort="8899" />
	   * 直接关闭电脑,再重新启动(只能解决tomcat启动一次的问题。)
	 注意:查看端口号 netstat -ano.
1.3 Web应用
	什么是web?
	 web就是网页,我们所说的internet主机的供外界(网民)访问的网页资源。
	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>
	 注意:第一个默认页面如果不存在,第二个就是我们要访问的默认页面,以次类推。
1.4 在Eclipse上配置Tomcat
	1.打开Eclipse,找到window----->Preferences;
	2.弹出一个窗口,在窗口里面搜索 Server 关键词
	3.选择项,选择Runntime这个选项,点击右侧的Add 按钮,
	4.弹出一个窗口,让咱们选择服务器,选择Apache---->Apache7.0 
	  点击next,点击 browser ,选择咱们tomcat服务器软件的位置(电脑什么盘符下面存放tomcat软件)
	  点击ok,表明添加成功。
	  接下来,咱们在控制台窗口添加咱们已经配置好的tomcat,
	  1.点击new Server---
	  2.选择apache 7.0 ,next--,点击ok.
	在eclipse上面部署web项目:
	 第一种方式:点击项目,Run As----,选中要部署的项目名称
	 第二种方式:点击tomcat服务器,点击add and remove ,选中要部署的项目名称

2020080605013

猜你喜欢

转载自blog.csdn.net/qq_55689246/article/details/121376780