一个网络web项目,最少分三层:
1. 数据层(东西放哪?)—>data layer
2. 业务层(怎么处理?)—>business layer
3. 表现层(界面好看不?)—>presentation layer
客户端(Client) | 服务端(Server) |
---|---|
html | CGI |
css | Servlet |
applet | 组件技术: JSP+Bean/ASP+COM/DCOM |
javascript |
☆ Applet
具有良好的图形界面(AWT),与浏览器一起,在客户端运行。
☆ CGI
每个请求都要启动一个新的进程。(操作系统级)
所以CGI程序执行时间短,启动时间长。
在传统 CGI
中,如果有 N 个并发的对同一 CGI
程序的请求,
则该CGI程序的代码在内存中重复装载了 N 次;
☆ Servlet
对比Applet
Servlet
没有图形界面,在服务端运行。
对比CGI
每个请求由一个轻量级的 Java
线程处理(而不是重量级的操作系统进程)。对于 Servlet
,处理请求的是 N 个线程,只需要一份Servlet
类代码。
优点:
1. Servlet
能够直接和 Web服务器
交互。
2. 能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。
3. Servlet 提供了大量的实用工具例程
4. Servlet API
具有完善的标准,代码可移植。
IPlanet Enterprise Server
Apache
、MicrosoftIIS
WebStar
。
几乎所有的主流服务器都直接或通过插件支持 Servlet
。
☆ JSP
Java Server Pages(JSP)
是一种实现普通静态HTML
和动态 HTML
混合编码的技术,JSP
并没有增加任何本质上不能用Servlet
实现的功能。JSP
功用主要体现在表现层。
新型的网络语言如 ASP
,PHP
,JSP
都是镶嵌型的语言。
这是 JSP 和 Servlet 区别的运作原理层面。
☆ 组件技术
根据 SUN 自己的推荐,JSP中应该仅仅存放与 presentation layer 有关的东西,
也就是说,只放输出 HTML 网页的部分。
而所有的数据计算,数据分析,数据库联结处理,统统是属于 business layer
,
应该放在 Java BEANS
中。
通过 JSP
调用 Java BEANS
,实现两层的整合。
微软推出的 DNA 技术
,
简单说,就是 ASP+COM/DCOM
技术。与JSP+BEANS
完全类似,
所有的 presentation layer
由 ASP
完成,
所有的 business layer
由 COM/DCOM
完成。
通过调用,实现整合。
☆ 为什么要采用这些组件技术
呢?
第一, 因为单纯的 ASP/JSP
语言是非常低效率执行的,
如果出现大量用户点击,
纯 SCRIPT
语言很快就到达了他的功能上限,
而组件技术
就能大幅度提高功能上限,
加快执行速度。
第二,纯 SCRIPT
语言将 presentation layer
和 business layer
混在一起,造成修改不方便,并且代码不能重复利用。
如果想修改一个地方,经常会牵涉到十几页 code,
采用组件技术
就只改组件就可以了。
☆ 组件技术比较: JSP+BEAN VS ASP+COM
当
ASP+COM
和JSP+BEAN
都采用组件技术后,
所有的组件都是先进行编译,并驻留内存,然后快速执行。ASP+COM+IIS+NT
紧密整合,应该会有较大的速度优势呈现。
而且,ASP+COM+IIS+NT
开发效率非常高,虽然bug 很多。
这方面将,Java稍有速度劣势,但是因为机器速度越来越快,所以不足为虑。为什么web开发用
JSP+BEAN
?因为 Java 语言流行,跨平台,是通用语言。操作系统要是多极化,应用软件的开发商必定要找一个通用开发语言进行开发。