Servlet
Servlet 核心知识
什么是Web开发
Web通信,指的是两台计算机通过网络来进行资源文件共享的活动
Web开发确保本次通信顺利执行
Web通信过程中两台计算机之间角色
- 客户端计算机:用于发送请求
- 服务端计算机:提供共享资源文件
资源文件
- 理论上来说,计算机上所有的文件都是资源共享文件
- 分类:
1)静态资源文件:
【定义】:文件内容是固定的,不能随着请求变化而发生变化
【例子】:图片、html、doc、xls
【特点】:服务端计算机直接将【静态资源文件】推送给【客户端计算机】,所有被共享的【静态资源文件】最终是在客户端计算机运行
2)动态资源文件:
【定义】:文件内容可以根据用户提供需求变化而产生不同变化内容
【例子】:Java文件(不定义了,不好定义~)
【特点】:服务端计算机会调用执行【动态资源文件】。服务端计算机将【动态资源文件】的运行结果交给客户端计算机。
Web通信过程中,两台计算机如何进行通信
- C/S结构通信方式:
C:client,客户端计算机安装特定【客户端程序】。可以帮助客户端计算机向指定的服务端计算机发送请求。
S:server,在服务端计算机安装一种特定【资源调度软件】,接受特定客户端程序程序发送请求,将请求需要资源文件推送回客户端计算机上【客户端程序】。
【例子】:微信,QQ,所有大型网络游戏
【优缺点】:
优点:1、可以有效的保护服务端计算机。2、可以分摊服务端计算机工作压力。
缺点:1、增加客户获得服务的成本。2、增加服务端维护成本
【针对客户群体】:个人用户 - B/S结构通信方式:
B:browser:可以帮助客户端计算机向任意的服务端发送请求
S:server:在服务端计算机安装一种特定【资源调度软件】,可以接收所有浏览器所发送的请求。将请求的资源文件推送客户端计算机浏览器上
【优缺点】:
优点:1、不会增加客户获得服务的成本。2、不会增加服务端维护的成本。
缺点:1、无法有效保护服务端计算机。2、无法通过客户端计算机来分摊服务端计算机的压力
【针对的客户群体】:企业用户
网络协议(包)
- 【定义】:用于包裹在网络中传输的【二进制数据】。网络协议包存在【固定空间】用于存放【特定数据】,便于接收方分析得到数据
- 【分类】:FTP网络协议 HTTP协议 file协议
- 【B/S通信方式中】:到目前为止B/S通信结构中,只使用HTTP网络协议包
HTTP网络协议包内部结构
- HTTP请求协议包:
1)是浏览器在发送请求是负责创建的
2)是浏览器负责将请求信息,写入到请求协议包
3)HTTP请求协议包内部自上而下有四层结构:
【请求行】{
url:请求的资源文件地址
method:浏览器采用的请求方式
}
【请求头】{
浏览器希望获得资源文件类型【html/png】
浏览器希望获得资源文件内容依赖字符集
如果浏览器采用【get方式发送请求】,本次所关联的请求参数需要保存在请求头中
}
【空白行】{隔离作用}
【请求体】{
如果浏览器采用【POST方式发送请求】,本次关联请求参数需要保存在请求体
} - 响应协议包:
1)在服务端计算机的【资源调度软件】准备推送文件时,负责创建的
2)【相应协议包内容】可以由【资源调度软件】写入,也可以由Java命令(Response)写入
3)HTTP请求协议包内部自上而下有四层结构:
【状态行】{
状态码(200/404/405/500等等)
}
【响应头】{
返回文件内容类型(doc,text,htom,text/html)
返回文件内容所依赖的字符集,浏览器需要使用这个字符集对接收的内容进行解码
}
【空白行】{隔离作用}
【响应体】{
静态资源文件也可能是动态资源文件的运行结果(二进制形式)
}
客户端计算机上浏览器管理
如何命令浏览器向指定网站发送请求
- 通过form表单命令
- 通过超链接命令< a href=“http://www.baidu.com” >点击这里< /a >
- 浏览器的地址栏对象 window.location=“http://sina.com”
请求方式【POST/GET】
- GET方式:
1)要求浏览器发送请求时,携带的请求参数数量不能超过4K
2)要求浏览器将请求参数写入到【请求头】
3)要求浏览器将请求参数信息在地址栏上显示出来
4)要求浏览器对接收的资源文件必须缓存到内存中
【静态资源推荐用GET】 - POST方式:
1)不会限制浏览器发送请求时,携带请求参数数量
2)要求浏览器将请求参数写入到【请求体】
3)要求浏览器将请求参数信息在地址栏隐藏
4)要求浏览器对所接收的文件不能保存到缓存中
【动态变化内容推荐用POST】 - 如何控制浏览器采用的请求方式
1)让浏览器发送请求时,采用【GET方式】
1、超链接标签命令,一定会要求浏览器采用【GET方式】
2、location对象,一定会要求浏览器采用【GET方式】
3、FROM标签命令中的method属性,可以控制浏览器采用【GET方式】发送请求
<form action="www.baidu.com" method="GET">
<input type="submit" value="提交">
</form>
2)让浏览器发送请求时,采用【POST方式】
<form action="www.baidu.com" method="POST">
<input type="submit" value="提交">
</form>
如何命令浏览器在发送请求时,携带制定请求参数
- 超链接标签命令,可以命令浏览器携带请求参数
<a href="http://baidu.com?username=mike&age=23"&