你的位置:首页 > 软件开发 > Java > J2EE学习(2)

J2EE学习(2)

发布时间:2015-03-21 22:01:28
何謂容器對於Java程式而言,JVM(Java Virtual Machine)是其作業系統,.java編譯為.class檔案,.class對於JVM而言,就是其可執行檔,你的Java程式基本上只認得一種作業系統,就是JVM。當你開始撰寫Servlet/JSP程式時,你必須開始接 ...

J2EE学习(2)

何謂容器

當你開始撰寫Servlet/JSP程式時,你必須開始接觸容器(Container)的概念,容器這個名詞也用在如List、Set這類的Collection上,也就是用來持有、保存物件的群集(Collection)物件,不過,對於撰寫Servlet/JSP來說,容器的概念更為廣泛,在最基本的功能上,它不僅持有物件,還負責物件的生命周期與相關服務的連結。在具體層面,容器說穿了,其實就是一個用Java寫的程式,運行於JVM之上,不同類型的容器會負責不同的工作,若以Servlet/JSP所運行的Web容器(Web Container)來說,也是一個Java寫的程式,想想看,HTTP那些文字性的通訊協定,如何變成你寫的Servlet/JSP中可用的Java物件(如HttpServletRequest、HttpServletResponse等),其實就是容器為你剖析與轉換。在抽象層面,可以將Web容器視為你寫的Servlet/JSP的運行伺服器,是的!就如同Java程式僅認得JVM這個作業系統,Servlet/JSP程式在抽象層面上,也僅認得Web容器這個概念上的Web伺服器,只要你寫的Servlet/JSP是符合Web容器的標準規範,你的Servlet/JSP就可以在各種不同廠商實作的Web容器上運行,而不用理會底層真正的Web伺服器。當然,實際上還是要有個Web伺服器,所以回到實際層面,Web容器是個Java寫的應用程式,可以成為實體Web伺服器程式的一部份,管理Servlet物件的生命週期,提供基於HTTP請求、回應的網路服務。若以Tomcat為例,容器的角色位置可以用下圖來表示:一個請求/回應的基本例子是:
  1. 客戶端(大部份情況下是瀏覽器)對Web伺服器發出HTTP請求。
  2. Web伺服器收到HTTP請求,將請求轉由Web容器處理,Web容器會剖析HTTP請求內容,建立各種物件(像是HttpServletRequest、HttpServletResponse、HttpSession等)。
  3. Web容器由請求的URL決定要使用哪個Servlet來處理請求(事先由開發人員定義)。
  4. Servlet根據請求物件(HttpServletRequest)的資訊決定如何處理,透過回應物件(HttpServletResponse)來建立回應。
  5. Web容器與Web伺服器溝通,Web伺服器將回應轉換為HTTP回應並傳回客戶端。
下圖是摘自 Java EE 6 Tutorial 中 Java EE 6 APIs 文件的容器示意:

原标题:J2EE学习(2)

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录