avaServer Pages(JSP) 是一種服務器端編程技術,能夠為構建基于 Web 的應用程序創建動態的獨立于平臺的方法。JSP 可以訪問 Java API 的整個家族,包括訪問企業級數據庫的 JDBC API。
本文章幫助初學者們了解 JavaServer Pages(JSP) 的基本功能,從而開發自己的 Web 應用程序。學習后你會發現自己處于一個使用 JSP 專業知識的中等水平,之后你可以達到更高的水平。
搭配視頻觀看效果更佳~~
Jsp入門到精通
https://www.ixigua.com/6772333813507817987
JSP全稱Java Server Pages,是一種動態網頁開發技術。它使用JSP標簽在HTML網頁中插入Java代碼。標簽通常以<%開頭以%>結束。
JSP是一種Java servlet,主要用于實現Java web應用程序的用戶界面部分。網頁開發者們通過結合HTML代碼、XHTML代碼、XML元素以及嵌入JSP操作和命令來編寫JSP。
JSP通過網頁表單獲取用戶輸入數據、訪問數據庫及其他數據源,然后動態地創建網頁。
JSP標簽有多種功能,比如訪問數據庫、記錄用戶選擇信息、訪問JavaBeans組件等,還可以在不同的網頁中傳遞控制信息和共享信息。
● 能以模板化的方式簡單、高效地添加動態網頁內容。
● 可利用JavaBean和標簽庫技術復用常用的功能代碼(設計好的組件容易實現重復利用,減少重復勞動)。標簽庫不僅帶有通用的內置標簽(JSTL),而且支持可擴展功能的自定義標簽。
●有良好的工具支持。
● 繼承了Java語言的相對易用性。
● 繼承了Java的跨平臺優勢,實現“一次編寫,處處運行”。因為支持Java及其相關技術的開發平臺多,網站開發人員可以選擇在最適合自己的系統平臺上進行JSP開發;不同環境下開發的JSP項目,在所有客戶端上都能順利訪問。
● 頁面中的動(控制變動內容的部分)/靜(內容不需變動的部分)區域以分散但又有序的形式組合在一起,能使人更直觀地看出頁面代碼的整體結構,也使得設計頁面效果和程序邏輯這2部分工作容易分離(外觀視圖與邏輯分離)。從而方便分配人員并發揮各自長處,實現高效地分工合作。
● 可與其它企業級Java技術相互配合。JSP可以只專門負責頁面中的數據呈現,實現分層開發。
一、介紹:
1.JSP是sun公司提供一個規范
2.JSP規范用于封裝響應對象簡化將Servlet處理結果寫入到響應體開發難度
二、響應對象使用時問題
1.手動設置響應頭content-type
2.手動索要一個輸出流對象
3.手動將結果寫入到響應體
三、JSP優勢
開發人員你只需考慮哪些內容需要寫入到響應體不需要考慮寫入到響應包中過程
jsp文件"運行時"自動將文件內部所有與Java命令無關()的內容自動寫入到響應體
四、jsp文件中java命令書寫規范
1.執行標簽
1) 格式: :
<%
java命令行;
%>
2) 作用:用于提示JSP文件在運行時不要將執行標簽中Java命令寫入到響應體通知JSP文件在運行時需要將執行標簽中內容執行完畢后再做輸出
3) java命令行:
2.輸出標簽
1) 格式::
<%=變量名%>
<%=運算表達式%>
2) 作用:
在jsp文件運行時,通知JSP將指定變量內容或則表達式結果寫入到響應體
五、jsp文件中內置對象---九
1.ServletContext application
2. HttpSession session
3.HttpServletRequest request
六、Servlet與jsp文件之間關系
1.Servlet: 接收請求并處理請求,但是Servlet不負責將處理結果返回
-----相當于"大廚"
2.JSP:不負責處理請求,負責將Servlet生成的處理結果寫入到響應體
-----相當于"傳菜員"
3.Servlet與jsp之間調用關系
請求轉發
瀏覽器------>Servlet(處理請求)----------->jsp--->處理結果寫入到響應體
4.Servlet與jsp之間如何共享數據借助于request
七、JSP運行原理【面試必考題】
1.JSP文件不是靜態資源文件也不是動態資源文件
2.JSP文件不能被編譯不能被調用執行
3.運行原理:
1)tomcat接收到調用jsp文件(one.jsp)請求時,tomcat將被訪問jsp【編輯】為java文件(one_jsp.java)
2)tomcat調用JVM將java文件【編譯】為class文件(one_jsp.class)
3) 這個class文件是一個Servlet接口實現類
4)tomcat通過反射機制生成這個class文件的實例對象
5)tomcat通過實例對象調用_jspService方法,這個方法在運行時負責通過輸出流將jsp文件內容寫入到響應體
yEclipse官方最新版免費下載|Myeclipse漢化下載.MyEclipse-功能最全面的Java IDE. - MyEclipse官方中文網
如果您有HTML或JSP文件要編輯,這里將介紹如何編輯。查找以下信息:
該功能在MyEclipse中是可用的。
要編輯HTML或JSP文件,請執行以下操作當中的一個:
HTML編輯器有以下模式:
打開文件時,默認模式是Design(設計),通過單擊編輯器底部的適當選項卡來更改模式。
本文概述了使用源代碼編輯器編輯HTML時最重要的概念和特性。
用戶可以從源代碼模式或設計模式訪問源代碼,設計模式具有雙面板視圖,設計模式位于頂部面板,源模式位于底部面板。
直接編輯源代碼時,可以使用以下功能:
在整個源代碼中,編輯器提供特定于內容的代碼幫助。
Tag names(標記名稱):Code assist根據當前上下文提供可用HTML標記的列表。
Tag attributes(標記屬性):代碼輔助提供了特定于正在編輯的標記屬性列表。
Attribute values(屬性值):在適當的時候,代碼幫助會為您提供一個已知可能值的列表。
有兩種類型的HTML驗證:“輸入時”和“資源更改”。
“輸入時”:當對HTML文檔進行更改時,編輯器總是檢查HTML語法的有效性,就像Java編輯器一樣。
注意:這種類型的驗證錯誤和警告不會出現在Problems視圖中。
資源更改:當資源被修改(保存、移動、復制或導入)時,資源構建器將對資源執行HTML驗證。
注意:您可以通過從菜單中選擇Window>Preferences,展開MyEclipse并選擇Validation來設置驗證參數。
要快速格式化源代碼,請右鍵單擊編輯器,并選擇Source>Format。格式化器不會在內部修改HTML標記元素,它只調整HTML元素的縮進和間距。
使用Cleanup Document選項進行高級格式化和樣式調整,允許您更改標記名稱和屬性的大小寫,還有其他選項可以插入所需的標記和屬性。要使用此選項,請在編輯器中右鍵單擊并選擇Source>Cleanup Document,選擇Format source復選框,來將Format Document操作作為文檔清理的一部分。
件上傳就是對文件進行讀寫,需要編寫大量的代碼來實現,而且容易發生異常。幸運的是,有很多實用的工具,可以幫助我們實現文件上傳的功能,其中應用比較多的是 Commons-FileUpload 組件。本節我們在 JSP 中使用 Commons-FileUpload 組件來實現文件上傳。
Commons-FileUpload 組件具有以下特點:
使用簡單:Commons-FileUpload 可以內嵌到 JSP 頁面中,所以只需要編寫少量的代碼就可以完成文件的上傳功能。
能夠全程控制上傳內容:使用 Commons-FileUpload 組件提供的對象及操作方法,可以獲得上傳文件的信息,即文件名稱、類型和大小等。
能夠控制上傳文件的大小和類型:為了避免在上傳過程中出現異常數據,Commons-FileUpload 組件提供了相應的方法來控制上傳文件。
Commons-FileUpload 組件依賴于 FileUpload 和 Commons,需要 commons-fileupload-xx.jar 和 commons-io-xx.jar 文件。
commons-fileupload-xx.jar 下載地址:https://commons.apache.org/fileupload/
commons-io-xx.jar 下載地址:https://commons.apache.org/io/
下面我們介紹一下 Commons-FileUpload 組件的接口和實現類。
1. ServletFileUpload類
ServletFileUpload 類用于實現文件上傳操作,常用方法如下:
方 法 | 說 明 |
public void setSizeMax(long sizeMax) | 設置上傳文件總量的最大值 (包含文件和表單數據) |
public List parseRequest(HttpServletRequest req) | 解析 form 表單提交的數據,返回一個 FileItem 實例的集合 |
public static final boolean isMultipartContent(HttpServletRequest req) | 判斷請求信息中的內容是否是”multipart/form-data“類型,是則返回 true,否則返回 false。 |
public void setHeaderEncoding(String encoding) | 設置轉換時所使用的字符集編碼 |
2. FileItem接口
FileItem 接口用于封裝單個表單字段元素的數據,一個表單字段對應一個 FileItem 實例,本節示例中使用的是其實現類 DiskFileItem。FileItem 接口提供的常用方法如下:
方 法 | 說 明 |
public boolean isFormField() | 用于判斷 FileItem 類對象封裝的數據是一個普通文本表單字段,還是一個文件表單字段,如果是普通表單字段則返回 true,否則返回 false。因此,可以使用該方法判斷是否為普通表單域,還是文件上傳表單域。 |
public String getName() | 獲取文件上傳的文件名 |
public String getFieldName() | 返回表單字段元素的 name 屬性值 |
public long getSize() | 獲取上傳文件的大小 |
public String getString() | 將 FileItem 對象中保存的主體內容以一個字符串返回。其重載方法 public String getString(String encoding) 中的參數用指定的字符集編碼方式 |
public void write() | 將 FileItem 對象中保存的主體內容保存到指定的文件中。 |
3. FileItemFactory接口與實現類
創建 ServletFileUpload 實例需要依賴 FileItemFactory 工廠接口。DiskFileItemFactory 是 FileItemFactory 接口的實現類,該類的常用方法如下。
方 法 | 說 明 |
public void setSizeThreshold(int sizeThreshold) | 設置內存緩沖區的大小 |
public void setRepository(String path) | 設置臨時文件存放的目錄 |
JSP 和 HTML Form 標簽一起使用,來允許用戶把文件上傳到服務器。上傳的文件可以是文本文件、圖像文件或其它任何文檔。
創建上傳文件表單時,需要注意以下幾點:
表單的 method 屬性必須設置為 POST 方法,不能使用 GET 方法。
表單 enctype 屬性應設置為 multipart/form-data。
表單 action 屬性應設置為對應的 Servlet,用來處理文件上傳的邏輯代碼,下面示例中使用 FileUploadServlet 處理邏輯。
使用 標簽上傳單個文件,屬性 type="file"。上傳多個文件需添加多個 標簽。
拓展
表單的 enctype 屬性有以下 3 個值:
1、application/x-www-form-urlencoded:默認值,用于處理少量文本數據的傳遞。向服務器發送大量的文件或二進制數據時,效率很低。
2、multipart/form-data:上傳二進制數據,只有使用了 multipart/form-data 才能完整的傳遞文件數據,進行上傳操作。
3、text/plain:用于向服務器傳遞大量文本數據,適用于電子郵件的應用。
開課吧廣場-人才學習交流平臺
*請認真填寫需求信息,我們會在24小時內與您取得聯系。