第一個辦法是讓 CGI 程序與永久性程序進行對話,這個方法可以有許多變種。CGI 程序可以啟動一個要基于某個 ID 來進行訪問的應用程序,而這個 ID 是我們在響應中返回的(如圖 1 中的 app-srv 所示)。假如此 ID 在某個間隔內還沒有被重新使用,程序將終止。另一種方式是讓一個永久性程序來處理所有客戶機向該應用程序發送的請求。該場景極可能需要一個多線程程序,用于驗證客戶機的有效性,以及向每個新的客戶機分配 ID。然后,它必須記錄每個客戶機 ID 的超時時間。
第二個辦法是通過包含 API 來擴展 Web 服務器的功能,即利用 Web 服務器 API(圖 1 中的 NSAPI)來編寫應用程序,并將之駐留在 Web 服務器上。通過該方法,Web 服務器可以保持數據庫連接,以及包含應用程序特定的處理信息。這種方法也需要記錄用戶和連接超時。
進入應用程序服務器將各種 Web 應用程序的實現方式合并成為一個更完整的架構是有道理的。那時,Java 倡導的“一次編寫,到處運行”的概念已經十分流行。所以,J2EE 的成型并未花很長時間。