Servlet&JSP概述

沒記錯應該是出自菜鳥教程(www.runoob.com)。。。瀏覽器


 

配置:
編輯好的servlet源文件並不能直接相應用戶請求,還必須將其編譯成.class文件,將編譯好的.class文件放到WEB-INF/classes路徑下;若是servlet有包,則還須要將.class文件放到包路徑下。
 
容器到servlet的週期流程:
1.客戶發出請求 -> Web服務器轉發到Web容器Tomcat;
2.Tomcat主線程對轉發來用戶的請求作出響應,建立兩個對象:HttpServletRequest和HTTPServletResponse;
3.從請求的URL中找到正確的Servlet,Tomcat爲其建立或者分配一個線程,同時把上述兩個對象傳遞給該線程;
4.Tomcat調用Servlet的service()方法,根據請求參數的不一樣調用doGet()或者doPost()方法;
5.假設是HTTP GET請求,doGet()方法生成靜態頁面,並組合到響應對象裏;
 
Servlet線程結束時:Tomcat將響應對象轉換爲HTTP響應發給客戶,同時刪除請求和響應對象。
能夠將Servlet的生命週期歸納爲:Servlet類加載(3)、Servlet實例化(3)、調用init方法(3)、調用service()方法(四、5)、調用destroy()方法。
 
1.WEB容器(Servlet引擎)接收到以.jsp爲擴展名的URL的訪問請求時,容器會把訪問請求交給JSP引擎去處理;
2.每一個JSP頁面在第一次被訪問時,JSP引擎將它翻譯成一個Servlet源程序,接着再把這個Servlet源程序編譯成Servlet的.class類文件,而後再由WEB容器(Servlet引擎)像調用普通Servlet程序同樣的方式來裝載和解釋這個由JSP頁面翻譯成的Servlet程序,並執行該Servlet實例的jspinit()方法(jspinit()方法在Servlet的生命週期中只被執行一次);
3.而後建立並啓動一個新的線程,新線程調用實例的jspService()方法。(對於每個請求,JSP引擎會建立一個新的線程來處理該請求。若是有多個客戶端同時請求該JSP文件,則JSP引擎會建立多個線程,每一個客戶端請求一個線程);
4.瀏覽器在調用JSP文件時,Servlet容器會把瀏覽器的請求和對瀏覽器的迴應封裝成HttpServletRequest和HttpServletResponse對象,同時調用對應的Servlet實例中的jspService()方法,把這兩個對象做爲參數傳遞到jspService()方法中;
5.jspService()方法執行後會將HTML內容返回給客戶端。服務器

相關文章
相關標籤/搜索