Oracle培训(四十一)——Servlet第一章知识点总结——Web工作原理
知识点预览
1.HTTP
2.HTTP处理流程
3. 服务器的缺陷
4. 辅助应用程序之CGI(Common Gateway Interface)
5.Servlet容器
6.Servlet规范
7.Servlet和web容器配合
8.Java Web应用程序的组成
1.HTTP
1).what?
位于OSI(Open System Interconnection,开放系统互连)七层网络模型中最上层(表示层)。它是一种为操作系统和应用程序提供访问网络的接口的通信协议(同层协议还包括:SMTP、FTP等)
特点:
数据在网络传输中都是以包的形式进行传输,利用不同的通信协议,包里的数据形式和格式要求不一样。例如FTP、SMTP、HTTP所要求的数据包的格式都不一样。
在web应用程序中,以浏览器端发送请求数据包,服务器端返回响应包为主要特点。
其中请求和响应内容都必须遵守一定的规定,即HTTP通信协议的要求
当服务器端向客户端返回响应之后,整个连接即会关闭。所以他是一种无状态的连接。
2).why?
要真正理解Web的工作原理,必须彻底理解HTTP协议!因为我们的服务器端编程主要是处理请求信息,并向客户端返回处理之后的响应。
2.HTTP处理流程(无状态)——通信原理
3.服务器的缺陷
a) 当我们访问一个在服务器端存在的文件的时候,服务器端能够找到该文件并将它里边的信息读取出来并封装到请求体里,以消息体的形式返回给客户端。这种在服务器端存在的文件,我们称之为静态文件。
b) 问题?
当我们想访问服务器不存在的文件的时候,比如:用户登录后的用户信息(这些信息不可能以静态文件的形式存在),而且必须和数据库交互。这个时候静态文件服务器就无能为力了。
c) 解决方法
为web服务器,配一个辅助应用程序。该程序主要完成对用户请求的非静态文件动态生成消息体内容。这种通过web端辅助应用程序生成的文件我们称之为动态文件。
4.辅助应用程序之CGI(Common Gateway Interface)
a) 它最大的好处是可以用不同的程序语言来生成动态文件。如C、PHP、Delphi等
b) 缺陷?
服务器端的CGI程序为每个请求开启一个进程,对服务器端资源消耗比较大。
c) 解决方案
i. 线程,为每个请求开启一个线程,这样服务器端资源消耗会小的多。
ii. 在Java方面,为了解决这个问题,产生了web容器(servlet容器)。它作为一个服务器端的辅助应用程序解决了CGI面临的缺陷。
iii. Servlet概貌(Web容器管理)
1. 没有main方法
2. 常规的java代码,新的servlet API
3. 主要负责处理请求和响应,比如用户登录:接受客户端发送的登录数据,连接数据进行数据验证。以响应的形式返回处理后的结果。
4. 通过Servlet容器对Servlet进行处理和调用
5. Web服务器和Servlet容器之间再进行数据交互,最后由web服务器将结果返回给客户端。
5.Servlet容器
a) 职责
i. 负责管理和运行Servlet
b) 支持
i. 多线程
ii. 管理Servlet生命周期
iii. JSP支持
iv. 与web服务器通信
v. 安全性(隐私数据保护,如:有些文件不希望客户端能够浏览)
c) 好处:
i. 当Servlet容器对为Servlet提供了上述支持后,我们能够将更多的精力放在业务逻辑处理上。
6.Servlet规范
a) 当这种Servlet容器盛行之后,出现了很多web应用服务器,他们集成了Servlet容器的功能,但一个Servlet能够运行在众多的不同的第三方的Servlet容器产品上,就势必要对Servlet容器有一个规范(约定),如必须要有上述的功能支持。只有这样,同一个Servlet web系统才能在不同的Servlet容器产品上运行。
b) 集成了Servlet容器的web应用服务器
i. Tomcat、Jboss、WebLogic、WebSphere、Oracle AS
ii. Tomcat作为开源免费且稳定的Servlet容器,受到了广大开发人员的喜爱。
iii. 而我们也以Tomcat作为教学和个人web系统开发
7.Servlet和web容器配合
a) Web容器为每个对servlet的请求都开启一个线程,web容器同时负责管理servlet的生命周期和它的运行。
b) 当一个请求到来的时候,web容器负责将请求以对象的方式(请求体)传递给servlet,当servlet处理完请求后(servlet运行结束),由web容器刷新响应对象,并将该对象返回给web服务器,由web服务器返回给客户端。
8.Java Web应用程序的组成
a) 规范规定Java Web应用程序主要由如下部分组成
i. 配置文件(web.xml)
ii. 静态文件和JSP
iii. 类文件和包 (Servlet类对应的字节码class文件,Servlet API 所需要的jar包)
b) 部署一个java web应用到Tomcat
i. 首先介绍Tomcat的文件目录即相关配置文件
ii. 打包和部署java web应用
iii. 启动Tomcat并访问java web应用程序