實驗7-表達式語言與JSTL_第1頁
實驗7-表達式語言與JSTL_第2頁
實驗7-表達式語言與JSTL_第3頁
實驗7-表達式語言與JSTL_第4頁
實驗7-表達式語言與JSTL_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、.實驗7(1) 表達式語言的使用一、實驗目的1. 了解表達式語言的功能;2. 掌握表達式語言的使用。二、實驗原理表達式語言(EL)是JSP 2.0新增的功能。它是一種簡潔的數據訪問語言,通過它可以在JSP頁面中方便地訪問應用程序數據,無需使用JSP表達式()。EL的目標是使動態(tài)網頁的設計、開發(fā)和維護更加容易。EL的特點是訪問數據可以使用點(.)運算符或方括號()運算符;可以訪問隱含對象;有自己的運算符構造表達式;可以使用Java語言編寫的函數等。三、實驗內容與步驟(一)表達式語言運算符的使用下面的JSP頁面operator.jsp演示了EL運算符的使用: JSP 2.0 Expression

2、Language - Basic Arithmetic JSP 2.0 表達式語言 - 基本算術運算符 該例說明了基本的表達式語言的算術運算符的使用,其中包括加(+),減(-), 乘(*),除(/ 或 div), 取余 (% 或 mod)。 EL 表達式 結果 $1 $1 $1 + 2 $1 + 2 $1.2 + 2.3 $1.2 + 2.3 $1.2E4 + 1.4 $1.2E4 + 1.4 $-4 - 2 $-4 - 2 $21 * 2 $21 * 2 $3/4 $3/4 $3 div 4 $3 div 4 $3/0 $3/0 $10%4 $10%4 $10 mod 4 $10 mod 4

3、 $(1=2) ? 3 : 4 $(1=2) ? 3 : 4 圖7.1 operater.jsp頁面的運行結果(二)訪問作用域變量編寫一個名為EmployeeBean的JavaBean,其中包括3個屬性eno表示雇員號、ename表示雇員名和ecompany表示雇員公司名?!静襟E1】EmployeeBean.java程序代碼package com.beans;public class EmployeeBean private String eno = ; private String ename = ; private String ecompany = ; public EmployeeBe

4、an() public void setEno(String eno) this.eno = eno; public void setEname(String ename) this.ename = ename; public void setEcompany(String ecompany) this.ecompany = ecompany; public String getEno() return eno; public String getEname() return ename; public String getEcompany() return ecompany; 【步驟2】編寫

5、一個JSP頁面,在其中通過表單輸入雇員信息,將請求轉發(fā)到一個Servlet。請輸入雇員信息:雇員號:雇員名:公司名:【步驟3】下面的Servlet從JSP頁面得到客戶信息package com.control;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;import com.beans.EmployeeBean;public class EmployeeServlet extends HttpServlet public void doPost(HttpServletRequest request, H

6、ttpServletResponse response) throws ServletException,IOException String eno = request.getParameter(eno); String ename = request.getParameter(ename); String ecompany = request.getParameter(ecompany); EmployeeBean employee = new EmployeeBean(); employee.setEno(eno); employee.setEname(ename); employee.

7、setEcompany(ecompany); request.setAttribute(employee, employee); RequestDispatcher view = request.getRequestDispatcher(/displayEmployee.jsp); view.forward(request, response); 【步驟4】下面的JSP使用EL表達式顯示用戶的信息雇員的信息如下: 雇員號:$employee.eno 雇員名:$employee.ename 公司名:$employee.ecompany圖7.2.1 employee.jsp頁面的運行結果圖7.2.

8、2 displayEmployee.jsp頁面的運行結果(三)隱含對象的使用下面的JSP頁面implicit.jsp演示了EL隱含對象的使用。 EL implicit objects JSP 2.0 表達式語言-隱含對象 輸入foo參數值 foo= EL 表達式 結果 $param.foo $param.foo  $paramfoo $paramfoo  $headerhost $headerhost $headeraccept $headeraccept $headeruser-agent $headeruser-agent 圖7.3 implicit.jsp頁面的運行結

9、果(四)在JSP頁面中使用Java函數設要在JSP頁面中使用一個add()函數,實現兩個整數的加法運算。在JSP中使用Java函數要經過如下3個步驟:【步驟1】函數的定義,創(chuàng)建類文件Compute.java。它定義了要在JSP中使用的add()方法。package com.demo;public class Compute public static int add(String x,String y)int a = 0;int b = 0;try a = Integer.parseInt(x); b = Integer.parseInt(y);catch(Exception e) Syste

10、m.err.println(Number format is illegal.);return a+b; package beans;import java.util.*;public class Functions public static String reverse( String text ) return new StringBuffer( text ).reverse().toString(); public static int numVowels( String text ) String vowels = aeiouAEIOU;int result = 0; for( in

11、t i = 0; i text.length(); i+ ) if( vowels.indexOf( text.charAt( i ) ) != -1 ) result+; return result; public static String caps( String text ) return text.toUpperCase(); 【步驟2】創(chuàng)建標簽庫描述文件taglib.tld。它實現將每個Java方法與函數名相匹配。 A Simple Taglib File. 1.0 Simple Tag Library /function Adding two numbers add com.de

12、mo.Compute int add( java.lang.String, java.lang.String) Reverses the characters in the given String reversebeans.Functionsjava.lang.String reverse( java.lang.String ) Counts the number of vowels (a,e,i,o,u) in the given String countVowelsbeans.Functionsjava.lang.String numVowels( java.lang.String )

13、Converts the string to all caps capsbeans.Functionsjava.lang.String caps( java.lang.String ) 注意:將該文件保存在Web應用程序WEB-INFclasses目錄中。【步驟3】編寫JSP文件sum.jsp,使用標簽庫URI以及函數名調用Java函數,代碼如下:Using Function 計算兩個整數之和 X = Y = 兩個整數的和為:$demo:add(paramx,paramy)該頁面運行結果為:圖7.4 sum.jsp頁面的運行結果(五)編寫一個名為palindrome(String str)的J

14、ava函數,實現判斷用戶輸入的字符串是否是回文(palindrome)。編寫一個JSP頁面,通過EL使用該函數。public static boolean palindrome(String str) StringBuffer sb = new StringBuffer(str); if(sb.reverse().toString().equals(str) return true; else return false; 四、思考題1. 簡述JSP表達式語言的主要功能有哪些? 答:動態(tài)讀取JavaBean中的數據和動態(tài)將數據寫入JavaBean中一級調用任意靜態(tài)或公有方法還有動態(tài)執(zhí)行算術運算。

15、2簡述在JSP頁面中使用Java函數的步驟。答:首先在之間聲明方法,該方法在整個JSP頁面有效,但是該方法內定義的變量只在該方法內有效。這些方法將在Java程序片中被調用,當方法被調用時,方法內定義的變量被分配內存,調用完畢即可釋放內存。實驗7(2) JSTL與標簽文件一、實驗目的1. 了解什么是JSTL?2. 掌握JSTL的核心庫標簽的使用。3. 掌握標簽文件的開發(fā)和使用。二、實驗原理JSP標準標簽庫(JSP Standard Tag Library,簡稱JSTL)是一個為實現Web應用程序的常用功能而開發(fā)的標簽庫集合。功能包括基本輸入輸出、流程控制、XML文件解析、數據庫查詢、國際化和文本

16、格式化等。JSTL主要由下面幾個庫組成: 核心標簽庫;XML標簽庫;格式化/國際化標簽庫;數據庫標簽庫;函數標簽庫。這些庫都很有用,但我們這里只學習核心庫的使用。核心庫的標簽又可以分成四類,如表12.1所示:表12.1 按功能分類的核心庫的標簽JSTL標簽類別JSTL標簽標簽說明通用目的在頁面中顯示內容捕獲異常變量支持設置一個EL變量值清除一個EL變量流程控制根據一個屬性等于一個值改變處理根據一個屬性等于一組值改變處理對集合中的每個對象作重復處理對給定一個文本域中的每個子串執(zhí)行處理URL處理重寫URL并對它們的參數編碼訪問web應用程序外部的內容告訴客戶瀏覽器訪問另一個URL標簽文件(tag

17、file)也是JSP 2.0新增的功能,它的目的是使JSP頁面開發(fā)人員僅使用JSP語法就能開發(fā)標簽庫而無須編寫Java程序。所謂標簽文件就是直接使用JSP語法編寫的標簽。標簽文件的擴展名一般為.tag或.tagx,如果標簽文件包含其他完整的或片段的標簽文件,JSP 2.0建議其擴展名為.tagf。在JSP頁面中使用標簽文件,需要在taglib動作中使用tagdir屬性指定標簽文件所在的目錄,例如:三、實驗內容與步驟(一)JSTL的安裝和測試【步驟1】要在JSP頁面中使用JSTL標簽,首先必須安裝JSTL庫??梢缘絁akarta網站下載最新版本的JSTL,網址為,目前最新版本為1.1.2版,它支

18、持JSP 2.0和Servlet 2.4。如果安裝了Tomcat,可以在示例應用程序中獲得JSTL,它位于webapps examplesWEB-INFlib目錄中,共有兩個文件:jstl.jar和standard.jar。將這兩個文件復制到你的Web應用程序的WEB-INFlib目錄中,就安裝了JSTL。【步驟2】一個簡單的測試JSP頁面jstl_test.jspUsing JSTLRequest Method:$pageContext.request.methodRemote Address:$pageContext.request.remoteAddr如果頁面運行產生下面結果,說明JST

19、L安裝正確,可以使用。圖7.2.1 jstl_test.jsp 頁面的運行結果說明:使用JSTL我們不用建立標簽庫描述文件,因為該文件已經包含在standard.jar文件中了,JSP容器可以找到該文件。另外,也可以不用配置web.xml文件,因為JSP容器使用隱含映射的方式可以將標準的URI映射到適當的標簽庫上。(二)表達式相關標簽的使用下面的core_expression.jsp演示了、和標簽的使用,代碼如下: 表達式相關的標簽使用c:out value= /的例子不同作用域的number變量的初始值pageScope.number =requestScope.number =sessio

20、nScope.number =c:out value=執(zhí)行之后/pageScope.number =requestScope.number =sessionScope.number =圖7.2.2 core_expression.jsp 頁面的運行結果(三)流程控制標簽的使用。本實驗包括2個頁面,一個是flowControl.html,一個是flowControl.jsp?!静襟E1】flowControl.html的代碼如下: JSTL中用于流程控制的標簽使用JSTL流程控制標簽請選擇一個填入文本框中:TomJerryMikeBen 姓名: 【步驟2】flowControl.jsp的代碼如下:

21、 JSTL中用于流程控制的標簽 標簽c:if的使用 您好,Tom 您好,Jerry 您好,Mike 您好,Ben 標簽c:choose c:when c:otherwise使用 您好,Tom 您好,Jerry 您好,Mike 您好,Ben 執(zhí)行flowControl.jsp的結果如下圖所示:圖 flowControl.html頁面的運行結果在文本框中輸入Tom后,點擊“傳送”按鈕,則出現下面的結果:圖 flowControl.jsp頁面的運行結果(四)URL相關標簽的使用【步驟1】included.jsp是被包含的頁面,代碼如下:Included Page這是被包含頁面中的內容用戶名:【步驟2】import_test.jsp是包含頁面,代碼如下:Using URL JSTL這是包含頁面中的內容 運行該頁面,結果如下圖所示:圖7.2.4 import_test.jsp頁面的運行結果【步驟3】redirect_test.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論