1. 程式人生 > ><JSP> 入門

<JSP> 入門

1. 指令

        * 作用:用於配置JSP頁面,匯入資原始檔
        * 格式:
            <%@ 指令名稱 屬性名1=屬性值1 屬性名2=屬性值2 ... %>
        * 分類:
            1. page        : 配置JSP頁面的
                * contentType

:等同於response.setContentType()
                    1. 設定響應體的mime型別以及字符集
                    2. 設定當前jsp頁面的編碼(只能是高階的IDE才能生效,如果使用低階工具,則需要設定pageEncoding屬性設定當前頁面的字符集)
                * import
:導包
                * errorPage:當前頁面發生異常後,會自動跳轉到指定的錯誤頁面
                * isErrorPage:標識當前也是是否是錯誤頁面。
                    * true:是,可以使用內建物件exception
                    * false:否。預設值。不可以使用內建物件exception

            2. include    : 頁面包含的。匯入頁面的資原始檔
                * <%@include file="top.jsp"%>
            3. taglib    : 匯入資源
                * <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
                    * prefix:字首,自定義的

2.EL表示式

1. 概念:Expression Language 表示式語言
2. 作用:替換和簡化jsp頁面中java程式碼的編寫
3. 語法:${表示式}
4. 注意:
    * jsp預設支援el表示式的。如果要忽略el表示式
        1. 設定jsp中page指令中:isELIgnored="true" 忽略當前jsp頁面中所有的el表示式
        2. \${表示式} :忽略當前這個el表示式
5. 使用:
    1. 運算:
        * 運算子:
            1. 算數運算子: + - * /(div) %(mod)
            2. 比較運算子: > < >= <= == !=
            3. 邏輯運算子: &&(and) ||(or) !(not)
            4. 空運算子: empty
                * 功能:用於判斷字串、集合、陣列物件是否為null或者長度是否為0
                * ${empty list}:判斷字串、集合、陣列物件是否為null或者長度為0
                * ${not empty str}:表示判斷字串、集合、陣列物件是否不為null 並且 長度>0
    2. 獲取值
        1. el表示式只能從域物件中獲取值
        2. 語法:
            1. ${域名稱.鍵名}:從指定域中獲取指定鍵的值
                * 域名稱:
                    1. pageScope        --> pageContext
                    2. requestScope     --> request
                    3. sessionScope     --> session
                    4. applicationScope --> application(ServletContext)
                * 舉例:在request域中儲存了name=張三
                * 獲取:${requestScope.name}

            2. ${鍵名}:表示依次從最小的域中查詢是否有該鍵對應的值,直到找到為止。

            3. 獲取物件、List集合、Map集合的值
                1. 物件:${域名稱.鍵名.屬性名}
                    * 本質上會去呼叫物件的getter方法

                2. List集合:${域名稱.鍵名[索引]}

                3. Map集合:
                    * ${域名稱.鍵名.key名稱}
                    * ${域名稱.鍵名["key名稱"]}

    3. 隱式物件:
        * el表示式中有11個隱式物件
        * pageContext:
            * 獲取jsp其他八個內建物件
                * ${pageContext.request.contextPath}:動態獲取虛擬目錄

jstl

1. 概念:JavaServer Pages Tag Library  JSP標準標籤庫
    * 是由Apache組織提供的開源的免費的jsp標籤      <標籤>

2. 作用:用於簡化和替換jsp頁面上的java程式碼      

3. 使用步驟:
    1. 匯入jstl相關jar包
    2. 引入標籤庫:taglib指令:  <%@ taglib %>
    3. 使用標籤

4. 常用的JSTL標籤
    1. if:相當於java程式碼的if語句
        1. 屬性:
            * test 必須屬性,接受boolean表示式
                * 如果表示式為true,則顯示if標籤體內容,如果為false,則不顯示標籤體內容
                * 一般情況下,test屬性值會結合el表示式一起使用
         2. 注意:
             * c:if標籤沒有else情況,想要else情況,則可以在定義一個c:if標籤
    2. choose:相當於java程式碼的switch語句
        1. 使用choose標籤宣告                     相當於switch宣告
        2. 使用when標籤做判斷                  相當於case
        3. 使用otherwise標籤做其他情況的宣告        相當於default

    3. foreach:相當於java程式碼的for語句