網站開發進階(四)Tomcat Server處理一個http請求的過程
Tomcat?Server處理一個http請求的過程
假設來自客戶的請求為:
http://localhost:8080/wsota/wsota_index.jsp
1)?請求被發送到本機端口8080,被在那里偵聽的Coyote?HTTP/1.1?Connector獲得
2)?Connector把該請求交給它所在的Service的Engine來處理,并等待來自Engine的回應
3)?Engine獲得請求localhost/wsota/wsota_index.jsp,匹配它所擁有的所有虛擬主機Host
4)?Engine匹配到名為localhost的Host(即使匹配不到也把請求交給該Host處理,因為該Host被定義為該Engine的默認主機)
5)?localhost?Host獲得請求/wsota/wsota_index.jsp,匹配它所擁有的所有Context
6)?Host匹配到路徑為/wsota的Context(如果匹配不到就把該請求交給路徑名為""的Context去處理)
7)?path="/wsota"的Context獲得請求/wsota_index.jsp,在它的mapping?table中尋找對應的servlet
8)?Context匹配到URL?PATTERN為*.jsp的servlet,對應于JspServlet類
9)?構造HttpServletRequest對象和HttpServletResponse對象,作為參數調用JspServlet的doGet或doPost方法
10)Context把執行完了之后的HttpServletResponse對象返回給Host
11)Host把HttpServletResponse對象返回給Engine
12)Engine把HttpServletResponse對象返回給Connector
13)Connector把HttpServletResponse對象返回給客戶browser
connectionTimeout="20000"?redirectPort="8443" URIEncoding="GBK"?maxThreads="150"?minSpareThreads="25"?maxSpareThreads="75"/> unpackWARs="true"?autoDeploy="true" xmlValidation="false"?xmlNamespaceAware="false"> 它由Host接口定義.一個Engine元素可以包含多個 注:?name是虛擬主機的名字,appBase是虛擬主機指向的目錄,Tomcat啟動時,會自動加載appBase下的應用。?unpackWARs表示是否自動解壓縮appBase下已打成WAR包的應用,autoDeploy表示在服務器運行的時候,將一個應用放入?appBase下,是否自動部署。 它由Context接口定義.是使用最頻繁的元素.每個 path?:?該Context的路徑名是"",故該Context是該Host的默認Context docBase?:?該Context的根目錄是webapps/mycontext/ reloadable:如果這個屬性設為true,?Tomcat服務器在運行狀態下會監視在WEB-INF/classes和Web-INF/lib目錄CLASS文件的改運.如果監視到有class文件被更新,服務器自重新加載Web應用 useNaming:指定是否支持JNDI,默認值為了true cookies指定是否通過Cookies來支持Session,默認值為true connectionTimeout="20000"?redirectPort="8443"??????URIEncoding="GBK"?maxThreads="150" ?minSpareThreads="25"?maxSpareThreads="75"/> 該元素由org.apache.catalina.Service接口定義,它包含一個 redirectPort?指定服務器正在處理http請求時收到了一個SSL傳輸請求后重定向的端口號。 第一個 第二個 注:Server元素下可以有多個Service,端口就是在Service元素下配置的。 其中protocal制定了該端口偵聽的協議類型,HTTP/1.1表示偵聽的是客戶的HTTP請求,即我們通過瀏覽器訪問需要輸入的端口,當端口號是80的時候,可以不用在瀏覽器地址欄輸入端口號,這就是我們訪問很多網站不需要指定端口的原因。有時候protocal沒有指定,這時候默認的是HTTP/1.1。注意這個端口必須是閑置的。 Service元素下必須有一個Engine元素,Engine有一個名稱,和一個默認的虛擬主機名。 附: Tomcat?是一款優秀的JSP/Servlet容器,最初由SUN開發,后來被貢獻給了Apache社區。 HTTP Tomcat 容器 網站
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。