




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
JSP2025/5/211主要內(nèi)容2025/5/21《Web程序設(shè)計》21JSP基礎(chǔ)2指令標簽3相對路徑與絕對路徑本章課程目標知識目標掌握JSP基本語法、指令標簽及路徑;熟練掌握Web應(yīng)用服務(wù)器的配置方法以及Web開發(fā)工具的使用方法。能力要求:能夠理解并掌握Web程序設(shè)計中的基礎(chǔ)知識與工作原理,將知識與原理應(yīng)用于開發(fā)過程中的問題分析;2025/5/21《Web程序設(shè)計》35.1JSP簡介JSP全稱JavaServerPages,是一種動態(tài)網(wǎng)頁開發(fā)技術(shù)。它使用JSP標簽在HTML網(wǎng)頁中插入Java代碼。標簽通常以<%開頭以%>結(jié)束。JSP是一種JavaServlet,主要用于實現(xiàn)Javaweb應(yīng)用程序的用戶界面部分。網(wǎng)頁開發(fā)人員通過結(jié)合HTML代碼、XHTML代碼、XML元素以及嵌入Java代碼塊來編寫JSP。JSP通過網(wǎng)頁表單獲取用戶輸入數(shù)據(jù)、訪問數(shù)據(jù)庫及其他數(shù)據(jù)源,然后動態(tài)地創(chuàng)建網(wǎng)頁。2025/5/21《Web程序設(shè)計》4JSP簡單示例2025/5/21《Web程序設(shè)計》5<%@pagelanguage="java"contentType="text/html;charset=UTF-8"%><html><head><title>簡單JSP示例</title></head><body><h3>輸出Fibonacci數(shù)列</h3><div><%inta=0,b=1,c;for(inti=0;i<20;i++){c=a+b;println(“<b>”+c+“</b”);}%></div></body></html>2025/5/21《Web程序設(shè)計》6JSP語法JSP中的腳本程序必須包含在<%和%>之間2025/5/21《Web程序設(shè)計》7<%代碼片段%>或<%
代碼片段%>今天是:<%out.println(newjava.util.Date().toLocaleString());%><%java.util.Datetoday=newjava.util.Date();out.println(“今天是:”+today.toLocaleString());%>JSP注釋JSP中可以為代碼添加注釋,主要分為三種情況,HTML注釋、Java代碼注釋、JSP腳本程序注釋2025/5/21《Web程序設(shè)計》8注釋方式語法格式說明HTML注釋<!--注釋文本-->HTML注釋,通過瀏覽器查看網(wǎng)頁源代碼時可以看見注釋內(nèi)容Java注釋//Java單行注釋/*Java多行注釋*/Java中的單行與多行注釋,注釋內(nèi)容不會被發(fā)送至瀏覽器,也不會被編譯JSP注釋<%--JSP注釋--%>JSP注釋,注釋內(nèi)容不會被發(fā)送至瀏覽器,也不會被編譯JSP注釋示例2025/5/21《Web程序設(shè)計》9<!--以下代碼顯示了當前系統(tǒng)時間(HTML注釋)--><%--代碼釋義(JSP注釋):初始化日期對象使用Date獲取系統(tǒng)日期--%><%java.util.Datetoday=newjava.util.Date();out.println(“今天是:”+today.toLocaleString());//以當前時區(qū)格式顯示日期%>JSP表達式JSP中允許表達式的單獨輸出,可以將任何合法的Java表達式的值直接輸出。表達式元素中可以包含任何符合Java語言規(guī)范的表達式,但是不能使用分號來結(jié)束表達式。這種方式主要的用途是輸出某個變量和表達式的值。2025/5/21《Web程序設(shè)計》10<%=表達式%><%out.println(表達式);%>2025/5/21《Web程序設(shè)計》11<body><div><%java.util.Datetoday=newjava.util.Date();%>今天是:<%=today.toLocaleString())%><!--以當前時區(qū)格式顯示日期--></div></body>普通變量聲明在腳本程序中可直接聲明變量,這種方式聲明的變量能被后續(xù)的代碼直接使用。例如,以下代碼聲明了一個area變量,后面的代碼中計算并輸出了該變量的值。2025/5/21《Web程序設(shè)計》12<%floatarea;area=3.14*10*10;//計算圓的面積%>圓的面積為:<%=area%>類變量的聲明類變量的聲明通過“<%!%>”來實現(xiàn)例如,聲明了計數(shù)器變量counter,在后續(xù)的代碼中進行累加并顯示。2025/5/21《Web程序設(shè)計》13<%!DataTypevar1,var2;%><%!intcounter=0;%>計數(shù)器的值為:<%counter++;out.println(counter);%>這種方法聲明的變量是類的成員變量,普通變量聲明的是函數(shù)內(nèi)的局部變量。左例中,當頁面不斷刷新時,counter值會不斷累加。如果換成普通變量的聲明,則該counter值始終為1。方法的聲明JSP頁面中的方法聲明通過”<%!%>“來實現(xiàn)2025/5/21《Web程序設(shè)計》14<body><%!floatcalcArea(floatradius){return3.14*radius*radius;}%><div>半徑為10的圓面積為:<%out.println(calcArea(10));%></body>需要注意的是,JSP中聲明的方法只能在同一頁面中使用,不允許跨頁面使用。主要內(nèi)容2025/5/21《Web程序設(shè)計》151JSP基礎(chǔ)2指令標簽3相對路徑與絕對路徑JSP指令標簽JSP指令用來設(shè)置整個JSP頁面相關(guān)的屬性,如網(wǎng)頁的編碼方式和腳本語言。JSP指令通過專門的指令標簽定義,主要包含以下三種:page指令include指令taglib指令。2025/5/21《Web程序設(shè)計》16page指令JSP中的page指令用于向JSP容器提供與當前JSP頁面相關(guān)的指令。2025/5/21《Web程序設(shè)計》17<%@pageattribute=”value”attribute2=”value2”...%>屬性名描述buffer指定out對象使用緩沖區(qū)的大小autoFlush控制out對象的緩存區(qū)contentType指定當前JSP頁面的MIME類型和字符編碼errorPage指定當JSP頁面發(fā)生異常時需要轉(zhuǎn)向的錯誤處理頁面isErrorPage指定當前頁面是否可以作為另一個JSP頁面的錯誤處理頁面extends指定servlet從哪一個類繼承import導(dǎo)入要使用的Java類info定義JSP頁面的描述信息isThreadSafe指定對JSP頁面的訪問是否為線程安全language定義JSP頁面所用的腳本語言,默認是Javasession指定JSP頁面是否使用sessionisELIgnored指定是否執(zhí)行EL表達式isScriptingEnabled確定腳本元素能否被使用contentType和pageEncoding屬性contentType屬性設(shè)置Content-Type響應(yīng)報頭,標明即將發(fā)送到客戶程序的文檔的MIME類型。pageEncoding屬性設(shè)置頁面的編碼字符集。通常contentType中包含了字符集的聲明,如果只設(shè)置字符集,則可以通過pageEncoding聲明。MIME-Type:text/html;charset=GBKCharacter-Set:GBK2025/5/21《Web程序設(shè)計》18<%@pagecontentType="MIME-Type;charset=Character-Set"pageEncoding=”Character-Set”%>import屬性使用page指令的import屬性可以指定JSP頁面需要引入的外部包。通常JSP中Java程序除了默認引入了java.lang.*、javax.servlet.*、javax.servlet.jsp.*、javax.servlet.http.*包外,其它需要使用的包或類都需要通過import指令引入。2025/5/21《Web程序設(shè)計》19<%@pageimport="package1.class1,package2.class2,package3.*,"%><%@pageimport=“java.util.Date,nchu.ss.util.*”%>errorPage與isErrorPage屬性errorPage屬性用來指定一個JSP頁面,由該頁面來處理當前頁面中拋出但未被捕獲的任何異常(即類型為Throwable的對象)。例如,頁面中要指定/error.jsp為異常處理頁面,可以聲明如下:2025/5/21《Web程序設(shè)計》20<%@pageerrorPage="/error.jsp"%>include指令JSPinclude指令用于通知JSP引擎在翻譯當前JSP頁面時,將其他文件中的內(nèi)容合并進當前JSP頁面轉(zhuǎn)換成的Servlet源文件中,這種在源文件級別進行引入的方式,稱為靜態(tài)引入。當前JSP頁面與靜態(tài)引入的文件緊密結(jié)合為一個完整的文件。這些文件可以是JSP頁面、HTML頁面、文本文件或是一段Java代碼。2025/5/21《Web程序設(shè)計》21<%@includefile="relativeURL|absoluteURL"%>例如,有一段js文件引入的JSP文件—all_js.jsp2025/5/21《Web程序設(shè)計》22<scripttype=”text/javascript”src=”js/jquery-min.js”></script><scripttype=”text/javascript”src=”js/util.js”></script><scripttype=”text/javascript”src=”js/index.js”></script><%@pagecontentType="text/html;charset=utf-8"%><html><head><jsp:includefile=”all_js.jsp”/></head><body><!--正常業(yè)務(wù)內(nèi)容--></body></html>需要注意的是:include指令是以靜態(tài)方式包含文件,被包含文件將原封不動地插入JSP文件中。因此,在所包含的文件中不能使用<html></html>、<body></body>標記,否則會因為與原有的JSP文件有相同標記而產(chǎn)生錯誤。另外,因為原文件和被包含文件可以相互訪問彼此定義的變量和方法,所以要避免變量和方法在命名上產(chǎn)生沖突。2025/5/21《Web程序設(shè)計》23taglib指令JSPAPI允許自定義JSP標簽,如:HTML或XML標簽,標簽庫是一組實現(xiàn)自定義行為的用戶定義標簽。在自定義標簽庫中,可以把復(fù)雜的業(yè)務(wù)邏輯功能都封裝在標簽庫中,而不必在jsp中寫具體的代碼。這樣,jsp代碼與java編碼能力不必強制耦合在一起,可以提高代碼的封裝性和可維護性。2025/5/21《Web程序設(shè)計》24taglib指令的使用語法如下:2025/5/21《Web程序設(shè)計》25<%@tagliburi="uri"prefix="prefixOfTag">參數(shù)說明:uri:自定義標簽的完整URI,是由第三方標簽庫定義的,如果是開發(fā)者定義的,則由開發(fā)者給出URI,一般是唯一的;prefixOfTag:自定義標簽的前綴,可以根據(jù)需要或業(yè)務(wù)特點命名,一般不宜過長。例如,在頁面中使用JSTL標簽庫中的out標簽示例代碼如下2025/5/21《Web程序設(shè)計》26<%@pagecontentType=”text/html;charset=utf-8”%><%@taglibprefix="c"uri="
/jsp/jstl/core"%><html><head><metacharset=”utf-8”><title>使用JSTL標簽庫示例</title></head><body><%java.util.DatecurDate=newjava.util.Date();%>當前系統(tǒng)時間:<c:outvalue=”{curDate}”></c:out></body>主要內(nèi)容2025/5/21《Web程序設(shè)計》271JSP基礎(chǔ)2指令標簽3相對路徑與絕對路徑簡介Web開發(fā)過程中,各種資源的定位和訪問,都必須指明其相應(yīng)的路徑,才能準確地訪問該資料。路徑通常可分為兩類:相對路徑與絕對路徑。相對路徑,就是相對于當前文件的路徑,當前文件所在的路徑也通常稱為基準路徑,相對路徑給出的是相對于這個基準路徑的位置,與當前的位置密切相關(guān)。絕對路徑,就是資源在網(wǎng)站或存儲中的絕對路徑,也即是訪問資源時的確切位置,一般是指資源的完整路徑或相對于網(wǎng)站根目錄的路徑,與當前的位置無關(guān)。2025/5/21《Web程序設(shè)計》28在使用路徑時,通常會用到以下三種特殊路徑符號。2025/5/21《Web程序設(shè)計》29符號含義示例./當前目錄./home.jpg,訪問當前目錄下的home.jpg文件../上一級目錄../index.jsp,訪問上一級目錄下的index.jsp文件/網(wǎng)站根目錄/error.jsp,訪問網(wǎng)站根目錄下的error.jsp文件示例當前正在訪問pro_list.jsp,如果需要在pro_list.jsp中引用js目錄下的common.js文件,可以使用兩種方式來訪問:(1)相對路徑,基準路徑為pages目錄(2)絕對路徑,可以直接使用“/”從網(wǎng)站的根目錄開始訪問2025/5/21《Web程序設(shè)計》30<scripttype=”text/javascript”src=”../js/common.js”></script><scripttype=”text/javascript”src=”/myweb/js/common.js”></script>兩種路徑方式的優(yōu)缺點如下:相對路徑的優(yōu)點是,不依賴于某個具體的位置,網(wǎng)頁代碼易維護、可重用性好;缺點是必須嚴格保證當前資源路徑正確性,否則容易導(dǎo)致資源訪問出錯。絕對路徑的優(yōu)點是,使用簡單,不依賴于當前資源路徑,網(wǎng)頁代碼可閱讀性好;缺點是可重用性與可維護性不好,網(wǎng)頁路徑發(fā)生變化時需同步更新。2025/5/21《Web程序設(shè)計》31靜態(tài)資源路徑問題靜態(tài)資源路徑主要是指訪問Web項目中的靜態(tài)資源資源,例如圖片、Javascript、CSS、鏈接等資源時,對路徑的解析方式。靜態(tài)資源訪問時,通常相對路徑都是基于當前路徑,而絕對路徑則是相對于整個服務(wù)器的基礎(chǔ)地址。2025/5/21《Web程序設(shè)計》32代碼訪問方式實際訪問資源<ahref="/app2/index.html">鏈接1</a>絕對路徑點擊鏈接1將訪問app2/index.html<ahref="/app3/pages/index.html">鏈接2</a>絕對路徑點擊鏈接2將訪問app3/pages/index.html<ahref="index.html">鏈接3</a>相對路徑點擊鏈接3將訪問app1/pages/index.html<formaction="/app2/index.html"><inputtype="submit"value="按鈕1"/></form>絕對路徑點擊按鈕1將訪問app2/index.html<formaction="../../app2/index.html"><inputtype="submit"value="按鈕2"/></form>相對路徑點擊按鈕2將訪問app2/index.html2025/5/21《Web
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)技術(shù)在企業(yè)中的應(yīng)用實例分析試題及答案
- 行政組織理論的未來發(fā)展試題及答案
- 信息系統(tǒng)監(jiān)理師考試全攻略試題及答案
- 數(shù)據(jù)庫中的安全性考量試題及答案
- 計算機三級嵌入式開發(fā)實驗試題及答案
- 嵌入式技術(shù)的未來發(fā)展機會試題及答案
- 外墻裝飾工程管理制度
- 員額法官助理管理制度
- 軟件測試工程師考試的核心試題及答案
- 單位物業(yè)人員管理制度
- 2025年度安徽白帝集團限公司社會招聘高頻重點提升(共500題)附帶答案詳解
- 公益招貼設(shè)計課件
- 數(shù)字化管理師復(fù)習(xí)測試卷附答案
- 文化節(jié)慶活動審批管理制度
- 2025年軟件資格考試電子商務(wù)設(shè)計師(中級)(基礎(chǔ)知識、應(yīng)用技術(shù))合卷試卷與參考答案
- 【MOOC】大學(xué)生健康教育與自衛(wèi)防身-山東大學(xué) 中國大學(xué)慕課MOOC答案
- 北京工業(yè)大學(xué)耿丹學(xué)院《國際金融》2021-2022學(xué)年第一學(xué)期期末試卷
- 草原病蟲害防治技術(shù)研究
- 靜脈治療小組開展工作匯報
- (優(yōu)化版)高中地理新課程標準【2024年修訂版】
- 《電力市場概論》 課件 張利 第6、7章 電力市場與輸電網(wǎng)絡(luò)、發(fā)電投資分析
評論
0/150
提交評論