1.什么是Web开发
Web通信,指的是两台计算机通过网络进行资源文件共享活动,Web开发确保本次通信顺利执行。

2.Web通信过程中两台计算机之间角色

a.客户端计算机:用于发送请求

b.服务端计算机:提供共享资源文件

vmwork中如何让不同用户使用的Java版本不同 javaweb不同的客户端共享数据_java


3.资源文件

理论上来说,计算机上所有的文件都是资源共享文件。

分类:

a.静态资源文件

定义:文件内容是固定的,不能随着请求变化而发生变化。

例子:图片 html doc xls

特点:服务端计算机直接将静态资源文件推送给客户端计算机,所有被共享的静态资源文件最终是在客户端计算机运行。b.动态资源文件

定义:文件内容可以根据用户提供需求变化而产生不同变化内容

例子:Java文件

特点:服务端计算机会调用执行动态资源文件,服务端计算机将动态资源文件的运行结果交给客户端计算机。

vmwork中如何让不同用户使用的Java版本不同 javaweb不同的客户端共享数据_请求参数_02


上图的例子,输入参数不同,产生的结果也不同。

4.WEB通信过程中,两台计算机如何进行通信
a.C/S结构通信方式:
介绍:
C:client,客户端计算机安装特定客户端程序,可以帮助客户端计算机向指定服务端计算发送请求。
S:server,在服务端计算机安装一种特定资源调度软件, 接收特定客户端程序发送请求,将请求需要资源文件推送回客户端计算机上客户端程序。

例子:微信 ,QQ, 所有大型网络游戏。

优点:不但可以有效的保护服务端计算机,还可以分摊服务端计算机工作压力。
缺点:增加客户获得服务的成本,增加服务端维护成本。

针对客户群体:个人用户

b.B/S结构通信方式:

介绍:

B:browser(浏览器): 可以帮助客户端计算机向任意服务端发送请求

S:server:在服务端计算机安装一种特定资源调度软件,可以接收所有浏览器发送请求。将请求的资源文件推送客户端计算机浏览器上。

vmwork中如何让不同用户使用的Java版本不同 javaweb不同的客户端共享数据_服务端_03


优点:不会增加客户获得服务的成本,不会增加服务端维护的成本。

缺点:无法有效保护服务端计算机,无法通过客户端计算机分摊服务端计算机压力。

针对客户群体:企业用户

5.网络协议包
定义:用于包裹在网络中传输的二进制数据,网络协议包存在固定空间用于存放特定数据,便于接收方分析得到数据。
分类: FTP http
到目前为止B/S通信结构中,只使用http网络协议包。

6.Http网络协议包内部结构

a.Http请求协议包

①是浏览器在发送请求时,负责创建的

②是浏览器负责将请求信息,写入到请求协议包

③Http请求协议包内部自上而下有四层结构

【请求行】:{

url: 请求的资源文件地址

method: 浏览器采用的请求方式

}

vmwork中如何让不同用户使用的Java版本不同 javaweb不同的客户端共享数据_服务端_04


【请求头】:{

浏览器希望获得资源文件类型(html/png)

浏览器希望获得资源文件内容依赖字符集

如果浏览器采用GET方式发送请求,本次关联请求参数需要保存在请求头

}

vmwork中如何让不同用户使用的Java版本不同 javaweb不同的客户端共享数据_请求参数_05


【空白行】:{隔离层}

【请求体】: {

如果浏览器采用POST方式发送请求,本次关联请求参数需要保存在请求体

}

空白行和请求体所有浏览器都不显示

b.Http响应协议包
①是在服务端计算机的资源调度软件准备推送文件时,负责创建的
②响应协议包内容可以由资源调度软件写入,可以由Java命令(response)写入
③Http请求协议包内部自上而下有四层结构
【状态行】:{状态码}
【响应头】:{
返回文件内容类型(doc,text,html,text/html)
返回文件内容依赖字符集,浏览器需要使用这个字符集
对接收内容进行解码
}
【空白行】:{ }
【响应体】:{
静态资源文件也可能是动态资源文件的运行结果(二进制形式)
}

http网络协议包内部结构图示:

vmwork中如何让不同用户使用的Java版本不同 javaweb不同的客户端共享数据_java_06


vmwork中如何让不同用户使用的Java版本不同 javaweb不同的客户端共享数据_资源文件_07

7.客户端计算机上浏览器管理

a.如何命令浏览器向指定网站发送请求

①通过FORM表单命令<form action="http://www.baidu.com"> ②通过超链接命令<a href="http://www.163.com">163.com</a>

③浏览器的地址栏对象window.location="http://www.sina.com"

vmwork中如何让不同用户使用的Java版本不同 javaweb不同的客户端共享数据_资源文件_08


vmwork中如何让不同用户使用的Java版本不同 javaweb不同的客户端共享数据_资源文件_09


b.请求方式(POST/GET)

①GET方式:

要求浏览器发送请求时,携带请求参数数量不能超过4K

要求浏览器将请求参数写入到请求头

要求浏览器将请求参数信息在地址栏上显示出来

要求浏览器对接收的资源文件必须缓存到内存(适用于静态资源文件)

②POST方式:

不会限制浏览器发送请求时,携带请求参数数量

要求浏览器将请求参数写入到请求体

要求浏览器将请求参数信息在地址栏隐藏

要求浏览器对接收的文件不能保存到缓存(阅后即焚,适用于动态变化内容如车票信息,股票价格等)

c.如何控制浏览器采用的请求方式
①让浏览器发送请求时,采用GET方式:
超链接标签命令,一定会要求浏览器采用GET
location对象,一定会会要求浏览器采用GET
FORM标签命令中method属性可以控制浏览器采用GET方式发送请求:<form action="http://www.163.com" method="GET"> ②让浏览器发送请求时,采用POST方式:
设置FORM标签中method属性等于"POST"

d.如何命令浏览器在发送请求时,携带指定请求参数
①超链接标签命令,可以命令浏览器携带请求参数:<a href="http://www.baidu.com?uname=mike&age=23">百度</a> ②location对象,可以命令浏览器携带请求参数:window.location="http://www.baidu.com?uname=mike&age=23" 以上两种方式存在弊端。请求参数内容是固定,无法根据客户具体要求来改变。
③表单域标签可以接收用户输入的内容,作为请求参数内容
表单域标签分类: INPUT select textarea
表单域标签作为请求参数条件:
第一个条件:表单域标签必须声明在当前FORM标签内部
第二个条件:表单域标签必须声明name属性,这个属性作为请求参数名。
第三个条件: 针对checkbox和radio,只有被选中情况下,才可以作为请求参数

8.Http服务器
a.介绍:
①安装在服务端计算机上一种软件
②可以解析来自于浏览器发送的请求协议包
③调用服务端上的被请求的资源共享文件
④负责生成一个响应协议包
⑤负责将文件内容或者文件运行结果写入到响应体
⑥负责将响应协议包推送给当前浏览器

b.Http服务器分类
①德国SAP(最好)
②IBM: weblogic
③JBOSS
④ Apache: Tomcat(最差)
但是只有Tomcat是免费的,而且对于我们来说也已经足够,所以我们就使用Tomcat啦!

c.Tomcat介绍
①是一个由Java应用程序编写的资源文件调度器
②可以调用服务端静态资源文件和动态资源文件
③Tomcat负责生成响应协议包,负责将响应协议包推送到浏览器上
④Tomcat属于Apache
Tomcat安装非常简单,在其他小伙伴的博客中有详细的介绍,在此不再赘述。

d.Tomcat端口号
Tomcat端口号存储位置: Tomcat安装目录下/conf/server.xml

<Connector port="8080" protocol="HTTP/1.1"
	connectionTimeout="20000"
    redirectPort="8443" />

端口号:8080(可以自己更改)

e.网站
①全称: 网络中的资源站点
②作用:仓库,存储可以共享静态资源文件和动态资源文件
③文件管理:由Http服务器来调用内部共享资源文件
④本质:就是一个文件夹

f.网站分类
①静态资源网站:存储都是静态资源文件(图片、html)
②动态资源网站:存储是静态资源文件和动态资源文件

g.如何创建一个静态资源网站

①Tomcat安装目录/webapps/ 创建一个文件夹,这个文件夹就是网站

注意这个目录下下初始就已经有一些文件夹了,可以删除,也可以不删除,下面我们新建一个文件夹www.myweb.com:

vmwork中如何让不同用户使用的Java版本不同 javaweb不同的客户端共享数据_资源文件_10


②在网站存入静态资源文件

百度美女图片(老师我真的是在学习!),随便下载一张到此文件夹下面,以这张为例:

vmwork中如何让不同用户使用的Java版本不同 javaweb不同的客户端共享数据_服务端_11

③启动Tomcat

打开命令行,跳转到安装目录下的bin目录下,输入startup,启动Tomcat

vmwork中如何让不同用户使用的Java版本不同 javaweb不同的客户端共享数据_服务端_12


启动成功:

vmwork中如何让不同用户使用的Java版本不同 javaweb不同的客户端共享数据_java_13


④我们扮演用户,通过浏览器向tomcat索要www.myweb.com网站中mm.jpg页面:

vmwork中如何让不同用户使用的Java版本不同 javaweb不同的客户端共享数据_服务端_14


回车就可以看到美女啦!

h.动态网站结构

①src:存放Java文件

②web: 静态资源文件和配置文件

配置文件是WEB-INF/web.xml

i:指定Tomcat管理的网站
RUN—>Edit Configuration—>Tomcat通道(名字自己起就行)—>Deployment—>添加需要被Tomcat管理的网站(首先要在File->New->Moudle里选择Web Application创建一个动态网站)