版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Web系統(tǒng)與開發(fā)技術(shù)1第4章JSP基本語(yǔ)法4.1JSP基本規(guī)范4.2JSP工作原理4.3JSP腳本元素4.4注釋4.5指令元素4.6行為元素24.1JSP基本規(guī)范3JSP頁(yè)面的構(gòu)成JSP原始代碼中包含了模版元素(HTML+Javascript+CSS等)和JSP元素構(gòu)成模版元素指的是JSP引擎不處理的部分。JSP元素則指的是由JSP引擎直接處理的部分,這一部分必須符合JSP語(yǔ)法,否則會(huì)導(dǎo)致編譯錯(cuò)誤。腳本元素:聲明、表達(dá)式、腳本段注釋:HTML注釋;JSP隱藏注釋;java注釋。指令元素:page、include、taglib、tag等等動(dòng)作元素:jsp:include、jsp:forward…jsp:dobody4JSP命名規(guī)范擴(kuò)展名為.jsp,文件名必須為合法標(biāo)識(shí)符,大小寫敏感。54.2JSP工作原理67見教材P57。84.3腳本元素9腳本元素腳本元素,用Java寫的腳本代碼,以<%開始,以%>結(jié)束,可以分為如下三類:腳本段聲明表達(dá)式EL10腳本段腳本段:以<%開始,以%>結(jié)束,中間包括一段合法的java代碼(多個(gè)語(yǔ)句、方法、變量、表達(dá)式)。格式:<%Java代碼%>腳本段能夠完成的功能:聲明將要用到的變量顯示輸出信息使用任何隱含對(duì)象和使用<jsp:useBean>聲明過(guò)的對(duì)象。當(dāng)JSP頁(yè)面受到客戶端請(qǐng)求是,腳本段就會(huì)自動(dòng)執(zhí)行。實(shí)例:element/scriplet.jsp11聲明聲明,用來(lái)定義程序中使用的實(shí)體,可以聲明變量、方法和類,以<%!開始,以%>結(jié)束。格式為<%!declaration;[declaration]%>例如:聲明變量<%!int
i,a,b=0;%>注意:每個(gè)聲明僅在一個(gè)JSP頁(yè)面中有效。實(shí)例:element/declaration.jsp12表達(dá)式表達(dá)式:以<%=開始,以%>結(jié)束,中間為一個(gè)合法的Java表達(dá)式,用來(lái)將中間表達(dá)式的內(nèi)容輸出到頁(yè)面。格式:<%=expression%>表達(dá)是的執(zhí)行結(jié)果會(huì)被自動(dòng)轉(zhuǎn)換為字符串,顯示在JSP頁(yè)面中;由于表達(dá)是不是完整的java語(yǔ)句,所以在表達(dá)式的后面不能放置“;”。例如:輸出計(jì)算結(jié)果<%=1+2+3%><%=getDate()%>實(shí)例:element/expression.jsp13ELEL,表達(dá)式語(yǔ)言。JSP2.0中引入的新腳本元素,詳見第11章。基本語(yǔ)法:${expr}可以在JSP頁(yè)面中使用page指令的isELIgnored屬性禁止或允許EL的使用。14復(fù)習(xí)<%!%>表達(dá)式<%%>JSP注釋<%=%>HTML注釋<%----%>聲明<!---->java腳本154.4注釋16注釋提高程序的可閱讀型;位置要適當(dāng)、便于理解。Html注釋:會(huì)輸出到客戶端瀏覽器,但不進(jìn)行顯示;它分為:靜態(tài)注釋,注釋內(nèi)容不會(huì)發(fā)生變化,格式為:<!--注釋內(nèi)容-->動(dòng)態(tài)注釋,雖JSP頁(yè)面運(yùn)行環(huán)境的不同而動(dòng)態(tài)生成客戶端的html注釋,其格式為:<!--[<%=expressiong%>]-->。JSP注釋:用于描述JSP程序代碼,不會(huì)被JSP引擎解釋,也不會(huì)輸出到客戶端。格式為:<%--comment--%>Java注釋由于jsp是在html中嵌入java代碼,因此java本身的注釋機(jī)制在JSP中照樣可以使用,不會(huì)受到任何影響。17實(shí)例comment/comment1.jspcomment/comment2.jspcomment/comment3.jspcomment/comment.jsp184.5指令元素19指令元素指令(Directive):該元素的作用是在將JSP源文件解析成Java文件時(shí)指示JSP引擎做出相應(yīng)的操作,從而達(dá)到預(yù)期的目的。JSP指令在整個(gè)頁(yè)面范圍內(nèi)有效,且不在客戶端產(chǎn)生任何輸出?;靖袷綖?lt;%@directiveattribute1=“”...attribute2=“”%>常見的指令有:JSP1.2:page、include、taglibJSP2.0:tag,variable,attribute+jsp1.2指令20Page指令Page指令:用來(lái)設(shè)定JSP頁(yè)面的全局屬性和相關(guān)功能。作用于整個(gè)JSP文件,可以放到JSP頁(yè)面的任何位置,但為了便于閱讀和格式規(guī)范,通常放到JSP頁(yè)面開始的位置。一個(gè)JSP文件可以包含多個(gè)page指令,指令之間時(shí)獨(dú)立的,并且出import屬性以外,每個(gè)屬性只能定義一次,否則在JSP頁(yè)面編譯的過(guò)程中將會(huì)出現(xiàn)錯(cuò)誤。21page指令語(yǔ)法格式:紅色為必須掌握的內(nèi)容,粉紅色為2.0中的新屬性<%@page[language=“java”][info=“text”]
[import=“{package.class|package.*},…”][session=“true|false”]
[contentType=“mimeType[;charset=characterSet]”|”text/html;charset=8859-1”][pageEncoding=“GBK|8859-1|……”][errorPage=“relativeURL”][isErrorPage=“true|false”][buffer=“none|8kb|sizekb”][autoFlush=“true|false”]
[isELIgnored=“true|false”]%>22page指令1-1-1language屬性定義在轉(zhuǎn)換單元中聲明、腳本片段和表達(dá)式中所使用的語(yǔ)言默認(rèn)值是java,目前JSP中只能使用java可以不寫,如果寫必須寫在聲明、腳本片段和表達(dá)式的前面例如:<%@pagelanguage=“java”%>23page指令1-1-2info屬性通常用于定義JSP頁(yè)面的描述信息。屬性值是任意的一個(gè)字符串,該字符串與頁(yè)面一起編譯。屬性值使用getServletInfo()方法得到。例:<%@pageinfo=“wearestudents”%>24page指令1-1-3import屬性用于導(dǎo)入JSP文件中要使用到的java包或者類的列表。是唯一一個(gè)可以重復(fù)使用的屬性。JSP中默認(rèn)的導(dǎo)入列表是:java.lang.*;javax.servlet.*;javax.servlet.jsp.*;javax.servlet.http.*例如:<%@pageimport=“java.io.*,java.util.*”%>實(shí)例:direct/page_import.jsp25page指令1-1-4session屬性屬性值為“true”,在頁(yè)面中可以使用內(nèi)部對(duì)象session,屬性值為“false”,在頁(yè)面中不允許使用session,session的默認(rèn)值為“true”。261-1-5contentType屬性用于設(shè)置返回瀏覽器網(wǎng)頁(yè)的內(nèi)容類型和字符編碼格式。內(nèi)容類型包括:text/plain,text/html(默認(rèn)),application/x-msexecl,application/msword等。字符編碼格式默認(rèn)為西歐字符編碼ISO-8859-1。如果需要在返回瀏覽器的HTML頁(yè)面中顯示中文,我們經(jīng)常會(huì)用到字符集GBK。實(shí)例:direct/page_contentType.jsppage指令27page指令1-1-6pageEncoding屬性指定JSP頁(yè)面的字符編碼,默認(rèn)為ISO-8859-1例如:
<%@pagepageEncoding=“GBK”%>實(shí)例:direct/page_pageEncoding.jsp281-1-7erroPage屬性指定當(dāng)前頁(yè)面產(chǎn)生異常時(shí)的處理文件。當(dāng)前頁(yè)面發(fā)生錯(cuò)誤時(shí)候,由該目標(biāo)文件進(jìn)行異常處理,JSP容器會(huì)將處理結(jié)果發(fā)送到瀏覽器顯示。例如,指定當(dāng)前頁(yè)面出錯(cuò)時(shí),調(diào)用dealError.jsp頁(yè)面處理錯(cuò)誤的格式如下:
<%@pageerrorPage=“dealError.jsp”%>page指令29page指令1-1-8isErrorPage屬性isErrorPage屬性說(shuō)明當(dāng)前頁(yè)面是否為異常處理頁(yè)面。如果值為“true”,說(shuō)明是異常處理頁(yè)面,能夠使用exception對(duì)象。如果isErrorPage屬性的值為“false”,說(shuō)明不是異常處理頁(yè)面。isErrorPage的默認(rèn)值是false。實(shí)例:direct/page_error.jspdirect/dealError.jsp301-1-9buffer屬性指定處理頁(yè)面輸出內(nèi)容時(shí)的緩沖區(qū)大小。默認(rèn)值是8kb。如果buffer的取值為“none”,輸出將不使用緩沖,所有輸出都直接寫到客戶端。置緩沖區(qū)的大小只能是kb的整數(shù)倍,頁(yè)面的輸出首先被寫入指定大小的緩沖區(qū)內(nèi)。當(dāng)緩沖區(qū)變滿時(shí)如何處理取決于autoFlush屬性的值buffer指定的值只是緩沖區(qū)的最小值,JSP容器選擇的緩沖區(qū)可能比指定的大。例如:<%@pagebuffer=“16kb”%>page指令311-1-10autoFlush屬性autoFlush屬性控制的是當(dāng)頁(yè)面輸出進(jìn)入緩沖區(qū)并且緩沖區(qū)變滿的情況。如果autoFlush屬性取值“true”,那么緩沖區(qū)變滿之后需要強(qiáng)制輸出。如果autoFlush屬性取值“false”,那么緩沖區(qū)變滿之后將引發(fā)一個(gè)異常。autoFlush屬性的默認(rèn)值是“true”。page指令321-1-11isELIgnored屬性JSP2.0中引入了表達(dá)式語(yǔ)言(ExpressionLanguage,EL),利用EL可以在不使用腳本的情況下構(gòu)造動(dòng)態(tài)網(wǎng)頁(yè)。isELIgnored屬性值為”true”時(shí),會(huì)禁止EL表達(dá)式的計(jì)算。page指令33include指令include:用來(lái)指定JSP被編譯時(shí)所需要插入的資源,可以是文本、代碼、HMTL文件或JSP文件。格式:<%@includefile=“要引入資源的地址”>一旦JSP文件完成編譯,資源內(nèi)容就不可改變,如果發(fā)生變化,JSP引擎就會(huì)對(duì)JSP文件重新進(jìn)行編譯,不同的服務(wù)器會(huì)產(chǎn)生不同的效果。利用include指令可以將一個(gè)服務(wù)的JSP文件拆分成不同的部分,如head.jsp、body.jsp、tail.jsp,然后在同一網(wǎng)站的不同JSP頁(yè)面中用include指令包含head.jsp和tail.jsp,方便對(duì)JSP頁(yè)面進(jìn)行管理。34head.htm<%@pagecontentType="text/html;charset=gb2312"%><ahref="chinaboy.jsp">華人男歌手</a><ahref="chinagirl.jsp">華人女歌手</a>copyright.htm<%@pagecontentType=“text/html;charset=gb2312”%>Copyright@2009-2010NETWORK.東軟工作室home.jsp<%@pagepageEncoding="gb2312"%><%@includefile="head.htm"%><br>正文內(nèi)容<br><%@includefile="copyright.htm"%>35taglib指令taglib指令:用來(lái)引入JSP頁(yè)面中需要使用的標(biāo)記庫(kù)的定義,以便在頁(yè)面中使用標(biāo)記庫(kù)中定義的標(biāo)記。taglib格式:<%@taglib
uri=“uri”|tagdir=“url”prefix=“tagprefix”%>uri,說(shuō)明描述文件和標(biāo)記庫(kù)的路徑,uri可以為URL、絕對(duì)或相對(duì)路徑、標(biāo)記庫(kù)描述文件;tagdir是2.0版本中新引入的屬性,用來(lái)指明標(biāo)記文件(擴(kuò)展名為tag)的位置。prefix,定義了JSP頁(yè)面中要引用該標(biāo)簽是的前綴,用來(lái)區(qū)分多個(gè)自定義標(biāo)簽,注意,牽住不可以是jsp、jspx、java、javax、sun、servlet、sunw該標(biāo)記我們會(huì)在介紹JSTL標(biāo)記庫(kù)時(shí)詳細(xì)介紹。364.6動(dòng)作元素37動(dòng)作元素動(dòng)作元素:主要在請(qǐng)求處理階段起作用,能夠影響輸出流和對(duì)象的創(chuàng)建、使用修改等,它按照XML語(yǔ)法進(jìn)行書寫。動(dòng)作元素分為兩類,一類是標(biāo)準(zhǔn)的動(dòng)作元素一類是用戶或第三方提供的定制動(dòng)作格式:<prefix:tagName[attribute1=value1]…[attributen=valuen]/>
或<prefix:tagName[attribute1=value1]…[attributen=valuen]>
tagbody</prefix:tagName>38動(dòng)作元素標(biāo)準(zhǔn)動(dòng)作元素,由SUN公司定義的、與JSP相應(yīng)版本同步發(fā)行的動(dòng)作,以jsp作為前綴。下面是JSP2.0提供的20種標(biāo)準(zhǔn)動(dòng)作,其中紅色為必須掌握內(nèi)容。藍(lán)色為2。0種新引入的動(dòng)作。<jsp:useBean><jsp:setProperty><jsp:getProperty><jsp:fallback><jsp:param><jsp:include><jsp:forward><jsp:plugin><jsp:params><jsp:root><jsp:text><jsp:element><jsp:output><jsp:declaration><jsp:scriptlet><jsp:expresson><jsp:attribute><jsp:body><jsp:doBody><jsp:invoke>39動(dòng)作元素這些動(dòng)作元素可以分為5類:第一類有3個(gè)action元素,都是用來(lái)存取javaBean。第二類有6個(gè)action元素,是jsp1.2原有的action。第三類有6個(gè)action元素,主要用在JSPdocument中第四類有3個(gè)action元素,主要用來(lái)動(dòng)態(tài)產(chǎn)生XML元素標(biāo)簽的值第5類有2個(gè)action元素,主要用在Tag文件中。40jsp:param<jsp:param>傳遞一個(gè)或多個(gè)參數(shù)到指定的動(dòng)態(tài)文件,需要和<jsp:include>、<jsp:forward>、<jsp:plugin>一起使用,能在一個(gè)頁(yè)面中使用多個(gè)<jsp:param>來(lái)傳遞多個(gè)參數(shù)。格式:<jsp:paramname=“pName”value=“pValue”>例如:<jsp:paramname=“user”value=“jason”/><jsp:paramname=“pwd”value=“123”/>當(dāng)在用<jsp:include>或<jsp:forward>時(shí),被包含的頁(yè)面或轉(zhuǎn)向后的頁(yè)面會(huì)首先看看request對(duì)象中除了原本的參數(shù)值以外,有沒有再增加新的參數(shù)值,如果有新增加的參數(shù)值時(shí),則新的參數(shù)值在執(zhí)行時(shí),有較高的優(yōu)先權(quán)。41<jsp:include><jsp:include>操作允許在JSP頁(yè)面中包含靜態(tài)和動(dòng)態(tài)頁(yè)面,靜態(tài)頁(yè)面直接將內(nèi)容加入到包含JSP頁(yè)面中,動(dòng)態(tài)頁(yè)面先由服務(wù)器進(jìn)行執(zhí)行,然后將執(zhí)行后的結(jié)果合并到包含頁(yè)面中。格式:<jsp:includepage=“relativeURL|<%=expressiong%>”flush=“true|false”/>其中,page表示所包含文件的相對(duì)URL,可以是一個(gè)字符串也可以是JSP表達(dá)式;flush的值為true時(shí),表示當(dāng)緩沖區(qū)滿時(shí)將被清空,默認(rèn)為false。還可以使用<jsp:include>動(dòng)作給被包含文件傳遞參數(shù),其格式為:<jsp:includepage=“relativeURL|<%=expressiong%>”flush=“true|false”><jsp:paramname=“pName”value=“pValue”>…</jsp:include>42比較動(dòng)作和指令兩種包含方式實(shí)例:action/include/include01.jsp
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 1997年注冊(cè)會(huì)計(jì)師考試試題及答案
- 2025年幼兒園墻面壁紙采購(gòu)合同范本2篇
- 2025年度體育賽事贊助合作合同樣本3篇
- 2024茶葉電商平臺(tái)銷售協(xié)議范本版B版
- 2024毛石擋墻光伏支架安裝施工合同模板下載3篇
- 2024首付分期付款合同協(xié)議書范本
- 2025年度便利店品牌獨(dú)家承包合作協(xié)議書3篇
- 2025年城市綠地系統(tǒng)規(guī)劃與測(cè)繪合同范本3篇
- 2025年度建筑原材料采購(gòu)合同與訂單履行約定3篇
- 2024鎳礦行業(yè)風(fēng)險(xiǎn)評(píng)估與內(nèi)部控制合同3篇
- 土地勘測(cè)定界技術(shù)方案
- DB37-T 5026-2022《居住建筑節(jié)能設(shè)計(jì)標(biāo)準(zhǔn)》
- ISO27001信息安全管理體系文件+表單
- 《三角形的分類》-完整版課件
- 初級(jí)咖啡師資格考核試題與答案
- 金華-經(jīng)濟(jì)技術(shù)開發(fā)區(qū)-山嘴頭 未來(lái)社區(qū)實(shí)施方案
- 國(guó)家義務(wù)教育質(zhì)量監(jiān)測(cè)結(jié)果應(yīng)用教學(xué)研討
- 護(hù)士聘用證明表下載
- 燃料油需求專題(二):航線與運(yùn)費(fèi)
- 2019年同等學(xué)力(教育學(xué))真題精選
- 【框架完整】快樂卡通風(fēng)十歲成長(zhǎng)禮紀(jì)念相冊(cè)PPT模板(PPT 24頁(yè))
評(píng)論
0/150
提交評(píng)論