JSP 2.0(JSR 152)是對 JSP 1.2 的重大升級,目標是「更易用、無需學習 Java 即可開發動態頁面」。它引入了表達式語言(EL)、標籤文件、簡化標籤 API(SimpleTag)等特性,並全面兼容 JSP 1.2 頁面。
EL 專為頁面作者設計,簡化數據訪問,替代 Scriptlet 與請求時表達式。
${expression}${userName} 自動從 page、request、session、application 四大範圍查找。${customer.address.city} 相當於 customer.getAddress().getCity()。param、paramValues、header、cookie、initParam、pageContext 等。empty 判空等。對比:
JSP 1.x:<%= pageContext.getAttribute("aName") %>
JSP 2.0:${aName}
使用 .tag 或 .tagx 文件,純 JSP 語法即可定義可重用標籤,無需編寫 Java 類與 TLD。
<!-- /WEB-INF/tags/hello.tag -->
<%@ tag body-content="empty" %>
<%@ attribute name="name" required="true" %>
你好,${name}!
頁面引用:
<%@ taglib prefix="my" tagdir="/WEB-INF/tags" %>
<my:hello name="World"/>
繼承 SimpleTagSupport,只需實現 doTag() 方法,生命週期更清晰,支持標籤體內容處理(getJspBody().invoke(null))。
<web-app version="2.4"> 以啟用 2.4 特性。<jsp-config><jsp-property-group><scripting-invalid>true</scripting-invalid></jsp-property-group></jsp-config>。JSP 2.0 讓頁面開發回歸「模板」本質,業務邏輯下沉至 Java 組件,前端專注於展示。掌握 EL、標籤文件、SimpleTag 是現代 JSP 開發的必備技能。