Sun 认证 Web 组件开发人员/第 1 部分
外观
Servlet 作为 CGI 工作,这意味着它们生成动态内容通过 Web 容器 返回给用户。与 CGI 应用程序相比,Servlet 的主要优势在于 Web 容器 完成了处理 HTTP 请求和处理协议的所有细节的繁重工作,只为程序员提供请求和响应的对象表示。
这种优势使应用程序程序员免于重复以前多次完成的工作的责任。当然,构建良好且众所周知的库也可以做到这一点,但还有许多其他优势。以下是其中一些。
- 基于标准 - JEE 建立在标准之上。这些标准由 JSR 定义。Java 社区流程在定义标准和世界各地公司在其企业软件中使用的新技术方面非常有效,因为这些公司是定义、处理和投票新的标准的委员会的幕后推手。因此,标准保证,至少,规范是以在日常经过验证的应用程序中使用的设计模式为基础的。这给程序员带来了另一个优势,因为他们不必重新考虑其他通常更有经验的程序员已经想到的事情。
- 单例 - 在处理 Servlet 时,Web 容器在内存中只维护一个实例,在第一次请求时创建,并在服务器停止时删除。CGI 脚本不会这样做,首先是因为它们不是基于标准构建的,因此服务器不知道它是如何工作的,其次,它只是一个程序,可以用任何语言(包括 Java)编写,它将作为正常的操作系统进程启动和执行。
- 基础设施 - Web 容器提供的不仅仅是请求和响应的对象表示。它提供了许多其他可能非常方便的对象,例如会话上下文、应用程序上下文、过滤器、侦听器等等。这些为 Servlet 提供了一个完整的上下文,将其插入到真正的应用程序中,而不是仅与客户端进行一次性请求/响应。