本文目錄一覽:
對Web伺服器中的JSP的訪問主要過程是如何的
Web伺服器在遇到訪問JSP網頁的請求時,首先執行其中的程序段,然後將執行結果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作資料庫、重新定向網頁等,以實現建立動態網頁所需要的功能。
他會解析後再呈現為HTML格式。(包括JS、EL表達式、自定義標籤、引用CSS、JS等)
web伺服器怎樣處理jsp
具體是這樣的:
JSP頁面會在第一次被請求的時候,被web container 翻譯成servlet,編譯成位元組碼,最後處理成html傳回客戶端(瀏覽器端),瀏覽器進而對此html進行render,這就是客戶就可看到東西。
JSP如果修改了,之後對此JSP的訪問還會被web container進行翻譯及編譯的工作,但是如果JSP沒有修改,將不會被web container重新翻譯及編譯,以此來提高jsp對客戶端的響應速度。
JSP頁面是在web伺服器上運行嗎?
是的,JSP頁面顯示轉譯成servlet,然後再編譯成位元組碼文件(*.class),最後在java虛擬機上運行,而轉譯靠的是web伺服器.
第一次訪問JSP是比較慢的,就是因為jsp頁面先要轉譯成servlet,再編譯成class文件,最後虛擬機運行,而 第二次訪問同一jsp頁面就比較快了,省略了轉譯和編譯的過程,上一次編譯好的class文件直接在虛擬機上運行就可以了.
jsp的工作原理
JSP工作原理 JSP
在一個JSP文件第一次被請求時,JSP引擎把該JSP文件轉換成為一個servlet。而這個引擎本身也是一個servlet,在JSWDK或WEBLOGIC中,它就是JspServlet。 JSP引擎先把該JSP文件轉換成一個Java源文件,在轉換時如果發現jsp文件有任何語法錯誤,轉換過程將中斷,並向服務端和客戶端輸出出錯信息;如果轉換成功, JSP引擎用javac把該Java源文件編譯成相應的class文件。然後創建一個該SERVLET的實例,該SERVLET的jspInit()方法被執行,jspInit()方法在servlet的生命周期中只被執行一次。然後jspService()方法被調用來處理客戶端的請求。對每一個請求,JSP引擎創建一個新的線程來處理該請求。如果有多個客戶端同時請求該JSP文件,則JSP引擎會創建多個線程。每個客戶端請求對應一個線程。以多線程方式執行可大大降低對系統的資源需求,提高系統的並發量及響應時間.但應該注意多線程的編程限制,由於該servlet始終駐於內存,所以響應是非常快的。如果.jsp文件被修改了,伺服器將根據設置決定是否對該文件重新編譯,如果需要重新編譯,則將編譯結果取代內存中的servlet,並繼續上述處理過程。雖然JSP效率很高,但在第一次調用時由於需要轉換和編譯而有一些輕微的延遲。此外,如果在任何時候如果由於系統資源不足的原因,JSP引擎將以某種不確定的方式將servlet從內存中移去。當這種情況發生時jspDestroy()方法首先被調用, 然後servlet實例便被標記加入”垃圾收集”處理。 jspInit()及jspDestory()格式如下:可在jspInit()中進行一些初始化工作,如建立與資料庫的連接,或建立網路連接,從配置文件中取一些參數等,在jspDestory()中釋放相應的資源。
%!
public void jspInit()
{
System.out.println(“jspinit”);
}
%
%!
public void jspDestory()
{
System.out.println(“jspDestory”);
}
%
jsp在Web伺服器上的運行過程是什麼
以jsp為例吧。
用戶向web伺服器以HTTP請求的形式請求資源。HTTP請求中有幾個重要的參數,一個是請求方法GET還是POST還是其它,請求的URL是Sample.jsp。
伺服器得到這些請求後對參數進行分析,如/Sample.jsp的URL請求,這個請求一般會映射一個jsp頁面或servlet,伺服器會把瀏覽器的HTTP請求打包提供給index.jsp來運行(注意,jsp最終會被編譯為可運行的類文件,它的任務是說明向瀏覽器發送什麼數據)
jsp或servlet運行的結果就是向瀏覽器回送一次HTTP回應,這個回應也包括一些參數和最後的正文,正文的內容就是html語言了。瀏覽器對html進行解釋,html正文里還有一些資源如如img src=”…” /,瀏覽器會再一次對伺服器進行請求,不過對於圖片這些靜態內容,伺服器是會直接返回的(不會經過jsp或servlet的)
一次完整的動態web交互就完成了 :HTTP請求-》伺服器處理-》HTTP回應
如果覺得這個是那麼回事就給點分撒,呵呵
原創文章,作者:EWMFP,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/317534.html