JSP筆記


  • JSP 基本結(jié)構(gòu)

    JSP 頁(yè)面組成:模板文本(HTML,XML,純文本)幻林,JSP 元素芋浮;

    JSP 元素:腳本元素谤祖,指令元素,動(dòng)作元素

      腳本元素
          腳本  <% %>
          表達(dá)式 <%=%>
          聲明  <%!%>
          注釋  <%-- --%>
    
      指令元素
          <%@page
          <%@include
          <%@taglib
    
      動(dòng)作元素
          <jsp:include
          <jsp:forward
          <jsp:param
          <jsp:useBean
    
  • JSP 腳本

      語(yǔ)法:<% JSP腳本 %>
    
      JSP 表達(dá)式(簡(jiǎn)單的輸出形式)
      語(yǔ)法:<%= 表達(dá)式 %>
    
      JSP 聲明(聲明一個(gè)或多個(gè)變量和方法啼辣,在 JSP 頁(yè)面初始化時(shí)進(jìn)行初始化,類的成員變量和方法)
      語(yǔ)法:<%! JSP 聲明 %>
    
      JSP 注釋
      語(yǔ)法:<%-- JSP注釋 --%>
    

  • JSP 指令

    1. page 指令

      描述了和頁(yè)面相關(guān)的信息御滩,導(dǎo)入所需類包鸥拧,指明輸出內(nèi)容類型,控制 Session 等削解;
      語(yǔ)法:<%@page 屬性列表 %>

      屬性:
      language Java
      import 導(dǎo)入 Java 軟件包或類名列表
      isThreadSafe true
      contentType MIME 類型和 JSP 頁(yè)面響應(yīng)時(shí)的編碼方式富弦,"text/htm;charset=ISO8859-1"
      pageEncoding 指定 JSP 文件本身編碼方式,pageEncoding="UTF-8"
      session true
      errorPage 設(shè)定 JSP 頁(yè)面異常時(shí)重新指向的頁(yè)面 URL
      isErrorPage true
      isELIgnored false
      buffer
      autoFlush

    2. include 指令(靜態(tài)包含)

      在頁(yè)面翻譯期間引入另一個(gè)文件钠绍,被包含的文件可以是 JSP,HTML 或文本文件舆声;
      語(yǔ)法:<%@include file="文件"%>

    3. taglib 指令

      指定 JSP 頁(yè)面所使用的標(biāo)簽庫(kù),可以在 JSP 頁(yè)面中使用標(biāo)簽庫(kù)中的標(biāo)簽
      語(yǔ)法:<%@taglib url="標(biāo)簽庫(kù)URI" prefix="標(biāo)簽前綴"%>

      保留前綴有:java,javax,jsp,jspx,servlet,sun,sunw


  • JSP 動(dòng)作

    JSP 標(biāo)準(zhǔn)動(dòng)作:在 JSP 中可以使用 XML 語(yǔ)法格式的一些特殊標(biāo)記來(lái)控制行為柳爽,
    動(dòng)態(tài)地插入文件媳握,調(diào)用 JavaBean 組件,重定向頁(yè)面等功能磷脯;

    <jsp:include>           在頁(yè)面被請(qǐng)求時(shí)引入一個(gè)文件蛾找;(動(dòng)態(tài)包含)
    <jsp:forward>           把請(qǐng)求轉(zhuǎn)發(fā)給另一個(gè)頁(yè)面;
    <jsp:useBean>           用于查找或?qū)嵗粋€(gè) JavaBean赵誓;
    <jsp:setProperty>       設(shè)置 JavaBean 的屬性打毛;
    <jsp:getProperty>       輸出某個(gè) JavaBean 的屬性;
1. <jsp:include>
語(yǔ)法:<jsp:include page="urlSpec" flush="true"/>
          <jsp:include page="urlSpec" flush="true">
                    <jsp:param name="name" value="value"/>
                    .......
          </jsp:include>
          
          flush="true" 表示設(shè)定是否自動(dòng)刷新緩沖區(qū)俩功,包含大量數(shù)據(jù)時(shí)為縮短客戶端延遲幻枉,
          可將一部分內(nèi)容先行輸出;
2. <jsp:forward>
語(yǔ)法:
    <jsp:forward page="relativeURLSpec" />
        <jsp:forward page="relativeURLSpec" />
                <jsp:param name="name" value="value"/>
                .......
        </jsp:forward>

        <jsp:forward>帶著 request 信息跳轉(zhuǎn)诡蜓;sendRedirect 不帶 request 信息跳轉(zhuǎn)熬甫;
3. <jsp:useBean>
語(yǔ)法:
        <jsp:useBean id="name" class="className" scope="page|request|session|application" />
        <jsp:useBean id="name" type="typeName" scope="page|request|session|application" />

        id 指定該 JavaBean 實(shí)例的變量名,通過(guò) id 可以訪問(wèn)這個(gè)實(shí)例蔓罚;
        class 指定 JavaBean 的類名椿肩;
        scope 指定 JavaBean 的作用范圍;默認(rèn) page
        type 指定 JavaBean 對(duì)象的類型豺谈,通常在查找已存在的 JavaBean 時(shí)使用郑象,這時(shí)使用 type 將不會(huì)產(chǎn)生新的對(duì)象;
4. <jsp:setProperty>
語(yǔ)法:
        <jsp:setProperty name="beanName" property="propertyName" value="propertyValue" />
        <jsp:setProperty name="beanName" property="propertyName" param="parameterName" />

        name 指定 JavaBean 對(duì)象名茬末,與 useBean 動(dòng)作中的 id 相對(duì)應(yīng)厂榛;
        property 指定 JavaBean 中需要賦值的屬性名;
        value 指定要為屬性設(shè)置的值;
        param 指定請(qǐng)求中的參數(shù)名(表單傳值噪沙,或 URL 傳值)炼彪,并將參數(shù)的值賦給 property 所指定的屬性;
5. <jsp:getProperty>
語(yǔ)法:
        <jsp:getProperty name="beanName" property="propertyName" />    
        轉(zhuǎn)換成 String 類型的值     
  • JSP 內(nèi)置對(duì)象
    request     javax.servlet.http.HttpServletRequest       請(qǐng)求對(duì)象正歼,提供客戶端 HTTP 請(qǐng)求數(shù)據(jù)的訪問(wèn)
    response     javax.servlet.http.HttpServletResponse    響應(yīng)對(duì)象辐马,用來(lái)向客戶端輸出響應(yīng)
    out         javax.servlet.jsp.JspWriter               輸出對(duì)象,提供對(duì)象輸出流的訪問(wèn)
    session        javax.servlet.http.HttpSession              會(huì)話對(duì)象局义,用來(lái)保存服務(wù)器與每個(gè)客戶端會(huì)話過(guò)程中的信息
    application    javax.servlet.ServletContext                 應(yīng)用程序?qū)ο笙惨脕?lái)保存整個(gè)應(yīng)用環(huán)境的信息
    pageContext    javax.servlet.jsp.PageContext             頁(yè)面上下文對(duì)象,用來(lái)存儲(chǔ)當(dāng)前 JSP 頁(yè)面的相關(guān)信息
    config       javax.servlet.ServletConfig                 頁(yè)面配置對(duì)象萄唇,JSP 頁(yè)面的配置信息對(duì)象
    page          javax.servlet.jsp.HttpJspPage                當(dāng)前 JSP 頁(yè)面對(duì)象檩帐,即 this
    exception      java.lang.Throwable                        異常對(duì)象,用于處理 JSP 頁(yè)面中的錯(cuò)誤
1. request

    void setCharacterEncoding(String charset)
    String getParameter(String name)
    String[] getParameterValues(String name)
    void setAttribute(String name, Object value)
    Object getAttribute(String name)

2. response

    void setContentType(String name)
    void sendRedirect(String url)

3. out

    javax.servlet.jsp.JspWriter 與 HttpServletResponse 接口的 getWriter() 方法獲得的 PrintWriter 對(duì)象功能相同另萤,
    繼承自 java.io.Writer 類

    數(shù)據(jù)的輸出
        print/println(基本數(shù)據(jù)類型)       輸出一個(gè)基本數(shù)據(jù)類型的值
        print/println(Object obj)       輸出對(duì)象的引用地址
        print/println(String str)       輸出一個(gè)換行符
        newLine()                       換行符

    緩沖區(qū)的處理
        void clear()            清除輸出緩沖區(qū)的內(nèi)容湃密,若緩沖區(qū)為空,則產(chǎn)生 IOException 異常
        void clearBuffer()      清除輸出緩沖區(qū)的內(nèi)容四敞,若緩沖區(qū)為空泛源,不會(huì)產(chǎn)生 IOException 異常
        void flush()            直接將目前暫存于緩沖區(qū)的數(shù)據(jù)刷新輸出
        void close()            關(guān)閉輸出流,流一旦被關(guān)閉忿危,則不能再使用 out 對(duì)象做任何操作
        int getBufferSize()     獲取目前緩沖區(qū)的大小(kb)
        int getRemaining()      獲取目前使用后還剩下的緩沖區(qū)大小(kb)
        boolean isAutoFlush()   返回 true 表示緩沖區(qū)滿時(shí)(8kb)會(huì)自動(dòng)刷新輸出达箍;false 表示緩沖區(qū)滿時(shí)
                                不會(huì)自動(dòng)清除并產(chǎn)生異常處理


4. session 
    一次對(duì)話可以包含多次請(qǐng)求與響應(yīng)

    void setAttribute(String name, Object value)
    Object getAttribute(String name)
    void invalidate()                   使 session 對(duì)象失效,釋放所有屬性空間

    通常把與用戶會(huì)話狀態(tài)相關(guān)的信息放入 session 范圍內(nèi)铺厨,對(duì)于一次請(qǐng)求資源間的信息傳遞缎玫,應(yīng)該把信息傳遞給
    request 范圍內(nèi),然后通過(guò)請(qǐng)求轉(zhuǎn)發(fā)實(shí)現(xiàn)解滓;

5. application
    application 對(duì)象在容器啟動(dòng)時(shí)實(shí)例化赃磨,在容器關(guān)閉時(shí)銷毀。作用域?yàn)檎麄€(gè) Web 容器的生命周期
    實(shí)現(xiàn)了 javax.servlet.ServletContext 接口

    void setAttribute(String name, Object value)
    Object getAttribute(String name)
    void removeAttribute(String name)               根據(jù)屬性名從 application 域中移除屬性


6. pageContext
    表示當(dāng)前頁(yè)面運(yùn)行環(huán)境洼裤,用以獲取當(dāng)前 JSP 頁(yè)面的相關(guān)信息煞躬;
    pageContext 對(duì)象作用范圍為當(dāng)前 JSP 頁(yè)面,可以訪問(wèn)當(dāng)前 JSP 頁(yè)面所有的內(nèi)置對(duì)象

    ServletRequest getRequest()      獲取當(dāng)前 JSP 頁(yè)面的請(qǐng)求對(duì)象
    ServletResponse getResponse()      獲取當(dāng)前 JSP 頁(yè)面的響應(yīng)對(duì)象
    HttpSession getSession()            獲取當(dāng)前 JSP 頁(yè)面有聯(lián)系的會(huì)話對(duì)象
    ServletConfig getServletConfig()    獲取當(dāng)前 JSP 頁(yè)面的 ServletConfig 對(duì)象
    ServletContext getServletContext()  獲取當(dāng)前 JSP 頁(yè)面的運(yùn)行環(huán)境對(duì)象
    Object getPage()                    獲取當(dāng)前 JSP 頁(yè)面的 Servlet 實(shí)體
    Exception getException()            獲取當(dāng)前 JSP 頁(yè)面的異常對(duì)象逸邦,page指令的 isErrorPage 設(shè)為 true
    JspWriter getOut()                獲取當(dāng)前 JSP 頁(yè)面的輸出流對(duì)象

    存取域?qū)傩缘姆椒?    Object getAttribute(String name, int scope)                 獲取范圍為 scope,名為 name 的屬性對(duì)象
    void setAttribute(String name, Object value, int scope)     以名/值對(duì)的方式存儲(chǔ) scope 范圍域?qū)傩?    void removeAttribute(String name, int scope)                   從 scope 范圍移除名為 name 的屬性
    Enumeration getArributeNamesInScope(int scope)               從 scope 范圍中獲取所有屬性的名稱

    scope 參數(shù)
        PAGE_SCOPE = 1          代表 page 范圍
        REQUEST_SCOPE = 2       代表 request 范圍
        SESSION_SCOPE = 3       代表 session 范圍
        APPICATION_SCOPE = 4    代表 application 范圍


7. page 對(duì)象
    JSP 翻譯后的 Servlet 對(duì)象,很少使用

8. config 對(duì)象
    JSP 翻譯后的 Servlet 的 ServletConfig 對(duì)象在扰,Servlet 初始化參數(shù)缕减,web.xml


9. exception 對(duì)象
    必須將此頁(yè)面中 page 指令的 isErrorPage 屬性值設(shè)為 true
  • JSP 四種作用域

    1. 頁(yè)面域
      生命周期:頁(yè)面執(zhí)行期間
      可訪問(wèn)性:存儲(chǔ)在頁(yè)面域的對(duì)象只對(duì)它所在的頁(yè)面可訪問(wèn)的

    2. 請(qǐng)求域
      生命周期:一次請(qǐng)求過(guò)程,包括請(qǐng)求被轉(zhuǎn)發(fā)(forward)或者被包含(include)的情況
      可訪問(wèn)性:存儲(chǔ)在請(qǐng)求域中的對(duì)象只有在此請(qǐng)求過(guò)程中才可以被訪問(wèn)

    3. 會(huì)話域
      生命周期:某個(gè)客戶端與服務(wù)器所連接的時(shí)間芒珠,客戶端在第一次訪問(wèn)服務(wù)器時(shí)創(chuàng)建會(huì)話桥狡,在關(guān)閉瀏覽器或主動(dòng)退出后,會(huì)話結(jié)束
      可訪問(wèn)性:存儲(chǔ)在會(huì)話域中的對(duì)象在整個(gè)會(huì)話期間(可能包含多次請(qǐng)求)都可以被訪問(wèn)

    4. 應(yīng)用域
      生命周期:從服務(wù)器開(kāi)始執(zhí)行服務(wù)到服務(wù)器關(guān)閉為止,時(shí)間最長(zhǎng)的
      可訪問(wèn)性:存儲(chǔ)在應(yīng)用域中的對(duì)象在整個(gè)應(yīng)用程序運(yùn)行期間可以被所有 JSP 和 Servlet 共享訪問(wèn)裹芝,使用時(shí)要特別注意存儲(chǔ)數(shù)據(jù)的大小和安全性部逮,否則可能會(huì)造成服務(wù)器負(fù)載過(guò)重和線程安全性問(wèn)題

    對(duì)應(yīng) pageContext,request,session,application
    都通過(guò) setAttribute(String name, Object value) getAttribute(String name) 實(shí)現(xiàn)屬性對(duì)象在不同作用域的數(shù)據(jù)共享

  • JavaBean
    1. 簡(jiǎn)介
      一種是有用戶界面(UI,UserInterface)的 JavaBean,例如 GUI 組件
      另一種是沒(méi)有用戶界面,主要負(fù)責(zé)封裝數(shù)據(jù)嫂易,業(yè)務(wù)處理的 JavaBean.(JSP 通常訪問(wèn)后一種)

    2. 規(guī)范(Java 類)

      1. JavaBean 是一個(gè)公開(kāi)的(public)類兄朋,以便被外部程序訪問(wèn);
      2. 具有一個(gè)無(wú)參的構(gòu)造方法(默認(rèn)構(gòu)造方法)怜械,以便被外部程序?qū)嵗瘯r(shí)調(diào)用颅和;
      3. 提供 setXxx() 方法和 getXxx() 方法,以便讓外部程序設(shè)置和獲取其屬性缕允;
    <jsp:useBean>: 創(chuàng)建或查找 JavaBean 實(shí)例對(duì)象
    <jsp:setProperty>: 設(shè)置 JavaBean 對(duì)象的屬性值峡扩,相當(dāng)于調(diào)用 JavaBean 對(duì)象的 setter 方法
    <jsp:getProperty>: 獲取 JavaBean 對(duì)象的屬性值
        <jsp:useBean id="product" class="ProductBean" />
        <jsp:setProperty property="price" value="23.5" name="product" />
        <jsp:setProperty property="num" value="2" name="product" />
        <jsp:getProperty property="totalPrice" name="product" />
<jsp:useBean>
        語(yǔ)法:
        <jsp:useBean id="beanInstanceName" class="package.class" scope="page|request|session|application" />

        id 屬性:指定 JavaBean 對(duì)象的引用名稱和其存儲(chǔ)域?qū)傩悦?        class屬性:指定 JavaBean 對(duì)象的完整類名;
        scope 屬性:默認(rèn) page
    ```
    <jsp:setProperty>
    語(yǔ)法:
    <jsp:setProperty name="beanInstanceName" property="propertyName" value="propertyName"|
                                             property="propertyName" param="parameterName"|   //有請(qǐng)求
                                             property="propertyName"|
                                             property="*"
    />

    name 屬性指定 JavaBean 對(duì)象的名稱障本,其值應(yīng)與<jsp:useBean>標(biāo)簽中的 id 屬性值相同教届;
    property 屬性指定 JavaBean 對(duì)象的屬性名;
    value 屬性指定 JavaBean 對(duì)象的某個(gè)屬性的值驾霜,可選案训;
    param 屬性將一個(gè)請(qǐng)求參數(shù)的值賦給 JavaBean 對(duì)象的某個(gè)屬性,可選寄悯;

    <jsp:setProperty>元素還可用于<jsp:useBean>元素起始標(biāo)簽和終止標(biāo)簽間萤衰,
    表示 JavaBean 對(duì)象實(shí)例化時(shí),對(duì)其屬性進(jìn)行初始化猜旬。若對(duì)象已存在脆栋,不執(zhí)行。

    <jsp:getProperty>
    語(yǔ)法:
    <jsp:getProperty name="beanInstanceName" property="propertyName" />

* 表達(dá)式式語(yǔ)言(EL)
    1. EL 的啟用
    <%@page isELIgnored = "true|false" %>

    true EL表達(dá)式被當(dāng)成字符串直接輸出
    false JSP引擎調(diào)用EL引擎解釋執(zhí)行(默認(rèn))
        特點(diǎn):
            可以訪問(wèn) JSP 的內(nèi)置對(duì)象洒擦;
            簡(jiǎn)化了對(duì) JavaBean,集合的訪問(wèn)方式椿争;
            可以對(duì)數(shù)據(jù)進(jìn)行自動(dòng)類型轉(zhuǎn)換;
            可以通過(guò)各種運(yùn)算符進(jìn)行運(yùn)算熟嫩;
            可以使用自定義函數(shù)實(shí)現(xiàn)復(fù)雜業(yè)務(wù)功能秦踪;

    2. EL 語(yǔ)法
    ${表達(dá)式}
        表達(dá)式可以是常量,變量掸茅,可以使用 EL 隱含對(duì)象椅邓,EL 運(yùn)算符和 EL 函數(shù);

        1. EL中的常量
            布爾常量:true,false
            整形常量:Long.MIN_VALUE 到 Long.MAX_VALUE 之間
            浮點(diǎn)數(shù)常量:Double.MIN_VALUE 到 Double.MAX_VALUE
            字符串常量:使用單引號(hào)或雙引號(hào)引起來(lái)的一連串字符
            NULL常量:表示引用對(duì)象為空昧狮,${null} 輸出空

        2. EL中的變量
            ${varname}
            表達(dá)式按照 page, request, session, application 范圍順次查找名為 varname 的屬性景馁,
            找到傳回,沒(méi)有找到回傳 null

            EL保留字
                and     or      not     empty       div     mod     instance of     
                eq      ne      It      gt          le      ge      true 
                false   null

        3. EL中的操作符
        "."操作符:訪問(wèn)對(duì)象的某個(gè)屬性                                ${productBean.category.name}
        "[]"操作符:可用于訪問(wèn)對(duì)象的屬性逗鸣,屬性需使用雙引號(hào)括起來(lái)  ${productBean["category"]["name"]}
            當(dāng)屬性中包含了特殊字符合住,如:"."和"-"                   ${header["user-agent"]}
            "[]"可以訪問(wèn)有序集合或數(shù)組中的指定索引位置的某個(gè)元素    ${array[0]}
            "[]"可以訪問(wèn) Map 對(duì)象的 key 關(guān)鍵字的值                  ${map["key"]}
            "[]"可以和點(diǎn)操作符結(jié)合使用                             ${user[0].username}

        4. EL的錯(cuò)誤處理機(jī)制
            不提供警告绰精,只提供默認(rèn)值和錯(cuò)誤,默認(rèn)值是空字符串透葛,錯(cuò)誤是拋出一個(gè)異常

            不存在的變量:輸出空字符串
            不存在對(duì)象的屬性:輸出空字符串
            存在對(duì)象的不存在屬性:拋出 PropertyNotFoundException


    3. EL隱含對(duì)象
        1. 與范圍有關(guān)的隱含對(duì)象
        pageScope              =pageContext.getAttribute()
        requestScope            =request.getAttrbute()
        sessionScope            =session.getAttrbute()
        applicationScope        =application.getAttrbute()
        2.與請(qǐng)求參數(shù)有關(guān)的隱含對(duì)象
            param                   =request.getParameter()
            paramValues             =request.getParameterValues()

        3.其它隱含對(duì)象
            pageContext         相當(dāng)于 JSP 頁(yè)面中的 pageContext 對(duì)象笨使,用于獲取 ServletContext,request,response,session
            header              =request.getHeader(String name)
            headerValues        =request.getHeader(String name)
            cookie              
            initParam           =application.getInitParameter(String name)


    4. 運(yùn)算符

        1. 算術(shù)運(yùn)算符
        +   -   *   /或div       %或mod

        2. 關(guān)系運(yùn)算符
        ==或eq       !=或ne       <或lt     >或gt       <=或le       >=或ge

        3. 邏輯運(yùn)算符
        &&或and  ||或or       !或not

        4. 條件運(yùn)算符
        A?B:C

        5. empty運(yùn)算符
        檢測(cè)一個(gè)值是否為null或"空"

            當(dāng)操作數(shù)指向的對(duì)象為null時(shí),返回true
            當(dāng)操作數(shù)是空字符串時(shí)僚害,返回true
            當(dāng)操作數(shù)是集合或數(shù)組時(shí)硫椰,如沒(méi)有任何元素,返回true
            當(dāng)操作數(shù)是java.util.Map對(duì)象一個(gè)關(guān)鍵字時(shí)贡珊,如Map為空最爬,返回true



* 標(biāo)準(zhǔn)標(biāo)簽庫(kù)(JSTL)
    
    1. JSTL函數(shù)庫(kù)分類
    標(biāo)簽庫(kù)             前綴名稱        URI
    核心標(biāo)簽庫(kù)       c               http://java.sun.com/jsp/jstl/core           包含Web應(yīng)用的通用操作的標(biāo)簽
    I18N標(biāo)簽庫(kù)         fmt             http://java.sun.com/jsp/jstl/fmt            包含實(shí)現(xiàn)Web應(yīng)用程序的國(guó)際化的標(biāo)簽
    SQL標(biāo)簽庫(kù)      sql             http://java.sun.com/jsp/jstl/sql            包含用于訪問(wèn)數(shù)據(jù)庫(kù)和對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行操作的標(biāo)簽
    XML標(biāo)簽庫(kù)      x               http://java.sun.com/jsp/jstl/xml            包含對(duì)XML文檔中的數(shù)據(jù)進(jìn)行操作的標(biāo)簽
    函數(shù)標(biāo)簽庫(kù)       fn              http://java.sun.com/jsp/jstl/functions      由JSTL提供一套EL自定義函數(shù),包含了JSP頁(yè)面制作者經(jīng)常要用到的字符串操作
    2. [下載地址](https://tomcat.apache.org/taglibs/standard/)

      將四個(gè)jar包導(dǎo)入相應(yīng)工程下的WebContent/WEB-INF/lib

      使用:在JSP頁(yè)面使用JSTL標(biāo)簽庫(kù)時(shí)门岔,使用 taglib 指令指定需要使用的函數(shù)庫(kù)前綴和URI
    例:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

    3.  核心標(biāo)簽庫(kù)

        1. 通用標(biāo)簽爱致,用于操作變量
            <c:out>標(biāo)簽       用于輸出數(shù)據(jù),等同于<%=表達(dá)式%>
            <c:out value="value" [escapeXml="{true|false}"] [default="defaultValue"] />
            value表示要輸出的數(shù)據(jù)寒随,可以是JSP表達(dá)式糠悯,EL表達(dá)式或靜態(tài)值
            escapeXml表示是否將>,<,&,'," 等特殊字符進(jìn)行HTML字符實(shí)體轉(zhuǎn)換后再進(jìn)行輸出,默認(rèn)值為 true
            default表示如果value屬性的值為null時(shí)所輸出的默認(rèn)值
            <c:set>標(biāo)簽       用于設(shè)置各種范圍域的屬性
            <c:set var="varName" value="value" [scope="{page|request|session|application}"] />
            varName 指定要設(shè)置的范圍域?qū)傩悦?            value 指定var屬性的屬性值妻往;
            scope 指定var屬性的范圍域互艾,默認(rèn)page;
            <c:remove>標(biāo)簽        用于刪除各種范圍域?qū)傩?
            <c:remove var="varName" [scope="{page|request|session|application}"] />
            <c:catch>標(biāo)簽         用于捕獲嵌套在標(biāo)簽體中的內(nèi)容拋出的異常
            <c:catch [var="varName"]>
                    nested actions
            </c:catch>
            var屬性用于標(biāo)識(shí)捕獲的異常對(duì)象名稱讯泣,并將異常對(duì)象保存在page域中纫普;
            若未指定var屬性,則僅捕獲異常而不在page域中保存異常對(duì)象

        2. 條件標(biāo)簽好渠,用于流程控制

            <c:if>          用于條件判斷
                <c:if test="condition" [var="varName"] [scope="{page|request|session|application}"] >
                    //condition為true時(shí)執(zhí)行的代碼
                </c:if>

                test  用于指定條件表達(dá)式昨稼,返回boolean類型值;
                var   用于指定將test屬性的執(zhí)行結(jié)果保存到某個(gè)范圍作用域的屬性名稱拳锚;
                scope 用于指定將test屬性的執(zhí)行結(jié)果保存到哪個(gè)范圍作用域中

            <c:choose>
            <c:choose>
                //<c:when>或<c:otherwise>子標(biāo)簽
            </c:choose>
            <c:when>
                <c:when test="condition">
                    //condition為true時(shí)假栓,執(zhí)行的代碼
                </c:when>

                <c:when>標(biāo)簽代表<c:choose>標(biāo)簽的一個(gè)條件分支,必須以<c:choose>為父標(biāo)簽霍掺,且必須在<c:otherwise>標(biāo)簽之前

            <c:otherwise>
                <c:otherwise>
                    //執(zhí)行的代碼
                </c:otherwise>

        3. 迭代標(biāo)簽匾荆,用于循環(huán)遍歷集合

            <c:forEach>

                <c:forEach [var="varName"] items="collection" [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]>
                    //標(biāo)簽體內(nèi)容
                </c:forEach>

                var用于指定將當(dāng)前迭代到的元素保存到page域中的屬性名稱;
                items指定將要迭代的集合對(duì)象杆烁;
                varStatus表示當(dāng)前被迭代到的對(duì)象的狀態(tài)信息牙丽,包括四個(gè)屬性:
                    index:當(dāng)前迭代成員的索引值;
                    count:當(dāng)前已迭代成員的數(shù)量兔魂;
                    first:當(dāng)前迭代到的成員是否為第一個(gè)剩岳;
                    last:當(dāng)前迭代到的成員是否為最后一個(gè);
                begin表示遍歷的起始索引入热,值為整數(shù)拍棕;
                end表示遍歷的結(jié)束索引,值為整數(shù)勺良;
                step表示迭代的步長(zhǎng)绰播,值為整數(shù);

            <c:forTokens>
                <c:forTokens items="stringOfTokens" delims="delimiters"
                                                    [var="varName"] [varStatus="varStatusName"]
                                                    [begin=begin] [end=end] [step=step]>
                        //標(biāo)簽體內(nèi)容
                </c:forTokens>

                items用于指定將要迭代的字符串尚困;
                delims用于指定一個(gè)或多個(gè)分隔符蠢箩;
                var用于將當(dāng)前迭代的子字符串保存到page域中的屬性名稱;

        4. URL標(biāo)簽事甜,用于針對(duì)URL相關(guān)的操作

            <c:url>
                <c:url value="value"
                        [var="varName"] [scope="{page|request|session|application}"]
                        [context="context"]>
                        [<c:param name="paramName" value="paramValue"/>]
                </c:url>

                value 指定要構(gòu)造的 URL;
                var 指定構(gòu)造出的 URL 結(jié)果保存到范圍域中的屬性名稱谬泌;
                context 指定 URL 地址所需的同一容器下的 Web 應(yīng)用上下文;此時(shí)value屬性中地址必須是以"/"開(kāi)頭的地址
                <c:param>標(biāo)簽指定 URL 地址傳遞的參數(shù)逻谦;(可選)

            <c:import>
                在 JSP 頁(yè)面中導(dǎo)入一個(gè) URL 地址指向的資源內(nèi)容掌实,靜態(tài)或動(dòng)態(tài)文件

                <c:import url="url"
                                    [var="varName"] [scope="{page|request|session|application}"]
                                    [context="context"] [charEncoding="charEncoding"]>
                                    [<c:param name="paramName" value="paramValue"/>]
                </c:import>

                <c:import>標(biāo)簽與<jsp:include>動(dòng)作指令功能相似,但<jsp:include>只能包含當(dāng)前應(yīng)用下的文件資源邦马;
                而<c:import>標(biāo)簽可以包含任何其他應(yīng)用或網(wǎng)站下的資源

            <c:redirect>
                =response.sendRedirect()

                <c:redirect url="value" [context="context"]>
                        [<c:param name="paramName" value="paramValue"/>]
                </c:redirect>

                url 用于指定重定向的目標(biāo)資源的 URL 地址贱鼻;

    4. I18N 標(biāo)簽庫(kù)
        實(shí)現(xiàn)國(guó)際化和格式化功能,封裝了 java.util 和 java.text

        國(guó)際化標(biāo)簽:綁定資源包滋将,從資源包中的本地資源文件讀取文本內(nèi)榮的功能

        格式化標(biāo)簽:對(duì)數(shù)字邻悬,日期時(shí)間等本地敏感的數(shù)據(jù)按本地化信息顯示的功能

        導(dǎo)入I18N標(biāo)簽庫(kù):<%@ taglib="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

        <fmt:formatDate>標(biāo)簽
            <fmt:formatData value="date"
            [type="{time|date|both}"]
            [dateStyle="{default|short|medium|long|full}"]
            [timeStyle="{default|short|medium|long|full}"]
            [pattern="customPattern"] [timeZone="timeZone"]
            [var="varName"] [scope="{page|request|session|application"] />

            value 指定要格式化的日期或時(shí)間;
            type 指定輸出時(shí)間部分還是日期部分随闽,或者兩者都輸出父丰;
            dateStyle 指定日期部分的輸出格式,type=date或both
            timeStyle 指定時(shí)間部分的輸出格式掘宪,type=time或both
            pattern 指定一個(gè)自定義的日期和時(shí)間輸出格式
            timeZone 指定當(dāng)前采用的時(shí)區(qū)蛾扇;
            var 指定將格式化結(jié)果保存到某個(gè)范圍域中某個(gè)屬性的名稱;

        <fmt:formatNumber>標(biāo)簽
            <fmt:formatNumber value="numbericValue"
                        [type="{number|currency|percent}"] [pattern="customPattern"]
                        [currencyCode="currencyCode"] [currencySymbol="currencySymbol"]
                        [groupingUsed="{true|false}"]
                        [var="varName"] [scope="{page|request|session|application"] />

            value 指定需要格式化的數(shù)字添诉;
            type 指定值得類型屁桑,數(shù)字(number),貨幣(currency)栏赴,百分比(percent)蘑斧;
            currencyCode 指定貨幣編碼;
            currencySymbol 指定貨幣符號(hào)

            <fmt:setLocale value="zh_CN"/>
    5. 函數(shù)標(biāo)簽庫(kù)
        <%@ taglib="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

        ${fn:函數(shù)名(參數(shù)列表)}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末须眷,一起剝皮案震驚了整個(gè)濱河市竖瘾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌花颗,老刑警劉巖捕传,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異扩劝,居然都是意外死亡庸论,警方通過(guò)查閱死者的電腦和手機(jī)职辅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)聂示,“玉大人域携,你說(shuō)我怎么就攤上這事∮愫恚” “怎么了秀鞭?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)扛禽。 經(jīng)常有香客問(wèn)我锋边,道長(zhǎng),這世上最難降的妖魔是什么编曼? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任豆巨,我火速辦了婚禮,結(jié)果婚禮上灵巧,老公的妹妹穿的比我還像新娘搀矫。我一直安慰自己,他們只是感情好刻肄,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布瓤球。 她就那樣靜靜地躺著,像睡著了一般敏弃。 火紅的嫁衣襯著肌膚如雪卦羡。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天麦到,我揣著相機(jī)與錄音绿饵,去河邊找鬼。 笑死瓶颠,一個(gè)胖子當(dāng)著我的面吹牛拟赊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播粹淋,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼吸祟,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了桃移?” 一聲冷哼從身側(cè)響起屋匕,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎借杰,沒(méi)想到半個(gè)月后过吻,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蔗衡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年纤虽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了乳绕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡廓推,死狀恐怖刷袍,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情樊展,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布堆生,位于F島的核電站专缠,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏淑仆。R本人自食惡果不足惜涝婉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蔗怠。 院中可真熱鬧墩弯,春花似錦、人聲如沸寞射。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)桥温。三九已至引矩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間侵浸,已是汗流浹背旺韭。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留掏觉,地道東北人区端。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像澳腹,于是被迫代替她去往敵國(guó)和親织盼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • jsp概述 jsp全稱是 Java Server Page遵湖,它和servlet技術(shù)一樣悔政,都是SUN公司定義的一種用...
    持續(xù)進(jìn)步者閱讀 623評(píng)論 0 2
  • title: JSP筆記date: 2017-02-24 21:51:49tags: JSP JSP&Servle...
    fanyank閱讀 465評(píng)論 0 1
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法延旧,內(nèi)部類的語(yǔ)法谋国,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法迁沫,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,639評(píng)論 18 399
  • 1.學(xué)習(xí)內(nèi)容 JSP技術(shù)入門和常用指令 JSP的內(nèi)置對(duì)象&標(biāo)簽介紹 EL表達(dá)式&EL的內(nèi)置對(duì)象 2.JSP技術(shù)入門...
    WendyVIV閱讀 2,138評(píng)論 1 18
  • 一芦瘾、JSP基礎(chǔ) 1.1什么是JSP JSP(Java ServerPage)是Java服務(wù)器端動(dòng)態(tài)頁(yè)面技術(shù)捌蚊。是su...
    晨星資源閱讀 1,152評(píng)論 0 6