建議:對於javaEE,在如何學習jsp和servlet時,初學者往往是一頭霧水。我當時就被jsp的各種標簽、內置對象和servlet整的很慘。所以,學習方法變得特別特別重要;而且,隨著技術的更新和發展,有些內容是沒有必要花時間的,所以學習的時候要學會捨得,有捨便有得嘛。(這裡針對jsp和servlet的學習)。無論是什麼學習方法,掌握原理最重要,掌握原理則掌握天下,而且原理就那麼一點,一下子就學完了。至於學習jsp和servlet的方法,那就是先學servlet,再學jsp。等學完servlet和jsp時,噢,原來這兩個技術最終差不多一樣的。
a.剛開始,CGI:Common Gateway Interface
1) 以進程方式運行,對每一個客戶端的請求都要啟動一個進程來運行程序,導致用戶數目增加時,服務器端資源被大量占用;
2) 由於對操作系統和進程的不深刻理解,使得開發人員開發的CGI程序經常遇到莫名其妙的錯誤;
3) 不同的CGI之間不能共享資源。
b.後來,采用了Pooling技術,一定程度上改善了性能
但還是屬於進程方式。
c.最後,出現servlet技術
1) 在Java世界中,為了避免CGI的缺點,出現了servlet技術,給web開發人員構建了一個更強大的服務器端環境;
2) 使用單獨一個進程來響應所有的請求;
3) 使得多個servlet和請求間可以共享資源,多個servlet對應多個線程。
a. servlet的運行需要依賴於服務器(web容器|javaEE容器);
b. servelt的調用需要依賴於用戶的請求(客戶端浏覽器---(請求)-->服務器---(做servlet調用)--->調用servlet);
c. servlet不是一個普通的javaBean。由容器創建servlet實例;
d. servlet生命周期是由容器來控制的。