Servlet技术讲义

第一章 互联网通信

1.1互联网通信

指的是两台计算机通过网络进行资源文件共享活动

1.2互联网通信中角色

1.2.1客户端计算机

用于发起请求,索要资源文件内容的计算机,称为客户端计算机

1.2.2服务端计算机

用于接收请求,提供共享资源文件内容的计算机,称为服务端计算机
蛙课-Servlet讲义 - 图1







1.3互联网通信模型

计算机本身不具备资源文件共享能力,计算机所有能力都要依靠其安装软件。因此在互联网通信过程中,计算机通过其自身安装软件进行通信交流。根据使用软件特点,可以将互联网通信方式分为两大类: C/S通信方式与B/S通信方式

1.3.1C/S通信方式

结构介绍
C;client software,即客户端软件。这是一种专门安装在客户端计算机上软件。可以帮助客户端计算机向指定的服务端计算机发送请求,同时帮助客户端计算机将服务端计算机返回数据
进行解析(文字,数字,图片,视频) ,最终交给客户端计算机使用

S;server software,即服务端资源文件调度器。这是一种安装在服务端计算机上软件。可以帮助服务端计算机接收指定客户端软件发送的请求,并自动根据请求定位服务端计算机上资源文件。对资源文件定位后将文件内容解析为二进制数据,然后通过网路推送回发起请求的客户端软件上。

应用场景
C/S通信方式目前在国内主要应用于【个人用户市场】,比如QQ,微信,淘宝,大型网络游戏。在企业日常活动中应用较少。目前在国内企业日常活动中基于C/S通信的主要是钉钉。
优缺点
优点:

1. 有效的对服务端计算机进行保护,避免受到攻击

2. 有效的分摊服务端计算机工作压力

3. 适合向客户端计算机传输海量数据









缺点:
1. 增加客户获得服务的成本
2. 维护过于繁琐,需要在客户端与服务端同时更新
3. 不易于推广

1.3.2 B/S通信方式

结构介绍
B;Browser,即为浏览器。浏览器可以帮助客户端计算机向任意服务器发送请求,同时可以帮助客户端计算机接收服务端计算机返回文件内容。

S;server software 即为服务端资源文件调度器,可以接收任意浏览器发送的请求,根据请求定位服务端计算机中资源文件,并把定位的资源文件内容以二进制形式推送回发起请求的浏览器上。
应用场景
B/S通信结构广泛应用于【个人用户市场】与【企业日常活动】,应用面非常广泛的

优缺点
优点:
1.易于使用,不会增加用户获得服务的成本
2.易于推广,可以有效降低产品推广费用
缺点:
1.无法通过浏览器接收服务端返回海量数据
2.无法有效保护服务端计算机
3.无法分摊服务端计算机工作压力

1.4共享资源文件

共享资源文件值得是可以通过网络进行传输文件。理论上来说硬盘上所有文件都可以通过网络进行传输。所以硬盘上所有看到文件都可以称为【共享资源文件】。

为了便于管理,开发人员将共享资源文件分为两种:静态资源文件 与 动态资源文件

1.4.1静态资源文件

静态资源文件指的是文件内容相对固定,所有用户来访问时看到的内容都是一样的文件。比如。HTML文件,图片文件,视频文件。
静态资源文件被访问时,服务端的资源文件调度器负责将文件内容读取出来,然后解析为二进制数据通过网络交给浏览器,而浏览器接收后通过其内置的编译器来解释执行。

1.4.2动态资源文件

动态资源文件指的是文件内容可以根据用户请求不同而产生不同的变化。比如 Java中class
文件。目前在Java编程世界中我们认为只有class文件才是动态资源文件。
动态资源文件(class)在被访问时,服务端的资源文件调度器是不会将class文件推送到浏览器的。因为浏览器没有JVM无法解析执行class文件内容。
服务端的资源文件调度器会负责创建class类的实例对象,然后通过实例对象调用对应的方法处理业务。然后将方法的处理结果作为二进制数据通过网络推送回发起请求浏览器上。

最终看到的B/S通信结构流程图如下

蛙课-Servlet讲义 - 图2










第二章 浏览器行为管理

在B/S通信模型中,请求由浏览器发送。服务端返回内容由浏览器来接收。可以说在一次基于B/S通信模型下的互联网通信,始于浏览器与结束与浏览器。因此对于浏览器行为控制是互联网通信中一个重要环节。

2.1浏览器行为控制分类

2.1.1浏览器请求行为

控制浏览器发送请求地址
控制浏览器发送请求的行为方式
控制浏览器发送请求时携带请求参数内容

2.1.2 浏览器接收行为

控制浏览器解析响应数据方式
控制浏览器展示数据方式
控制用户与浏览器中的HTML标签之间人机交互方式

2.2 浏览器请求方式

浏览器向服务端计算机发送请求时,有七种请求方式可以选择。这些请求方式决定了浏览器发送请求时的行为特征。到目前为止,在Java编程世界中只考虑浏览器的两种请求方式 :
GET请求方式与POST请求方式

2.2.1 GET请求方式

要求浏览器在发送请求时,携带的【请求参数数量】不能超过4k

要求浏览器必须将请求参数信息在地址栏展示

要求浏览器必须将请求参数保存在Http请求协议中【请求体】

要求浏览器将服务端返回内容保存在浏览器的缓存中

2.2.2 POST请求方式

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

要求浏览器必须在地址栏中屏蔽【请求参数信息】

要求浏览器必须将【请求参数信息】保存到Http协议中【请求体】

禁止浏览器对服务端返回的内容进行保存

2.3请求方式控制

2.3.1超链接标签

超链接标签命令在执行时,要求浏览器必须以GET方式发送请求
蛙课-Servlet讲义 - 图3

在浏览器按F12键,观察newwork或则网络
蛙课-Servlet讲义 - 图4

2.3.2 location对象

location对象在执行时,会修改浏览器的地址栏的内容。导致浏览器根据新地址立刻发起请求。此时浏览器必须以GET方式发送请求

蛙课-Servlet讲义 - 图5
在浏览器按下F12,观察network或则网络
蛙课-Servlet讲义 - 图6

2.3.3 form标签

form标签中有一个method属性,通过赋值”POST/GET”,可以动态要求浏览器分别以GET方式或则POST方式发送请求
蛙课-Servlet讲义 - 图7

2.4请求方式使用场景

由于POST方式允许将客户端文件作为请求参数发送到服务端。因此有机会将病毒文件发送到服务端计算机进行攻击,因此绝大多数门户级网站拒绝接收POST方式请求,所以在平时开发过程绝大多数情况都使用GET方式

在进行文件上传时,必须使用POST方式。此时可以根据检测上文文件类型来杜绝用户传输病毒文件。比如,禁止后缀名为”.exe”文件上传

在进行登录验证操作时,为了防止用户名和密码在浏览器地址上展示,泄露用户信息,因此要选择POST方式

在获取服务端实时变化的数据时候,比如股票价格,火车票情况等,应该选择POST方式

  1. <br />

2.5请求参数管理

2.5.1请求参数

我们去饭店吃饭。向老板说”来份麻辣烫多加点辣”。在这里”麻辣烫”就是我们所要的资源文件,而”多来点辣”就是【请求参数】。从这里我们可以看出请求参数存在目的是便于服务端为客户提供更加进准,更加高质量服务的条件。

请求参数 由【请求参数名】与【请求参数内容】两部分组成。

uname=mike&password=123

“uname”与”password”是请求参数名,”mike”与”123”是请求参数内容。存在多个请求参数时,彼此之间使用”&”进行分割

2.5.2请求参数来源

超链接标签
可以在超链接标签中href属性设置,需要由浏览器推送的请求参数
蛙课-Servlet讲义 - 图8

location对象
蛙课-Servlet讲义 - 图9



表单域标签
上面两种方式,存在一个小的弊端。就是请求参数内容是相对固定的。无论是谁去单击那个超链接标签,浏览器发送的请求参数内容都是mike.如果希望请求参数内容可以根据用户不同而产生不同,可以使用表单域标签

表单域标签指的是一组专门在form标签声明的标签。用于辅助用户填写请求参数内容并作为请求参数的载体。

表单域标签由三类标签组成

1.
2.