Jsp簡介


一、JSP簡介

JSP全稱Java Server Pages,中文名叫Java服務器頁面,它是一種動態網頁開發技術。它使用JSP標簽在HTML網頁中插入Java代碼。標簽通常以<%開頭以%>結束。同時是一種Java servlet,主要用於實現Java web應用程序的用戶界面部分。

JSP通過網頁表單獲取用戶輸入數據、訪問數據庫及其他數據源,然后動態地創建網頁。JSP標簽有多種功能,比如訪問數據庫、記錄用戶選擇信息、訪問JavaBeans組件等,還可以在不同的網頁中傳遞控制信息和共享信息。

二、JSP的優缺點

(1)優點

①JSP代碼可以跨平台,JSP基本上可以在所有平台上的任意環境中開發,在任意環境中進行系統部署,在任意環境中擴展。

②強大的可伸縮性。

③多樣化和功能強大的開發工具支持。

④支持服務器端組件。JSP可以使用成熟的JAVA BEANS 組件來實現復雜商務功能。

(2)缺點

①增加了產品的復雜性

②運行速度是用class常駐內存來完成的,所以它在一些情況下所使用的內存較多

三、語言標准

(一)一個JSP頁面可以被分成幾個部分

①靜態數據,如HTML

②JSP指令

③JSP腳本元素和變量

④JSP動作

⑤用戶自定義標簽

(二)內置對象

①request

  request 對象是 javax.servlet.httpServletRequest類型的對象。 該對象代表了客戶端的請求信息,主要用於接受通過HTTP協議傳送到服務器的數據。(包括頭信息、系統信息、請求方式以及請求參數等)。request對象的作用域為一次請求。

②response

  response 代表的是對客戶端的響應,主要是將JSP容器處理過的對象傳回到客戶端。response對象也具有作用域,它只在JSP頁面內有效。

③session

④application

⑤out

  out 對象用於在Web瀏覽器內輸出信息,並且管理應用服務器上的輸出緩沖區。在使用 out 對象輸出數據時,可以對數據緩沖區進行操作,及時清除緩沖區中的殘余數據,為其他的輸出讓出緩沖空間。待數據輸出完畢后,要及時關閉輸出流。

⑥page

  page 對象代表JSP本身,只有在JSP頁面內才是合法的。 page隱含對象本質上包含當前 Servlet接口引用的變量,類似於Java編程中的 this 指針。

⑦config

  config 對象的主要作用是取得服務器的配置信息。通過 pageContext對象的 getServletConfig() 方法可以獲取一個config對象。當一個Servlet 初始化時,容器把某些信息通過 config對象傳遞給這個 Servlet。 開發者可以在web.xml 文件中為應用程序環境中的Servlet程序和JSP頁面提供初始化參數。

⑧exception

  java.lang.Throwable 的實例,該實例代表其他頁面中的異常和錯誤。只有當頁面是錯誤處理頁面,即編譯指令page 的isErrorPage 屬性為true 時,該對象才可以使用。常用的方法有getMessage()和printStackTrace()等。

⑨pageContext

  pageContext 對象的作用是取得任何范圍的參數,通過它可以獲取 JSP頁面的out、request、reponse、session、application 等對象。pageContext對象的創建和初始化都是由容器來完成的,在JSP頁面中可以直接使用 pageContext對象。

 四、工作原理

(一)圖示

(二)原理

  當一個JSP文件第一次被請求的時候,JSP引擎(本身也是一個Servlet)首先會把這個JSP文件轉換成一個Java源文件。在轉換過程中如果發現JSP文件有語法錯誤,轉換過程將中斷,並向服務端和客戶端輸出出錯信息;如果轉換成功,JSP引擎用javac把該Java源文件編譯成相應的.class文件並將該.class文件加載到內存中。
  其次創建一個該Servlet的實例,並執行該實例的jspInit()方法(jspInit()方法在Servlet的生命周期中只被執行一次)。然后創建並啟動一個新的線程,新線程調用實例的jspService()方法。(對於每一個請求,JSP引擎會創建一個新的線程來處理該請求。如果有多個客戶端同時請求該JSP文件,則JSP引擎會創建多個線程,每個客戶端請求對應一個線程)。
  瀏覽器在調用JSP文件時,Servlet容器會把瀏覽器的請求和對瀏覽器的回應封裝成HttpServletRequest和HttpServletResponse對象,同時調用對應的Servlet實例中的jspService()方法,把這兩個對象作為參數傳遞到jspService()方法中。jspService()方法執行后會將HTML內容返回給客戶端。
  如果JSP文件被修改了,服務器將根據設置決定是否對該文件進行重新編譯。如果需要重新編譯,則將編譯結果取代內存中的Servlet,並繼續上述處理過程。 如果在任何時候由於系統資源不足,JSP引擎將以某種不確定的方式將Servlet從內存中移去。當這種情況發生時,jspDestroy()方法首先被調用, 然后Servlet實例便被標記加入“垃圾收集”處理。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM