我是網絡服務的新手,我想了解平靜的澤西島執行情況。我有一些疑問,我GOOGLE了它,但不能得到滿意的答覆平臺進程與CGI和servlet有什麼不同?
,因爲我們知道下面的servlet的生命週期階段:
加載和實例:在實例化的servlet 容器調用初始化的時間(ServletConfig)這個方法在 servlet的整個生命週期中只調用一次。關鍵是容器將在Servlet的整個生命週期中只創建一次 對象。
服務:一旦加載和實例完成每個請求來 由服務method.Now這個servlet句柄下一個請求容器 不會再創造的servlet的對象時,它創建單獨的線程來 柄新來請求。這是CGI應用程序執行servlet的好的主要原因之一,因爲(在CGI每次都有客戶端請求時,HTTP服務器會創建新進程的實例,以 來服務這個請求,這是性能殺手)。
Destroy:容器調用destroy()方法向servlet 指示該servlet正在退出服務。一旦servlet的服務方法中的所有線程退出或在超時時間結束後都調用 ,則此方法僅調用 。
我是對的嗎?
現在開始第二部分當我們爲每個調用請求容器創建澤西資源時,我們得到了每次調用構造函數時都會看到的資源類的單獨實例。
@Path("myresource")
public class MyResource {
public MyResource(){
System.out.prinln("hi");
}
@GET
@Produces(MediaType.TEXT_PLAIN)
public String getIt() {
return "Got it!";
}
}
我的問題是如何澤西過程是不同於CGI?如果不是爲什麼人們爲了表現而妥協?
可能重複的[Java CGI與Servlets](http://stackoverflow.com/questions/8401465/java-cgi-vs-servlets) – stdunbar
我知道Java CGI與Servlets,這就是爲什麼我解釋有問題,我想知道球衣與這些球衣有何不同? –