Java CGI与Servlets

Jak*_*ach 16 java cgi servlets

CGI和Java servlet之间的主要区别是什么?

Vic*_*kin 27

Servlet在一个进程中运行(具有附加功能的HTTP服务器,称为Servlet容器),只要该进程存在,它们就存在.

CGI表示每次有客户端请求时,HTTP服务器都会创建新的进程实例来提供此请求.这是性能杀手.此外,由于每个请求都有新进程,这意味着CGI无法聚合来自内存中的多个请求的数据,因为Servlet可以,并且必须求助于外部持久存储(文件或数据库).这也是性能杀手.

  • @NurShomik“数据变量”在这里是指服务器上的变量,而不是客户端上的变量。由于每个请求都产生新的服务器端进程,因此除非通过某些持久性存储或IPC到某个长时间运行的进程,否则它无法轻易访问服务器端会话变量或以前的请求中的任何其他数据。这也不利于性能。 (2认同)

Dav*_*ton 6

最大的不同是CGI在十年前死亡.

Servlet是标准的,Java CGI从未真正实现过.