Servlets & JSP 學習筆記002

Web應用體系結構

什麼是容器?

Servlet沒有main()方法。它們受控於另外一個Java應用,這個Java應用稱爲容器。html

 

Tomcat就是這樣一個容器。若是Web服務器應用(如Apache)獲得一個指向某個servlet的請求(而不是其餘請求,如請求一個普通的靜態HTML頁面),此時服務器不是把這個請求交給servlet自己,而是交給部署該servlet的容器。要由容器向servlet提供HTTP請求和響應,並且要由容器調用servlet的方法,如doPost()或doGet()。web

 

個人理解:Tomcat就是這樣的一個Web容器。tomcat


 

容器能提供什麼?

 

 

  • 通訊支持
  • 聲明週期管理
  • 多線程支持
  • 聲明方式實現安全
  • JSP支持

 


 

 

容器如何處理請求:

  1. 用戶點擊一個鏈接,指向一個servlet而不是一個靜態一面。
  2. 容器「看出來」這個請求要的是一個servlet,因此容器建立兩個對象:(1)HttpServletResponse;(2)HttpServletRequest。
  3. 容器根據請求中的URL找到正確的servlet,爲這個請求建立或分配一個線程,並把請求和響應對象傳遞給這個servlet。
  4. 容器調用servlet的service()方法。根據請求的不一樣類型,service()方法會調用doGet()或doPost()方法。
  5. doGet()方法生成動態頁面,並把這個頁面「填入」響應對象。
  6. 線程結束,容器把響應對象轉換爲一個HTTP響應,把它發回給客戶,而後刪除請求和響應對象。安全


 

代碼裏有什麼:(servlet何以成爲一個servlet,人爲何成爲人)

 

不想貼代碼,貼圖吧。si mi ma sen服務器

 

 

咱們寫的serlvet都是繼承於HttpServlet類,通常寫的時候都要覆蓋doGet()和doPost()方法。若是想看HttpServlet的源碼,能夠到官網上下載:官網首頁->左邊Download tomcat8->看下面的圖多線程

 


 

 

一個servlet能夠有3個名字:

書上說了一大堆,看不懂。but,書上總結了:架構

  1. 客戶知道的URL
  2. 部署人員知道的祕密內部名
  3. 實際的文件名

部署一個servlet的圖片:上一節有講到那些xml標籤,不會的能夠翻一下筆記。spa


 

 

Servlet&JSP中的MVC:

 

大佬的傳送門:JSP開發的MVC架構線程

 

採用MVC,不只要求業務邏輯與表示分離……實際上,業務邏輯甚至根本不知道有表示存在。3d

 Servlet&JSP世界中的MVC:


 

 J2EE如何集成這一切:

J2EE應用服務器包括一個Web容器和一個EJB容器。

Tomcat是一個Web容器,而不是一個完整的J2EE應用服務器。

J2EE服務器包括:Servlet規範、JSP規範、EJB規範。

 

Q:那Tomcat是一個獨立的Web容器囉……這是否是說也存在獨立的EJB容器呢?

A:EJB容器都做爲完整J2EE服務器的一部分,但獨立的web容器依然存在(Tomcat)。獨立的Web容器一般配置爲一個與HTTP Web服務器(Apache)協做,不過Tomcat容器自己就能做爲一個基本的HTTP服務器。可是在HTTP服務器功能方面,Tomcat沒有Apache那麼健壯,因此最多見的非EJB Web應用一般會結合使用Apache和Tomcat,Apache做爲HTTP Web服務器,Tomcat做爲Web容器。

因此在看書的時候遇到Web服務器(HTTP服務器)就不用管了,由於Tomcat裏面有一個小的HTTP服務器。我是這樣理解的。

相關文章
相關標籤/搜索