03 - jsp基本語法(指令碼元素-註釋-指令)
JSP的基礎語法
- 在jsp檔案中可以巢狀很多的內容, 如 : JSP的指令碼元素和註釋等, 但是這些內容都需要遵循一定的語法規範.
JSP指令碼元素
JSP指令碼元素是指巢狀在 <% 和 %> 之中的一條或多條 Java 程式程式碼. 通過JSP指令碼元素可以將Java程式碼嵌入HTML頁面中, 所有可執行的Java程式碼,可以通過JSP指令碼來執行.
JSP 指令碼元素主要包含如下三種類型:
- JSP Scriptlets
- JSP 宣告語句
- JSP 表示式
- JSP Scriptlets
JSP Scriptlets 是一段程式碼段. 當需要使用Java實現一些複雜操作或控制時, 可以使用.
<% java 程式碼 (變數 , 方法 , 語句等) %>
在 jsp Scriptlets中宣告的變數是JSP 頁面的區域性變數, 呼叫JSP Scriptlets 時, 會為區域性變數分配記憶體空間, 呼叫結束後, 釋放區域性變數佔有的記憶體空間.
- JSP宣告語句
JSP的宣告語句用於宣告變數和方法, 以 “<%!” 開始, 以 “%>” 結束 :
<%!
定義的變數 或者方法
%>
- 在宣告語法中要注意, 被宣告的java程式碼將被編譯到 Servlet 的 *_jsp.java 的Service() 方法之外, 即在JSP宣告語句中宣告都是成員方法, 成員變數, 靜態方法, 靜態變數 , 靜態程式碼塊等. 在JSP 宣告語句中宣告的方法在整個JSP頁面內有效.
- <%和%> 中定義的是區域性變數, 不能定義方法(java方法中不能再巢狀定義方法), 程式碼塊操作可以將結果輸出到瀏覽器.
- JSP表示式
JSP表示用於將成語資料輸出到客戶端, 他將要輸出的變數或者表示式直接封裝在 “<%= xxx %>” 標記中, 基本格式如:
<%= expression %>
該語句 將"expression" 表示式的結果輸出到客戶端的瀏覽器
注意:
- “<%= xxx %>” 標記中插入表示式或者變數, 後邊不能加分號";", 不能插入語句.
- “<%=” 是一個完整的符號, <% 和 = 之間不可有空格.
JSP註釋
凡是程式語言一般都有註釋, JSP也有自己的註釋方式, 基本格式如下:
<%-- 註釋內容 --%>
注意:
- Tomcat在將JSP頁面編譯成Servlet程式時,會忽略JSP頁面中 被註釋的內容, 不會將註釋資訊傳送到客戶端. 舉個栗子:
<body> <!-- HTML註釋 --> 頁面原始碼中有顯示 <%-- JSP註釋 --%> 頁面的原始碼中不會顯示 </body>
- JSP程式碼段中的 java註釋
<% // java註釋 在被翻譯成java檔案後, 顯示該java註釋 %>
HTML註釋 , JSP註釋, java註釋 總結:
jsp原始碼 | java原始碼 | html原始碼 | |
---|---|---|---|
jsp註釋 | 有 | 無 | 無 |
java註釋 | 有 | 有 | 無 |
html註釋 | 有 | 有 | 有 |
JSP 指令
存在指令的目的就是去設定JSP頁面中的一些資訊. jsp2.0 中主要的指令有 page, include , taglib 三種指令, 每種指令又有其各自的屬性.
1. page指令
語法 :
<%@ page 屬性名1 = "value1" 屬性名2 = "value2" ...... %>
- language
表明jsp頁面中可以寫java程式碼
- contentType
其實即使說這個檔案是什麼型別,告訴瀏覽器我是什麼內容型別,以及使用什麼編碼
contentType="text/html; charset=UTF-8"
text/html MIMEType 這是一個文字,html網頁
-
pageEncoding jsp內容編碼
-
extends 用於指定jsp翻譯成java檔案後,繼承的父類是誰,一般不用改。
-
import 導包使用的,一般不用手寫。
-
session
值可選的有true or false .
用於控制在這個jsp頁面裡面,能夠直接使用session物件。
具體的區別是,請看翻譯後的java檔案 如果該值是true , 那麼在程式碼裡面會有getSession()的呼叫,如果是false : 那麼就不會有該方法呼叫,也就是沒有session物件了。在頁面上自然也就不能使用session了。
- errorPage
指的是錯誤的頁面, 值需要給錯誤的頁面路徑
- isErrorPage
上面的errorPage 用於指定錯誤的時候跑到哪一個頁面去。 那麼這個isErroPage , 就是宣告某一個頁面到底是不是錯誤的頁面。
2.include
包含另外一個jsp的內容進來。(靜態包含)
include指令只有一個file屬性, 該屬性用來指定插入到JSP 頁面目標位置的檔案資源
<%@ include file="other.jsp"%>
- 背後細節:
把另外一個頁面的所有內容拿過來一起輸出。 所有的標籤元素都包含進來。
有時候需要在JSP頁面靜態包含一個檔案(常見的比如一個網站的通用的頁頭, 頁尾等)
3.taglib
<%@ taglib prefix="" uri=""%>
prefix : 標籤庫的別名 uri: 標籤庫路徑