JSP基礎語法小結

JSP全稱是Java Server Pages,它和servle技術一樣,都是SUN公司定義的一種用於開發動態web資源的技術。

特點:寫jsp就像在寫html,但它相比html而言,html只能爲用戶提供靜態內容,而Jsp技術允許在頁面中嵌套java代碼,爲用戶提供動態數據。

JSP模版元素:JSP頁面中的HTML內容,定義了網頁的基本骨架,即定義了頁面的結構和外觀。

JSP腳本表達式 :將程序數據輸出到客戶端

    語法:<%= 變量或表達式 %>

    如:輸出當前時間:<%=new java.util.Date() %>

JSP引擎在翻譯腳本表達式時,會將程序數據轉成字符串,然後在相應位置用out.print(¡­) 將數據輸給客戶端。

注意:JSP腳本表達式中的變量或表達式後面不能有分號(;)。

JSP腳本片斷

JSP腳本片斷(scriptlet)用於在JSP頁面中編寫多行Java代碼。

語法:<% 單行或多行java代碼 %>

注意(JSP腳本片段中的小細節):JSP腳本片斷中只能出現java代碼,不能出現其它模板元素, JSP引擎在翻譯JSP頁面中,會將JSP腳本片斷中的Java代碼將被原封不動地放到Servlet的_jspService方法中。

JSP腳本片斷中的Java代碼必須嚴格遵循Java語法,例如,每執行語句後面必須用分號(;)結束。

在一個JSP頁面中可以有多個腳本片斷,在兩個或多個腳本片斷之間可以嵌入文本、HTML標記和其他JSP元素。

多個腳本片斷中的代碼可以相互訪問,猶如將所有的代碼放在一對<%%>之中的情況。如:out.println(x);

單個腳本片斷中的Java語句可以是不完整的,但是,多個腳本片斷組合後的結果必須是完整的Java語句

例如:

<%

      int x = 10;

      out.println(x);

%>

<p>這是JSP頁面文本</p>

<%

       inty = 20;

       out.println(x);

     %>

 

JSP聲明

JSP頁面中編寫的所有代碼,默認會翻譯到servlet的service方法中, 而Jsp聲明中的java代碼被翻譯到_jspService方法的外面。語法:

<%!

    java代碼

%>

所以,JSP聲明可用於定義JSP頁面轉換成的Servlet程序的靜態代碼塊、成員變量和方法 。

 

多個靜態代碼塊、變量和函數可以定義在一個JSP聲明中,也可以分別單獨定義在多個JSP聲明中。

 

JSP隱式對象的作用範圍僅限於Servlet的_jspService方法,所以在JSP聲明中不能使用這些隱式對象。

JSP註釋

格式:<%-- 註釋信息 --%>

JSP引擎在將JSP頁面翻譯成Servlet程序時,忽略JSP頁面中被註釋的內容。

JSP指令

JSP指令(directive)是爲JSP引擎而設計的,它們並不直接產生任何可見輸出,而只是告訴引擎如何處理JSP頁面中的其餘部分。在JSP 2.0規範中共定義了三個指令:

page指令

Include指令

taglib指令

基本語法格式:<%@ 指令 屬性名="值" %>

Page指令:用於定義JSP頁面的各種屬性,無論page指令出現在JSP頁面中的什麼地方,它作用的都是整個JSP頁面,爲了保持程序的可讀性和遵循良好的編程習慣,page指令最好是放在整個JSP頁面的起始位置。

include指令用於引入其它JSP頁面,如果使用include指令引入了其它JSP頁面,那麼JSP引擎將把這兩個JSP翻譯成一個servlet。所以include指令引入通常也稱之爲靜態引入。

語法:

        <%@ includefile="relativeURL"%>

    其中的file屬性用於指定被引入文件的路徑。路徑以¡°/¡±開頭,表示代表當前web應用。

注意:

被引入的文件必須遵循JSP語法。

被引入的文件可以使用任意的擴展名,即使其擴展名是html,JSP引擎也會按照處理jsp頁面的方式處理它裏面的內容,爲了見明知意,JSP規範建議使用.jspf(JSP fragments)作爲靜態引入文件的擴展名。

由於使用include指令將會涉及到2個JSP頁面,並會把2個JSP翻譯成一個servlet,所以這2個JSP頁面的指令不能衝突(除了pageEncoding和導包除外)。

taglib指令

注意:如果一個指令有多個屬性,這多個屬性可以分開寫,也可以寫在一個指令中,這時多個屬性名之間用空格分開。如果一個屬性名有多個屬性值,可分開寫,也可以寫一塊,這時這多個屬性值之間用逗號分開

    以page指令爲例:

       <%@page contentType="text/html;charset=gb2312"%>

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

      <%@ page import="java.sql.*"%>

    也可以寫作:

    <%@page contentType="text/html;charset=gb2312" import="java.util.*,java.sql.*"%>

解決JSP引擎翻譯JSP頁面時的中文亂碼問題

通過page指令: contentType屬性說明JSP源文件的字符集編碼和pageEncoding屬性說明JSP源文件的字符集編碼

發佈了62 篇原創文章 · 獲贊 7 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章