JSP 語法基礎

主要參考:《JSP 基礎教程》耿祥義編著,清華大學出版社。

不舉例子,純粹是回顧式學習。

一JSP 頁面的基本結構

1、普通的HTML標記符。

2、JSP標籤,如指令標籤、動作標籤。

3、變量和方法的聲明。

4、Java 程序片。

5、Java 表達式。

當服務器上的一個JSP頁面被第一次請求執行時,服務器上的JSP引擎首先將JSP頁面文件轉義成一個Java文件,再將這個Java文件編譯生成字節碼文件,然後通過字節碼文件響應客戶端的請求。這個字節碼文件的任務就是:

1、把JSP頁面中普通的HTML標記符號交給客戶端瀏覽器執行顯示。

2、JSP標籤。數據和方法聲明、Java程序片由服務器負責執行,將需要顯示的結果發送給客戶端的瀏覽器。

3、Java表達式由服務器負責計算,並將結果轉化爲字符串,然後交給客戶端的瀏覽器負責顯示。

1.1變量和方法的聲明

1、聲明變量

在“<%!  %>”標記符之間聲明變量,即在“<%!  %>”之間放置Java變量聲明語句。變量的類型可以是Java語言允許的任何數據類型。我們將這些變量稱爲JSP頁面的成員變量。

這些變量在整個JSP頁面內都有效。JSP引擎會將JSP頁面轉義成Java文件是,將這些變量作爲類的成員變量,這些變量的內存空間知道服務器關閉纔會被釋放。當多個客戶請求一個JSP頁面是,JSP引擎爲每一個客戶啓動一個線程,這些線程由JSP引擎服務器來管理。這些線程共享JSP頁面的成員變量,因此任何一個用戶對JSP頁面成員變量操作的結果,都會影響的其他用戶。

2、聲明方法

在“<%!              %>”之間聲明發發,該方法在整個JSP頁面有效,但是該方法內定義的變量只在該方法內有效。注意通過synchnorized修飾方法。

3、聲明類

1.2 Java 程序片

在“<%         %>”之間插入Java程序片,順序執行,局部變量。當程序片被調用執行時,這些變量被分配內存空間,當所有的程序片調用完畢,這些變量即可釋放所佔的內存。

當多個客戶請求一個JSP頁面時,JSP引擎爲每個客戶啓動一個線程,一個客戶的局部變量和另一個客戶的局部變量被分配不同的內存空間。因此,一個客戶對JSP頁面局部變量操作的結果,不會影響到其他客戶端的這個局部變量。

1.3表達式

可以在“<%=      %>”之間插入一個表達式,不可以插入語句,這個表達式必須能夠求值!表達式的值由服務器負責計算,並將結算結果以字符串的形式發送到客戶端顯示。

 

二JSP指令標籤

2.1 page指令

page指令用來定義這個JSP頁面的一些屬性和這些屬性的值。如:

<%@ pagecontentType=”text/html;charset=GB2312” %>

page指令格式:

<%@ page 屬性1=”值1” 屬性2=”值2” 。。。>

<%@ page import=”java.util.*” , “java.io.*”, “java.awt.*” %>

<%@ page contentType=”text/html;charset=GB2312”%>

<%@ page import=”java.util.*” %>

<%@ page import=”java.io.* %>”

僅有import屬性可以使用多個page指令指定。

Page 指令對整個頁面有效,與其書寫的位置無關,但是習慣上還是把page指令寫在JSP頁面的最前面。

1、language屬性:指定腳本運行語言

<%@ page language=”java” %>

2、import屬性爲:JSP頁面引入Java核心包中的類。

默認包含如下:

Java.lang.*、javax.servlet.*、javax.servlet.jsp

3、contentType屬性: 定義了JSP頁面響應的MIME類型和JSP頁面字符的編碼。

如:

<%@ page contentType=”text/html:charset=GB2312” %>

4、session屬性: 用於設置是否需要使用內置的session對象。

Session屬性的屬性值可以是true或false,默認的屬性值是true。

5、buffer屬性:內置輸出流對象out負責將服務器的某些信息或運行結果發送到客戶端顯示,buffer屬性用來指定out設置的緩衝區的大小或者不使用緩衝區。(取值none)

如:<@ page buffer=”24kb” %>

6、autoFlush屬性: 指定out的或衝去被填滿時,緩衝區是否自動刷新。(true或false,默認爲true)。

7、isThreadSafe屬性: 用來設置JSP頁面是否可多線程訪問。(true或false,默認是true)

2.2 include 指令標籤

如果需要在JSP頁面內某處整體的嵌入一個文件,就可以考慮使用這個指令標籤。

<% @ include  file=”文件的名字”%>

三 JSP 動作標籤

動作標籤是一種特殊的標籤,他影響這JSP的運行時的功能。

3.1 include 動作標籤

<jsp:includepage = “文件名字” %>

該動作標籤告訴JSP頁面動態包含一個文件,即JSP頁面運行時纔將文件加入。與靜態插入文件的include指令標籤不同,當JSP引擎吧JSP頁面轉譯成Java文件時,不把JSP頁面中動作指令include所包含的的文件與原JSP頁面合併到一個新的JSP頁面,而是告訴Java解釋器,當這個文件JSP運行時(java文件的字節碼文件被加載執行)才被包含進來。如果包含的文件是普通文本文件,就將文件的內容發送到客戶端,有客戶端負責顯示,如果包含的文件是JSP文件,JSP引擎就執行這個文件,然後將執行結果發送到客戶端,並由客戶端負責顯示這些結果。

注意:include動作標籤與靜態插入文件的include執行標籤有很大的區別:動作標籤是在執行時纔對包含的文件進行處理,因此JSP頁面和他所包含的文件在邏輯和語法上是多裏的。如果你對包含的文件進行了修改,那麼運行將看到包含文件修改後的結果。而靜態include指令包含的 文件如果發生了變化,我們必須要重新將JSP頁面轉譯java文件(可將該jsp頁面重新保存,然後在訪問,就可以產生新的轉譯java文件),否則只能看到所包含的文件修改前的內容。

3.2 param 動作標籤

Param標籤以“名字-值”對的形式爲其他標籤提供附加信息,這個標籤與jsp:include、jsp:forward、jsp:plugin標籤一起使用。

語法:

<jsp:paramname=” 名字” value=”指定給param的值” />

3.3 forward 動作標籤

<jsp:forwardpage=”要轉向的頁面”>

</jsp:forward>

該指令的作用:從該指令處停止當前年頁面的繼續執行,而轉向其他的一個JSP頁面。

3.4 plugin 動作標籤

<jsp:plugintype=”applet” code=”小應用程序的字節碼文件”

Jreversion=”java虛擬機版本號” widti=”小程序寬度值” height=”小程序高度值”>/

3.5 userBean 動作標籤

略,以後介紹吧。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章