WEB容器小谈

来源:互联网 发布:惠普spectre 13知乎 编辑:程序博客网 时间:2024/06/04 20:08

静态网页:请求服务器上网页时,服务器不对网页进行任何处理。
动态网页:服务器在响应之前,可能会先根据客户端的请求参数、标头或实际服务器上的状态,以程序的方式动态产生响应内容,再回传给客户。

====================================

动态网页技术有CGI、PHP、ASP、Servlet/JSP(JavaServerPages)。
Servlet/JSP与JavaScript两者的根本不同是执行与内存的地址空间不同。前者执行于服务器端,后者执行于客户端。两者无法做直接的互动,必须通过网络通过HTTP来进行互动、数据交换或请求、响应。

有时候在JSP网页中也会写一些Javascript,但是这些Javascript并不是在服务器上执行,服务器会如同处理那些HTML标签一样,将这些Javascript原封不动地传给浏览器

======================================

JVM是java程序唯一认识的操作系统,可执行.class文件。WEB容器是Servlet/JSP唯一认得的HTTP服务器。
容器说白了就是一个用java写的程序,运行与JVM之上。
HTTP那些文字性的通信协议,如何变成Servlet/JSP中可用的Java对象,其实就是容器的剖析与转换。
只要写的Servlet/JSP符合WEB容器的标准规范,Servlet/JSP就可以在各种不同厂商实现的WEB容器上运行,而不用理会底层真正的HTTP服务器是什么。
JVM介于Java程序和实体操纵系统之间,WEB容器介于实体HTTP服务器与Servlet之间
JSP最后也是转译、编译、加载为Servlet,在容器的世界中,真正负责请求、响应的是Servlet

=========================================
请求响应的基本例子:
1、浏览器对WEB服务器发出HTTP请求
2、HTTP服务器收到HTTP请求,将请求转给WEB容器处理,WEB容器剖析HTTP请求内容,创建各种对象(HttpServletRequest、HttpServletResponse等)
3、WEB容器决定使用那个Servlet处理请求
4、Servlet根据请求对象(HttpServletRequest)的信息决定如何处理,通过响应对象创建响应
5、WEB容器与HTTP服务器沟通,WEB服务器将响应转换为HTTP响应并回传给客户端(浏览器)

===========================================
WEB容器可能会使用同一个Servlet实例来服务多个请求。也就是说多个请求相当于多个线程在共享存取一个对象,因此得注意线程安全的问题

0 0
原创粉丝点击