3.3 功能强大
Servlet可以支持多种CGI是很难或不可能完成的功能。servlet可以直接和Web服务器,而常规的CGI程序不能,至少不使用服务器特定的API。与网络服务器的通信,使得它更容易地将相对的网址转换为具体的路径名,例如。多个servlet可以共享数据,从而易于实现数据库连接池和类似的资源共享优化。servlet可以同时维护请求信息,简化了会话跟踪与先前计算的缓存技术。
3.4 跨平台性
servlet是用java编程语言和遵循一个标准的API。servlet的几乎每一个主要的Web服务器插件或直接支持。因此,servlet写、说,Macromedia JRun可以运行在Apache Tomcat几乎不变,微软的互联网信息服务器(一个单独的插件),IBM的WebSphere,iPlanet企业服务器,Oracle9i为,或starnine韦伯。他们是java 2平台,企业版(J2EE;看到HTTP:/ / java。太阳。COM / J2EE /),所以对servlet的产业支撑会变得越来越普遍。
3.5 廉价
许多免费或非常便宜的网络服务器都有很好的开发使用或部署低或中等容量的网站。因此,使用servlet和JSP你可以免费或廉价的服务器迁移到更昂贵的服务器高性能或高级管理工具在项目获得初步成功后。这与许多其他CGI的替代品,这需要为购买专利软件包的一个显着的初始投资。
价格和便携性是有一些相关性的。例如,马蒂试图通过电子邮件发送他的问题的读者的国家跟踪。印度也是名列前茅,可能仅次于美国,马蒂还教他一个JSP和Servlet的培训课程(见http://courses.coreservlets。com/)在马尼拉,有极大的兴趣在Servlet和JSP技术。
现在,为什么印度和菲律宾都这么感兴趣?我们推测答案是从两个方面的来说。首先,这两个国家都有大量的教育软件开发商。二,这两个国家(或当时有,在那个时候)极不利的汇率对美元汇率。因此,购买一家美国公司的专用网络服务器,消耗了早期项目资金的大部分。
但是,与servlet和JSP,他们能够从免费的服务器:Apache Tomcat(嵌入在微软的IIS是独立的,嵌入在普通的Apache Web服务器,或)。项目取得成功之后,他们可以转移到一个服务器像致树脂,性能更高、管理更容易但不是免费的。但他们的servlet或JSP页面没有被改写。如果他们的项目变得更大,他们可能要移动到一个分布式(集群)的环境。没有问题:他们可以转移到Macromedia JRun专业,支持分布式应用程序(Web农场)。再次,他们的servlet或JSP页面没有被改写。如果项目变得极为庞大和复杂,他们可能希望使用Enterprise JavaBeans(EJB)来封装业务逻辑。因此,他们可能会切换到BEA WebLogic或Oracle9i作为。再次,他们的servlet或JSP页面没有被改写。最后,如果他们的项目变得更大,他们可能会把它从Linux转移到IBM主机运行IBM WebSphere。但再一次,他们的servlet或JSP页面没有被改写。来!自~优尔论-文|网www.youerw.com
3.6 安全
一个在传统的CGI漏洞的主要来源在于程序常常由通用的操作系统外壳来执行。所以,程序员必须来过滤那些经过奇怪的加工过的字符,就像引号和分号。在漏洞不断被发现的大量使用的CGI库上,实施这一措施的难度可能超出我们的想象。
问题的第二个来源的事实是一些CGI程序处理的语言不自动检查数组和字符串边界处理的语言加工的。比方说,c和c++,你去分配了100元素到一个数组里,过一会儿,你又写入了999个数据,不用担心,这样做是完全合法的。程序随机存储其中一部分。所以,程序员忘记执行此检查打开他们的系统,以故意或意外的缓冲区溢出攻击。