09-JSP,EL和JSTL

第1節 JSP基礎語法

jsp內置對象

3. 內置對象
    * 在jsp頁面中不須要建立,直接使用的對象
    * 一共有9個:
            變量名                    真實類型                        做用
        * pageContext                PageContext                    當前頁面共享數據,還能夠獲取其餘八個內置對象
        * request                    HttpServletRequest            一次請求訪問的多個資源(轉發)
        * session                    HttpSession                    一次會話的多個請求間
        * application                ServletContext                全部用戶間共享數據
        * response                    HttpServletResponse            響應對象
        * page                        Object                        當前頁面(Servlet)的對象  this
        * out                        JspWriter                    輸出對象,數據輸出到頁面上
        * config                    ServletConfig                Servlet的配置對象
        * exception                    Throwable                    異常對象

clipboard.png
pageContext 保存數據 只能在當前頁面
clipboard.pnghtml

第2節 MVC

1. jsp演變歷史
    1. 早期只有servlet,只能使用response輸出標籤數據,很是麻煩
    2. 後來又jsp,簡化了Servlet的開發,若是過分使用jsp,在jsp中即寫大量的java代碼,有寫html表,形成難於維護,難於分工協做
    3. 再後來,java的web開發,借鑑mvc開發模式,使得程序的設計更加合理性

2. MVC:
    1. M:Model,模型。JavaBean
        * 完成具體的業務操做,如:查詢數據庫,封裝對象
    2. V:View,視圖。JSP
        * 展現數據
    3. C:Controller,控制器。Servlet
        * 獲取用戶的輸入
        * 調用模型
        * 將數據交給視圖進行展現


    * 優缺點:
        1. 優勢:
            1. 耦合性低,方便維護,能夠利於分工協做
            2. 重用性高

        2. 缺點:
            1. 使得項目架構變得複雜,對開發人員要求高

第3節 EL介紹和運算符

1. 運算:
        * 運算符:
            1. 算數運算符: + - * /(div) %(mod)
            2. 比較運算符: > < >= <= == !=
            3. 邏輯運算符: &&(and) ||(or) !(not)
            4. 空運算符: empty
                * 功能:用於判斷字符串、集合、數組對象是否爲null或者長度是否爲0
                * ${empty list}:判斷字符串、集合、數組對象是否爲null或者長度爲0
                * ${not empty str}:表示判斷字符串、集合、數組對象是否不爲null 而且 長度>0

第4節 EL獲取域中存儲的數據

第5節 JSTL經常使用標籤

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語句

5. 練習:
    * 需求:在request域中有一個存有User對象的List集合。須要使用jstl+el將list集合數據展現到jsp頁面的表格table中

jstl1.jsp
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>java

<html>
<head>web

<title>if標籤</title>

</head>
<body>數據庫

<%--

c:if標籤
    1. 屬性:
        * test 必須屬性,接受boolean表達式
            * 若是表達式爲true,則顯示if標籤體內容,若是爲false,則不顯示標籤體內容
            * 通常狀況下,test屬性值會結合el表達式一塊兒使用

    2. 注意:c:if標籤沒有else狀況,想要else狀況,則能夠在定義一個c:if標籤


--%>

<c:if test="true">
    <h1>我是真...</h1>
</c:if>
<br>

<%
    //判斷request域中的一個list集合是否爲空,若是不爲null則顯示遍歷集合

    List list = new ArrayList();
    list.add("aaaa");
    request.setAttribute("list",list);

    request.setAttribute("number",4);

%>

<c:if test="${not empty list}">
    遍歷集合...

</c:if>
<br>

<c:if test="${number % 2 != 0}">

        ${number}爲奇數

</c:if>

<c:if test="${number % 2 == 0}">

    ${number}爲偶數

</c:if>

</body>
</html>數組

相關文章
相關標籤/搜索