




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
內(nèi)容8.1JSP技術(shù)概況8.2JSP基本語法8.3JSP指令8.4JSP動(dòng)作8.5思考題8.1JSP技術(shù)概況
JSP(JavaServerPages)是由SunMicrosystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)是將小段的Java程序代碼(Scriptlet)和JSP標(biāo)簽插入HTML文件中,形成在服務(wù)器端運(yùn)行的JSP文件(通常擴(kuò)展名為.jsp)。作為基于Java的網(wǎng)站開發(fā)技術(shù),JSP應(yīng)用程序具有跨平臺(tái)等特性,因而在網(wǎng)站項(xiàng)目開發(fā)中得到廣泛應(yīng)用。JSP與JavaServlet一樣都是在服務(wù)器端執(zhí)行的,執(zhí)行的結(jié)果通常以HTML文件的形式由Web服務(wù)器返回給瀏覽器端。8.1JSP技術(shù)概況JSP在的技術(shù)優(yōu)勢(shì):(1)跨平臺(tái)性。JSP技術(shù)支持多種操作系統(tǒng)和硬件平臺(tái),可以在Windows、Linux、Unix中直接部署,代碼無需改動(dòng)。(2)可伸縮性。JSP可以運(yùn)行在很小的系統(tǒng)中來支持小規(guī)模的Web服務(wù),也可以運(yùn)行到多臺(tái)服務(wù)器中來支持集群和負(fù)載均衡機(jī)制。(3)開發(fā)工具的多樣性和開放性。目前,已經(jīng)有了許多優(yōu)秀的開發(fā)工具支持JSP的開發(fā),而且其中有很多是開源產(chǎn)品。廣泛的技術(shù)支持為JSP的發(fā)展帶來了巨大的動(dòng)力。(4)服務(wù)器端的可擴(kuò)展性。JSP支持服務(wù)器端組件,JSP可以使用成熟的JavaBean組件來實(shí)現(xiàn)復(fù)雜商務(wù)功能。DEMOJSPHello8.2JSP基本語法8.2.1程序片在“<%”和“%>”之間可以包含任何符合Java語言語法的程序片段。此標(biāo)簽中嵌入的代碼段在服務(wù)器端被執(zhí)行,真正實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁的功能。一個(gè)JSP頁面可以嵌入多個(gè)程序片,這些程序片被JSP引擎按順序執(zhí)行。下面例子中的程序片(ShowServerTime.jsp)負(fù)責(zé)顯示服務(wù)器的時(shí)間:<%Datenow=newDate();DateFormatd1=DateFormat.getDateInstance();Stringstr1=d1.format(now);out.write("用Date方式顯示時(shí)間:"+now+"<br>");out.write("用DateFormat.getDateInstance格式化時(shí)間后為:"+str1);%>8.2JSP基本語法8.2.2表達(dá)式JSP中表達(dá)式經(jīng)常被用到,在<%=和%>之間可包含任何一個(gè)有效的Java表達(dá)式。表達(dá)式在服務(wù)器端經(jīng)過計(jì)算后,將計(jì)算結(jié)果轉(zhuǎn)化成字符串插入到該表達(dá)式在JSP文件中的位置上。表達(dá)式后面不能加分號(hào)。下面的例子(expression_test.jsp)使用表達(dá)式輸出100的平方根:
100的平方根為
<%=Math.sqrt(100)%>8.2JSP基本語法8.2.3聲明
<%!
%>被稱為JSP聲明,用于聲明所生成Servlet類的成員,即變量、方法和類都可以聲明。<%!和%>標(biāo)簽之間的所有內(nèi)容都會(huì)增加到類中,而且置于_jspService()方法之外。使用該標(biāo)簽可以聲明靜態(tài)變量和方法,成為頁面級(jí)別的共享變量,可被訪問此網(wǎng)頁的所有用戶共享。(1)變量聲明……
<%!intnumber=0;%>……intnumber=0;……out.print(++number);8.2JSP基本語法(2)方法聲明……
<!--下面的代碼聲明一個(gè)方法square()--><%!doublesquare(doublex){doubleresult=Math.pow(x,2);returnresult;}%>……
在“<%!”和“%>”之間聲明的方法在整個(gè)JSP頁面內(nèi)有效,但在該方法內(nèi)定義的變量只在該方法內(nèi)有效。這些方法將在Java程序片中被調(diào)用,當(dāng)方法被調(diào)用時(shí),方法內(nèi)定義的變量被分配內(nèi)存,調(diào)用完畢即可釋放所占用的內(nèi)存。當(dāng)多個(gè)客戶同時(shí)請(qǐng)求一個(gè)JSP頁面,調(diào)用方法操作成員變量時(shí),可以在方法前增加“synchronized”實(shí)現(xiàn)同步。8.2JSP基本語法(3)類聲明在“<%!”和“%>”之間還可以聲明類,該類在JSP頁面內(nèi)有效。即JSP頁面中的Java程序片可以調(diào)用該類創(chuàng)建對(duì)象。def_class.jsp……<%!publicclassSquareRoot{doublenumber; SquareRoot(doublenumber) {this.number=number; } doublecompute() {returnMath.sqrt(number); } }%>……8.2JSP基本語法8.2.4JSP中的注釋JSP中的注釋可分為兩種:
(1)HTML注釋:在<!--和-->之間加入注釋內(nèi)容。<!--注釋內(nèi)容-->JSP引擎把HTML注釋交給客戶,客戶端通過瀏覽器查看JSP的源文件時(shí),能夠看到HTML注釋。(2)JSP注釋:在<%--和--%>之間加入注釋內(nèi)容。
<%--注釋內(nèi)容--%>JSP引擎忽略JSP注釋,即在編譯JSP頁面時(shí)忽略該注釋,客戶端無法看到相應(yīng)的注釋內(nèi)容。DEMOJSP基本語法8.3JSP指令JSP指令主要用來提供整個(gè)JSP頁面的相關(guān)信息并指定JSP頁面的相關(guān)屬性。它們是通知JSP引擎的消息,不直接生成輸出。語法格式如下:<%@指令名屬性名=“屬性值”%>常見的編譯指令有如下三個(gè):
page:該指令是針對(duì)當(dāng)前頁面的指令,用于定義頁面的全局屬性。
include:用于指定包含另一個(gè)靜態(tài)文件。
taglib:用于定義和訪問自定義標(biāo)簽。8.3JSP指令8.3.1page指令page指令通常位于JSP頁面的頂端,一個(gè)JSP頁面可以使用多條JSP指令。其語法格式如下:<%@page屬性1=“值1”屬性2=“值2”……%>Page指令的常用屬性如下表所示。8.3JSP指令屬性名稱屬性作用language=”java”設(shè)定JSP網(wǎng)頁的腳本語言。目前只可以使用Java語言contentType=”contentInfo”設(shè)定MIME類型和JSP網(wǎng)頁的編碼方式extends=”parentClass|interface”設(shè)定JSP頁面編譯所產(chǎn)生的Java類所繼承的父類,或所實(shí)現(xiàn)的接口import=”packageList”引入該網(wǎng)頁中要使用的Java包session=”true|false”設(shè)定此JSP網(wǎng)頁是否可以使用session對(duì)象,默認(rèn)值為trueerrorPage=”relativeURL”設(shè)定網(wǎng)頁運(yùn)行發(fā)生錯(cuò)誤時(shí),轉(zhuǎn)向的URLisErrorPage=”true|false”設(shè)定此JSP頁面是否為處理異常錯(cuò)誤的頁面buffer=”none|sizekb”設(shè)定輸出流是否使用緩沖區(qū),默認(rèn)值為8KBinfo=”string”設(shè)置該JSP頁面的說明信息,可以通過Servlet.getServletInfo()方法獲取該值。如果在JSP頁面中,可直接調(diào)用getServletInfo()方法獲取該值。autoFlush=”true|false”設(shè)定輸出流的緩沖區(qū)是否要自動(dòng)清除,緩沖區(qū)滿會(huì)產(chǎn)生異常,默認(rèn)值trueisELIgnored=”true|false”設(shè)定在此JSP網(wǎng)頁中是執(zhí)行還是忽略EL表達(dá)式。pageEncoding=”characterEncoding”設(shè)定生成網(wǎng)頁的編碼字符集DEMOpage指令8.3JSP指令8.3.2include指令include指令用來在JSP頁面出現(xiàn)該指令的位置處,靜態(tài)插入一個(gè)文件(如JSP文件、HTML文件、txt文件等),不能插入用<%=和%>表示的表達(dá)式代表的文件。被插入的文件必須是可訪問和可使用的,即該文件必須和當(dāng)前JSP頁面在同一Web服務(wù)目錄中。。include指令的語法格式如下:<%@includefile=”被插入文件URL”%>注意:使用inlude指令插入含有中文的靜態(tài)文件時(shí),必須確保JSP文件和被插入文件的編碼方式一致,可以采用UTF-8、gbk、gb2312等方式,JSP文件可以采用page指令的pageEncoding屬性設(shè)置編碼方式,html文件在存儲(chǔ)的時(shí)候要選擇其編碼方式。DEMOinclude指令8.3JSP指令8.3.3taglib指令在JSP中taglib指令用來聲明此JSP文件使用的自定義標(biāo)簽,同時(shí)引用標(biāo)簽庫,并指定標(biāo)簽的前綴。語法格式為:<%@tagliburi=”標(biāo)簽庫的URI”prefix=”標(biāo)簽前綴”%>taglib指令有兩個(gè)屬性值:
uri:指明標(biāo)簽庫文件的存放位置。
prefix:指明該自定義標(biāo)簽使用時(shí)的前綴。DEMOtaglib指令8.4JSP動(dòng)作
JSP動(dòng)作標(biāo)簽在JSP頁面運(yùn)行時(shí)執(zhí)行服務(wù)器端的任務(wù)(例如包含一個(gè)文件、頁面跳轉(zhuǎn)、傳遞參數(shù)等),不需要我們編寫Java代碼。而上一節(jié)提到的JSP指令標(biāo)簽則在將JSP編譯成Servlet時(shí)起作用。我們可以形象地將JSP動(dòng)作標(biāo)簽看成動(dòng)態(tài)的,JSP指令標(biāo)簽看成靜態(tài)的。
常用的JSP動(dòng)作標(biāo)簽有:include:包含一個(gè)靜態(tài)的或動(dòng)態(tài)的文件forward:執(zhí)行頁面跳轉(zhuǎn),將請(qǐng)求的處理轉(zhuǎn)發(fā)到下一個(gè)頁面param:為其他標(biāo)簽提供附加信息,如傳遞參數(shù)plugin:在客戶端瀏覽器中執(zhí)行一個(gè)Applet或JavaBeanusebean、setProperty、getProperty8.4JSP動(dòng)作8.4.1include動(dòng)作include動(dòng)作標(biāo)簽用來在JSP頁面中動(dòng)態(tài)包含一個(gè)文件。所謂動(dòng)態(tài)即包含頁面程序與被包含頁面的程序是彼此獨(dú)立的,互不影響,僅僅在JSP引擎運(yùn)行包含頁面時(shí)執(zhí)行到<jsp:include>標(biāo)簽,JSP引擎會(huì)插入被包含頁面的body內(nèi)容。include動(dòng)作標(biāo)簽的語法格式如下:<jsp:includepage=”{靜態(tài)URL|<%=表達(dá)式%>”flush=”true|false”}/>或者<jsp:includepage=”{靜態(tài)URL|<%=表達(dá)式%>”flush=”true|false”}><jsp:paramname=”參數(shù)名”value=”{參數(shù)值|<%=表達(dá)式%>}”/></jsp:include>8.4JSP動(dòng)作靜態(tài)包含和動(dòng)態(tài)包含的區(qū)別如下:(1)靜態(tài)包含是將被包含頁面的代碼完全導(dǎo)入,兩個(gè)頁面融合成一個(gè)整體Servlet,而動(dòng)態(tài)包含則在Servlet中使用include方法來引入被包含頁面的內(nèi)容。(2)靜態(tài)包含時(shí)被包含頁面的編譯指令會(huì)起作用;而動(dòng)態(tài)包含是被包含頁面的編譯指令則失去作用,只是插入頁面的body內(nèi)容。(3)動(dòng)態(tài)包含還可以向被包含頁面?zhèn)鬟f參數(shù)。DEMOinclude動(dòng)作8.4JSP動(dòng)作8.4.2forward動(dòng)作
forward動(dòng)作可以把請(qǐng)求轉(zhuǎn)發(fā)到同一Web應(yīng)用中的其他頁面,既可以是靜態(tài)的HTML頁面,也可以是JSP頁面,或一個(gè)Servlet。但用戶瀏覽器中的URL地址不會(huì)發(fā)生變化,還是轉(zhuǎn)發(fā)之前的頁面地址。該動(dòng)作標(biāo)簽的語法格式如下:<jsp:forwardpage=”{靜態(tài)URL|<%=表達(dá)式%>}”/>或者<jsp
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 產(chǎn)科急救培訓(xùn)課件
- 木材加工企業(yè)的信息化建設(shè)與管理考核試卷
- 化工產(chǎn)品批發(fā)商銷售團(tuán)隊(duì)激勵(lì)與培訓(xùn)實(shí)踐考核試卷
- 冷凍飲品行業(yè)企業(yè)發(fā)展戰(zhàn)略與實(shí)施路徑考核試卷
- 半導(dǎo)體照明器件的振動(dòng)測(cè)試考核試卷
- 家具品牌形象塑造考核試卷
- 機(jī)床附件的行業(yè)競(jìng)爭(zhēng)格局與市場(chǎng)定位考核試卷
- 國(guó)際貿(mào)易中的社會(huì)責(zé)任與合規(guī)性考核試卷
- 成人高考物理電磁學(xué)綜合應(yīng)用考核試卷
- 小學(xué)生師生互動(dòng)課件
- 魚骨圖培訓(xùn)課件
- 護(hù)理禮儀與人文關(guān)懷
- 運(yùn)維服務(wù)體系建立實(shí)施方案(5篇)
- 路面基層(級(jí)配碎石)施工方案
- 2025年日歷(日程安排-可直接打印)
- 四川政采評(píng)審專家入庫考試基礎(chǔ)題復(fù)習(xí)試題及答案(一)
- 患者手術(shù)風(fēng)險(xiǎn)評(píng)估與術(shù)前準(zhǔn)備制度
- 口腔執(zhí)業(yè)醫(yī)師定期考核試題(資料)帶答案
- 2024年三八婦女節(jié)婦女權(quán)益保障法律知識(shí)競(jìng)賽題庫及答案(共260題)
- 2023年7月浙江省普通高中學(xué)業(yè)水平考試(學(xué)考)語文試題答案
- 2024年計(jì)算機(jī)軟件水平考試-初級(jí)信息處理技術(shù)員考試近5年真題集錦(頻考類試題)帶答案
評(píng)論
0/150
提交評(píng)論