1. 程式人生 > 其它 >最簡潔 JSP與EL表示式

最簡潔 JSP與EL表示式

JSP

一、概況

1.1 介紹

  • javaEE規範的一種

  • JSP檔案代替響應物件 將處理結果寫入響應體開發流程

    • 響應物件的缺點:

      適合資料量少寫入響應體

      如果多 增加開發難度

  • 制定了伺服器如何呼叫JSP檔案

1.2 JSP檔案

  1. 執行時會自動寫入響應體中 省略out.print();

  2. 只能在 web下 能寫html css java

  3. 在裡面直接寫java 只會被當成字串寫入響應體中

    //在JSP寫java程式碼 只有在<% java程式碼才可以 %> 在伺服器執行
    //輸出到響應體 <%=變數%>
    //導包ALT+回車 自動導包

    //把每段程式碼當做一個整體
    <%
    if(i == 1){
    %>
    <p>急急急</p>
    <%
    }else {
    %>
    <p>不不不</p>
    <%
    }
    %>

1.3 內建物件 JSP檔案中

//請求物件 HttpServletRequest request
//讀取請求頭的資訊與Servlet請求轉發過程實現資料共享

//會話作用域物件 HttpSession sessioh
//私人儲物櫃 讀取 新增共享資料

//全域性作用域物件 ServletContext application
//同一個網站下 Servlet與JSP共享資料 全域性儲物櫃 讀取 新增共享資料

二、Servlet 與 JSP

2.1 分工

Servlet:負責業務處理並得到處理結果

JSP: 不負責業務處理 主要將Servlet處理結果寫入響應體

2.2 呼叫關係

Servlet工作完畢 一般使用請求轉發 向伺服器請求呼叫JSP

2.3 資料共享

Servlet將處理結果 新增到請求作用域物件

JSP在執行的時候從請求作用域物件獲取處理結果

三、JSP檔案執行原理

  1. 伺服器將JSP檔案編譯為一個Servlet介面實現類

  2. 伺服器將這個實現類編譯成有一個class檔案

  3. 伺服器負責建立這個class例項物件

  4. 例項物件呼叫方法將JSP檔案內容寫入響應體內

四、JSP class java檔案位置

C:\Users\Administrator\AppData\Local\JetBrains\IntelliJIdea2020.2\tomcat\未命名_untitled2

五、開發步驟

  1. 從指定的作用域物件獲取處理結果

  2. 得到的是Object要進行強轉

  3. 將轉化的資料寫入響應體

JSP-EL技術

一、介紹

  • -java技術開發的一個jar包

  • 降低JSP對java命令的開發難度

  • 在Tomcat安裝lib下el-api.jar

二、EL表示式

2.1 命令格式:

${作用域物件別名.共享資料別名}

2.2 作用:

  1. EL表示式是EL.jar包提供的一種特殊命令格式【表示式命令格式】

  2. 專門在JSP檔案使用

  3. 負責在JSP檔案上從作用域物件讀取指定的共享資料並輸出到響應體

2.3 在JSP的作用域物件

  • ServletContext application;全域性作用域物件

  • HttpSession session;會話作用域物件

  • HttpServletRequest request;請求作用域物件

  • PageContext pageContext;當前頁作用域物件

    • JSP檔案獨有作用域物件

    • 存放的共享資料只能在當前JSP使用

    • 主要是JSTL與JSP檔案之間的資料共享

    • JSTL--->pageContext-->JSP

2.4 EL表示式 作用域別名

前三個後+Scope

最後pageScope

2.5 EL 呼叫引用屬性寫入響應體

  1. 命令格式:${作用域物件別名.共享資料名.屬性名}

  2. 屬性名:一定要和型別屬性名完全一致

  3. 無法從作用域物件讀取集合 沒有提供遍歷集合方法

三、簡化EL表示式

  1. 命令格式:${共享資料名}

  2. 作用:省略作用域物件別名

  3. 工作原理:用猜 先從page-->request-->session-->application

  4. 缺點:容易降低程式執行難度 資料定位錯誤

  5. 目的是:簡化page讀取資料的難度

  6. 為了節省時間 很多程式設計師都使用簡化版

四、支援運算表示式

  1. 前提:在讀取資料後進行一番運算 將運算結果寫入響應體

  2. 運算表示式:

    數學表示式

    關係表示式 > >= == < <= !=

    gt ge eq lt le !=

    邏輯表示式 && || !

五、其他內建物件

1.獲得請求引數 簡化 :${param.引數名}

  1. 獲取請求引數名一樣的引數值 類似陣列:${paramValues[下標]}