|
|
|
|
問題類別:空間問題 (點擊數:7584)
問題:JSP 2.0 新功能介紹
|
|
http://www.now.cn/support/host/tomcatjsp.net
JSP2.0 新功能介紹
|
作為國內首家推出JSP虛擬主機的網絡提供商,時代互聯一直都致力於為用戶提供更好的、更穩定、更先進的空間服務。我們經過一段時間的對JSP服務器Tomcat最新版本5.0.16的跟蹤和測試,感覺到其各方面的性能比前面的版本的確有很大的提高。同時由於對jsp2.0的支持,極大的提高了WEB程序開發和維護的效率,所以時代互聯的Tomcat服務器定在2004年2月上旬左右升級為Tomcat5.0.x。
以下就簡要介紹一下JSP2.0很多全新特性,讓大家對JSP2.0有一個初步的了解。要知道,
時代互聯的Tomcat5.0.x服務器支持JSP2.0的所有特性的。 JSP(JavaServer Pages)技術是對Servlet的進一步抽象,它由JCP(Java Community Process)開發,是用於生成動態內容的開放式的、可免費獲取的規範,也是J2EE(Java 2 Enterprise Edition)規範的重要組成部分。JSP2.0版是對JSP1.2的升級,增加了一些有趣的新特性。JSP2.0的目標是:
- 使動態網頁的設計更加容易
- 簡化JSP頁面,使得JSP頁面容易維護
- 使WEB應用程序前後臺應用更清晰
- 無需學習Java編程語言就可以編寫JSP頁面
除了其他一些改進外,JSP 2.0引入的最主要的新特性包括:
- 一種簡單的表達式語言(EL),能夠用來容易地從JSP頁面訪問數據,這種表達式語言簡化了基於JSP的不含腳本的應用程序的編寫,不需要使用Java Scriptlet或者Java表達式;
- 用於直接使用JSP技術來定義可重用的自定義行為的新語法,該語法使用.tag和.tagx文件,這類文件可由開發人員或者網頁作者編寫;
- XML語法得到了實質性的改進,增加了新的標準文件擴展名(.tagx用於標簽文件,.jspx用於JSP文件)。
時代互聯新升級的TOMCAT5.0.x服務器支持以上JSP2.0的全部特性,下面討論表達式語言、簡化的標簽API和標簽文件,以下的JSP程序都是在TOMCAT5.0.X上實現的。相信目前的JSP開發人員將會發現這些重要的特性不但有趣,而且非常有用。 |
一. JSP表達式語言 _ EL擴展表達式語言
EL(表達式語言)是一種數據訪問語言,可以方便地訪問和處理應用程序數據,而無需使用scriptlet或者請求時(request-time)表達式的值。(不需要使用<% 和%>來獲得數據,EL使JSP頁面編寫人員擺脫了java語言,使用戶即使不懂JAVA也可以輕松編寫JSP程序.
在JSP2.0之前,網頁作者只能使用表達式<%= aName %>訪問系統的值,比如:
<someTags:aTag attribute="<%= pageContext.getAttribute("aName") %>"> 或者 <%= aCustomer.getAddress().getCountry() %>
而表達式語言允許網頁作者使用簡單的語法訪問對象。比如要訪問一個簡單變量,可以像下面這樣寫:
<someTags:aTag attribute="${aName}">
而訪問JavaBeans屬性,可以使用:${aCustomer.address.country}
- Tomcat對EL擴展表達式的支持和配置:
tomcat5.0默認支持EL,同時用戶可以在Web.xml文件中對整個web應用程序進行設置或者在每個頁面中單獨設置page指令來控制TOMCAT是否對EL的支持。EL擴展表達式語言的設置
- 表達式運算符號:
EL表達式運算符包括算數運算符(+-*/),關系運算符(><)和邏輯運算符(&& || !),還有empty 判斷值是否為空,同時EL能夠對字符串,數字等各種類型的數據之間的自動轉換,使EL 兼容了JAVASCRIPT等腳本語言的優點,擺脫了JAVA語言嚴格的數據類型限制,使用起來簡單,只需要幾分鐘就可以輕松掌握(對於不懂java的網頁編寫人員實在是一件好事)。各種運算符運算實例
- 內置的11個隱含對象:
為方便的獲得WEB應用程序的相關數據,EL表達式語言定義了一些隱含對象。隱含對象共有11個對象,(JSP中具有9個隱含對象,EL比JSP中具有更多的隱含對象,這樣EL比JSP更方便的獲取數據) 使用這些對象可以很方便的訪問Web 程序數據。 隱含對象包括Session(獲得當前web程序的Session值),cookie(獲得WEB程序的Cookie值),header,headerValues(獲得用戶的Http數據訪問頭部信息),Param和ParamValues(獲得用戶提交數據參數)等。
使用${隱含對象名稱["元素"]} 就可以獲得這個值了,例如${header("host")} 可以顯示http頭部中host的值,${param("username")},可以獲得顯示用戶表單提交的用戶. 使用${empty(param("username")} 可以判斷用戶提交表單是否為空等。(這樣比jsp1.2中使用request.getParamter("username") 要簡化和方便很多了)
隱含對象及隱含對象訪問實例
- 訪問應用程序數據
除了可以方便的訪問內置的隱含對象外,EL還可以方便的到應用程序數據,訪問應用程序數據使用兩種方式 . (點號運算符)訪問對象的屬性,也可以使用[] 來訪問數組元素(實際上EL中訪問隱含對象數據也是使用這兩種方式的) 訪問應用程序實例
表達式${data}表示名為data的scoped變量。可以使用點號(.)或方括號([])運算符從集合中檢索屬性值:(兩種數據訪問方式演示)
點號運算符用於訪問命名的屬性,比如表達式${customer.name}表示scoped變量customer的name屬性; 方括號運算符可用於檢索命名的屬性,比如在${customer[“name”]}中。也可以通過${customers[0]}的形式來訪問集合customers中的第一項。 EL表達式語言同時還統一了對點號和方括號運算符的處理,因此${customer.name}與${customer[“name”]}是等價的。
訪問應用程序數據需要進行以下幾個步驟:
1.編寫public類的static public 方法,只有static public的方法才能被標記表達試訪問。 2.將方法映射到TLD表中 3.在JSP頁面中調用要引用的Taglib標記,然後就可以在jsp頁面中訪問了。 上面關於EL 表達式語言的介紹就暫告一個段落,EL表達式是不是很簡單,很方便? 下面的要說的才是EL 顯示其真正威力的地方--簡單標記庫擴展 SimpleTag |
二. 簡單標誌庫擴展 _SimpleTag |
在jsp1.2時代已經有標記庫了, 並且功能強大,但標記庫的編程和調用都比較復雜,導致真正使用到WEB開發中的還是不多。JSP2.0推出的簡單標記庫擴展解決了以上的問題。簡單標記庫相對JSP1.2中的標記庫來說,優點在於:
對後臺程序員來說:結構更簡單,實現接口更少,可以輕松實現後臺程序
JSP 2.0中加入了新的創建自制標記的API:javax.servlet.jsp.tagext.SimpleTag,該API定義了用來實現簡單標記的接口。和JSP 1.2中的已有接口不同的是,SimpleTag接口不使用doStartTag()和doEndTag()方法,而提供了一個簡單的doTag()方法。這個方法在調用該標記時只被使用一次。而需要在一個自制標記中實現的所有邏輯過程、循環和對標記體的評估等都在這個方法中實現。從這個方面來講,SimpleTag可以和IterationTag達到同等的作用。但SimpleTag的方法和處理周期要簡單得多。在SimpleTag中還有用來設置JSP內容的setJspBody()和getJspBody()方法。Web容器會使用setJspBody()方法定義一個代表JSP內容的JspFragment對象。實現SimpleTag標記的程序可以在doTag方法中根據需要多次調用getJspBody().invoke()方法以處理JSP內容。
對於前臺WEB頁面制作人員:在JSP1.2時代,Taglib頁面調用實際上是比較復雜的,SimpleTag+EL表達式語言極大的簡化了Taglib調用,真正達到不懂JAVA的人員也可以輕松編寫JSP頁面的目的。
- 一個Taglib頁面的編寫和調用包括三個流程(簡單標誌擴展實例):
1. 後臺程序員編寫要被調用的程序 2. 編輯Tag標誌描述文件,這個文件要放在WEB-INF\jsp2下面,並且這個文件要以tld為文件結尾。 3.JSP頁面人員就可以直接調用了。
- 使用標簽文件(JSP fragment):
使用簡單標簽擴展機制的另一種簡單的方法是通過標簽文件。 標簽文件是一種資源文件,網頁作者可以利用它抽取一段JSP代碼,通過定制功能來實現代碼的復用。換句話說,標簽文件允許JSP網頁作者使用JSP語法創建可復用的標簽庫。標簽文件的擴展名必須是“.tag”。表面上標簽文件文件和jsp1.2中的jsp:include 指令中的包含文件好像是一樣的,但實際上還是有一些不同的,標簽文件一般功能比較短小簡單而且重復使用率高的一些代碼。看一個簡單的標簽文件吧 標簽文件(JSP fragment)的基本特點是可以使處理JSP的容器推遲評估JSP標記屬性。我們知道一般JSP是首先評估JSP標記的屬性,然後在處理JSP標記時使用這些屬性,而JSP fragment提供了動態的屬性。也就是說,這些屬性在JSP處理其標記體時是可以被改變的。標簽文件是用文本文件格式(JSP語法)實現自制標記,這也是JSP 2.0的一個主要新功能。我們再看一下標簽文件的動態復用的一個例子 |
體驗到了JSP2.0的新特性嗎?是不是非常方便好用? 提醒你一下時代互聯的JSP服務器Tomcat5.0.x支持以上jsp2.0的各種特性。趕快來時代互聯申請一個支持jsp2.0的JSP空間體驗一下吧。這裏可有很多款規格的JSP空間來滿足你的需要哦。 | |
|
|