JSP語法簡明入門教程大全_第1頁
JSP語法簡明入門教程大全_第2頁
JSP語法簡明入門教程大全_第3頁
JSP語法簡明入門教程大全_第4頁
JSP語法簡明入門教程大全_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

file:///E|/file:///E|/網(wǎng)站教程/網(wǎng)站編程/JSP入門教程.htm(第PAGE3/16頁)2007-9-1013:41:21HYPERLINK/bbs/index.php1HYPERLINK/bbs/thread.php?fid=12&page=3nHYPERLINK/bbs/index.php1HYPERLINK/bbs/thread.php?fid=12&page=3ndHYPERLINK/bbs/post.php?fid=12a.etw.1nda.nHYPERLINK/bbs/index.php HYPERLINK/index.htm首頁|HYPERLINK/siuke.htm秀客|HYPERLINK/bbs/index.php秀客論壇|HYPERLINK/zt.htm轉(zhuǎn)帖工具|秀客收藏夾?windecember:HYPERLINK/bbs/login.php?action=quit退出|HYPERLINK/bbs/profile.php控制面板|HYPERLINK/bbs/message.php短消息|HYPERLINK/bbs/search.php搜索|HYPERLINK/bbs/member.php會員|HYPERLINK/bbs/sort.php統(tǒng)計與排行|HYPERLINK/bbs/hack.php?H_name=bank銀行|HYPERLINK/bbs/faq.php幫助|HYPERLINK/bbs/index.php社區(qū)HYPERLINK/bbs/index.php秀客論壇->HYPERLINK/bbs/thread.php?fid=12&page=3網(wǎng)絡(luò)編程->JSP入門教程標(biāo)題:JSP入門教程 HYPERLINK/bbs/job.php?rd_previous=1&fid=12&tid=3678&fpage=3&goto=previous上一主題|HYPERLINK/bbs/job.php?rd_previous=1&fid=12&tid=3678&fpage=3&goto=next下一主題siuke管理員精華60發(fā)帖3459秀值2511秀幣1587狀態(tài)離線貢獻(xiàn)值4點(diǎn)在線時間(小時)519注冊時間2005-07-17最后登陸20JSP入門教程JavaServerPages(JSP)是基于Java的技術(shù),用于創(chuàng)建可支持跨平臺及跨Web服務(wù)器的動態(tài)網(wǎng)頁。JSP可與微軟的ActiveServerPages(ASP)相媲美,但JSP使用的是類似于HTML的標(biāo)記和Java代碼片段而不是用VBScript。當(dāng)你使用不提供ASP本地支持的Web服務(wù)器(例如Apache或Netscape服務(wù)器)時,你就可以考慮使用JSP了。你雖然也可以為這些服務(wù)器弄一個ASP附加軟件模塊,但是太昂貴了?,F(xiàn)在Sun公司并不會因你使用JSP向你收費(fèi)(雖然將來可能要收),況且用于Solaris、Linux以及Windows系統(tǒng)的組件都很容易獲得。不要把JSP與服務(wù)器端的JavaScript語言搞混了。Web服務(wù)器自動將通過JSP生成的Java代碼片段轉(zhuǎn)換成Java片段(servlets)。JSP也可自動控制許多功能,如過去用Perl腳本編寫功能程序或像ASP這樣的服務(wù)器專用API(應(yīng)用編程接口)。我們馬上就要開始幫助你建立一個使用JSP技術(shù)的網(wǎng)站范例了。準(zhǔn)備好計算機(jī)以使用JSP你需要Java2軟件開發(fā)工具箱(J2SDK),過去稱之為Java開發(fā)工具箱(JDK)、JavaServer網(wǎng)絡(luò)開發(fā)工具箱(JSWDK)、Tomcat,或者其它能支持JSP的Web服務(wù)器。升陽公司為Windows、Solaris以及Linux平臺提供免費(fèi)的J2SDK和JSWDK。如果你想在現(xiàn)有的Web服務(wù)器上使用JSP,而此服務(wù)器本身不支持JSP和Java代碼片段,可以試用Allaire公司的Jrun。它可以為Netscape的EnterpriseServer和FasttrackServer、微軟的InternetInformationServer(IIS)和PersonalWebServer(PWS)、Apache以及其他服務(wù)器充當(dāng)Web服務(wù)器附件。你也可以使用Apache服務(wù)器的Java版,其中包含最新的JSWDK。下載并安裝所需的軟件HYPERLINKhttp://www.51chwww.51ch目前,版本號為1.2.2-001的J2SDK可下載版以可安裝的歸檔文件形式出現(xiàn)。這個大約20MB的下載量軟件可提供一個徹底的Java開發(fā)環(huán)境,讓你創(chuàng)造任何基于Java并且利用了而標(biāo)準(zhǔn)核心API的解決方案。其實(shí),你的Web服務(wù)器使用JSP的唯一條件是要有Java編輯器。要讓W(xué)eb服務(wù)器知道編輯器的位置,需要JAVA_HOME環(huán)境變量設(shè)置為J2SDK安裝目錄。如果你已經(jīng)在Windows系統(tǒng)中進(jìn)行了安裝并且接受了默認(rèn)目錄,請將“setJAVA_HOME=C:1.2.2”添加到你的“autoexec.bat”文件中,然后重新啟動。安裝J2SDK后,下載并安裝JSWDK或者是Tomcatβ版,即基于Java的ApacheWeb服務(wù)器的β版。你把JSWDK放在什么地方是無關(guān)緊要的,只要你以后能找到它就行。通常,將其放在頂層目nae替wJJdn.hin工作已經(jīng)就11nda.etw.1nda.n緒,你可以開始JSP開發(fā)工作了。HYPERLINK 正確地安裝JSWDK后,請運(yùn)行“startserver”腳本程序,以啟動Web服務(wù)器,使其按照默認(rèn)情況監(jiān)聽8080端口。你要在啟動服務(wù)器之后查看您是否已正確地安裝了此工具,請加載一個JSP樣本文件(../locahost:8080/examples/jsp/)。如果你能成功地運(yùn)行這些樣本文件,說明你已經(jīng)正確地安裝了這個軟件。如果你在用來啟動服務(wù)器的控制臺窗口中看到報錯信息,你就需要做些修改。最經(jīng)常發(fā)生的問題是沒有設(shè)置或不正確地設(shè)置了JAVA_HOME環(huán)境變量。要看到當(dāng)前環(huán)境變量設(shè)置情況,要請在DOS提示符下鍵入“set”設(shè)置。開始在解釋JSP語法前,創(chuàng)建一個快捷網(wǎng)頁,顯示目當(dāng)前的日期和時間,并然后將之其保存為sample.jsp:<html><head><title>FirstPage</title></head><body><H3>Todayis:<%=newjava.util.Date()%></H3></body></html>.把這個文件以及你所有的HTML和JSP頁面放在JSWDK安裝目錄下的網(wǎng)頁目錄里。你可以從../localhost:8080/sample.jsp加載此網(wǎng)頁。該網(wǎng)頁首次被訪問時,Web服務(wù)器會把JSP編譯成Java代碼片段,這樣你就能夠看到當(dāng)前的日期和時間了。你已經(jīng)下載、安裝并配置好了開發(fā)環(huán)境,你可以開始學(xué)習(xí)JSP語法并創(chuàng)建自己的基于JSP的解決方案了。JSP基本語法講完安裝問題后,現(xiàn)在進(jìn)入來討論JSP語法。一個投機(jī)取巧的辦法是下載語法卡片。如果你不熟悉Java編程,也許你想看一下Sun的指南。然而網(wǎng)頁創(chuàng)建者并不需要進(jìn)行太多的Java開發(fā)。除了一些方法調(diào)用,在你的JSP網(wǎng)頁里應(yīng)盡可能少用Java代碼。記住以上提示,我們首先來看一看JSP指令和腳本元素,之后我們會解釋JavaBeans和隱含對象。共有五種JSP指令和腳本元素。在JSP1.0版中,大部分JSP被一個以“<%”開頭和以“%>”結(jié)尾的的標(biāo)記括在其中。在更新的JSP1.1規(guī)范出臺后,就有了與XML兼容的版本。JSP指令和腳本元素Directives<%@directive%>Declarations<%!declaration%>Expressions<%=expression%>CodeFragment/Scriptlet<%codefragment%>Comments<%--comment--%>指令JSP指令是為JSP引擎而設(shè)計的。他們并不直接產(chǎn)生任何可見輸出,而只是告訴引擎如何處理其余JSP頁面。這些指令始終被括在“<%@?%>”標(biāo)記中。兩個最重要的指令是“pagePage”和“Include”?!癟aglib”指令不在討論之列,但是在用JSP1.1創(chuàng)建自定義標(biāo)記可以使用它。幾乎在所有JSP頁面頂部都會看到“Page”指令。盡管不是必須的,但它可以讓你指定:到何處查找起支持作用的Java類別:gg.HYPERLINKhttp://www.51chowww.51chior=jati.t",HYPERLINKhttp://www.51cho出ng現(xiàn)dJiavaan運(yùn).行n問et題時www.51chnae題時,將網(wǎng)上沖浪者引向何處:<%@pageerrorPage="errorPage.jsp"%>,

11nda.etw.1nda.n還有你是否需要管理用戶的會話級信息,這些信息可能來自多個網(wǎng)頁(在下面的JavaBeans一節(jié)將對此做進(jìn)一步講)述:<%@pagesession="true"%>.“Include”指令可以把你的內(nèi)容分成更多可管理的元素,比如包括一個普通頁面頁眉或頁腳的元素。包含的網(wǎng)頁可以是一個固定的HTML頁面或更多的JSP內(nèi)容:<%@includefile="filename.jsp"%>聲明JSP聲明用來讓你定義頁面級變量,以保存信息或定義JSP頁面的其余部分可能需要的支持方法。如果你發(fā)現(xiàn)代碼太多,通常最好把它們寫成一個獨(dú)立的Java類別。聲明一般都在“<%!?%>”標(biāo)記中。一定要以分號(;)結(jié)束變量聲明,因為任何內(nèi)容都必須是有效的Java語句:<%!inti=0;%>。表達(dá)式有了JSP表達(dá)式,表達(dá)式評估結(jié)果會被轉(zhuǎn)換成一個字符串,并且被直接包括在輸出頁面之內(nèi)。JSP表達(dá)式包含在“<%=?%>”標(biāo)記中,沒有分號,除非在加引號的字符串部分使用分號。<%=i%><%="Hello"%>.代碼片段/腳本片段代碼片段/腳本片段(Scriptlets)JSP代碼片段或腳本片段是嵌在“<%?%>”標(biāo)記中的。這種Java代碼在Web服務(wù)器響應(yīng)請求時就會運(yùn)行。在腳本片段周圍可能是原始的HTML或XML語句,在這些地方,代碼片段可以使你創(chuàng)建條件執(zhí)行代碼,或要用到另外一段代碼的代碼。例如,以下的代碼組合使用表達(dá)式和代碼片段,顯示H1、H2、H3和H4標(biāo)記中的字符串“Hello”。代碼片段并不局限于一行源代碼:<%for(inti=1;i<=4;i++){%><H<%=i%>>Hello</H<%=i%>><%}%>.注釋最后一個主要的JSP元素是嵌入式注釋。盡管你始終可以在文件中加入HTML注釋,但用戶在查看頁面源代碼時會看到這些注釋。如果你不想讓用戶看到它,你就應(yīng)該將其嵌入“<%--?--%>”標(biāo)記中:<%--commentforserversideonly--%>.帶JavaBean的JSP雖然你可以把大段的代碼放在腳本片段(scriptlet)內(nèi),但是絕大多數(shù)的Java代碼屬于可重復(fù)使用的名為JavaBea的組件。JavaBean類似于ActiveX控件:他們都能提供常用功能并且可以重復(fù)使用。JavaBean的值是通過一些屬性獲得的,你可通過這些屬性訪問JavaBean設(shè)置。以一個人來打比方,這個人就是一個JavaBean,這個人的名字、身份證號碼以及住址就是其屬性。在JSP網(wǎng)站,你基本上就是通過玩“Connectthebeans)”來使你的網(wǎng)站動態(tài)化。假設(shè)JavaBean先于網(wǎng)站被創(chuàng)建出來,你需要做的第一件事就是告訴JSP頁面它將要用到一HYPERLINKhttp://www.51cho個ngwww.51chn“ae以w“j:11nda.etw.1nda.n<jsp:useBeanid="localName"class="com.jguru.Person"scope="application"/>。HYPERLINK “<jsp:useBean>”標(biāo)記要求你用“id”屬性來識鑒別Bean。這里你提供一個名字來JSP頁面其余部分的Bean。除了“id”屬性,你還須告訴網(wǎng)頁面從何處查找Bean,或者它的Java類別名是什么。這種類別屬性提供確認(rèn)Bean的功能,其他一些方法也可以做到這一點(diǎn)。最后一個必需的元素是“scope”屬性。有了“scope”屬性的幫助,你就能告訴Bean為單一頁面(默認(rèn)情況)[scope="page"]、為[scope="request"]請求為會話[scope="session"],或者為整個應(yīng)用程序[scope="application"]保持留信息。有了會話范圍,你就能非常容易地在JSP網(wǎng)頁面上維護(hù)購物車等項目。一旦你聲名了一個JavaBean,你就可以訪問它的屬性來定制它。要獲得屬性值,請用“<jsp:getProperty>”標(biāo)記。有了這個標(biāo)記,你就能指定將要用到的Bean名稱(從useBean的"id"字段得到)以及你想得到其值的屬性。實(shí)際的值被放在輸出中:<jsp:getPropertyid="localName"property="name"/>。要改變JavaBean屬性,你必須使用“<jsp:setProperty>”標(biāo)記。對這個標(biāo)記,你需要再次識別Bean和屬性,以修改并額外提供新值。如果命名正確,這些值可以從一個已提交的表中直接獲得:參數(shù)獲得:<jsp:setPropertyid="localName"property="*"/>;可以從一個參數(shù)獲得,但你必須直接命名屬性和參數(shù):<jsp:setPropertyid="localName"property="serialNumber"value="string"/>或者直接用一個名字稱和值來設(shè)置:<jsp:setPropertyid="localName"property="serialNumber"value=<%=expression%>/>.關(guān)于JavaBean的最后一件事:為了Web服務(wù)器能找到JavaBean,你需要將其類別文件放在一個特殊位置。用JSWDK,最方便的位置是安裝目錄下的類別目錄,如jswdk-1.0.1classes。JSP隱含對象與JSP語法相關(guān)的最后的元素是一些叫做“隱含對象”的東西。在JSP代碼片段中,你可以利用這些隱含對象與JSP頁面的代碼片段執(zhí)行環(huán)境產(chǎn)生互動。應(yīng)盡量少訪問這些內(nèi)置隱含對象。但是,在一某些情況下,訪問隱含對象是可被接受的。若要充分利用隱含對象,就需了解最新的JavaServletAPI。下表列出可用的隱含對象集合。隱含對象說明request客戶端請求,包括從GET/POST請求傳遞過來的參數(shù)response網(wǎng)頁傳回客戶端的反應(yīng)pageContext在此管理網(wǎng)頁屬性session與請求關(guān)聯(lián)的會話application代碼片段的運(yùn)行環(huán)境out傳送響應(yīng)的輸出流config代碼片段配置對象pageJSP網(wǎng)頁本身exception有錯的網(wǎng)頁中未被捕獲的例外這些都是用來做什么的,你又如何來使用它們呢?基本上說,在你的腳本片段里,你可以用它們進(jìn)入執(zhí)行JSP代碼的代碼片段。用不著深入了解太多的ServletAPI細(xì)節(jié),我們來看看能用它們來做到的某些事情:你可以不用表達(dá)式,直接進(jìn)入“Out”隱含對象,將某些內(nèi)容輸出到響應(yīng)中:<%out.println("Hello");%>。用不著把一個參數(shù)直接送到JavaBean,你可以從請求對象獲取參數(shù)值:HYPERLINKhttp://www.51chowww.51chgtiga=es.eaanee(a)otpitnna)g.1nd1nda.etw.1nda.nHYPERLINKhttp://www.51chwww.51chnP.發(fā)的過程中,進(jìn)行更多的開發(fā)的程,JaaBan或現(xiàn)JSP文件中加入了太多的Java源代碼,你就需要創(chuàng)建起支持作用的Java分類(class)了,它可以協(xié)助你重復(fù)利用源代碼并減少JSP網(wǎng)頁編譯時間。當(dāng)你需要創(chuàng)建Java分類文件時,你必須:將JDSWKinstallationin目錄添加到PATH中。在autoexec.bat文件PATH行的末尾,加入“C:1.2.2/bin”。用這個命令將JAR文件復(fù)制到“jrelibext:”目錄中:copyc:jswdk-1.0.1libservlet.jarc:jdk1.2.2jrelibext.創(chuàng)建一個JSP網(wǎng)站現(xiàn)在該是把所有這些JSP語法派上用場的時候了。我們將創(chuàng)建一個網(wǎng)頁,它有一個輸入表單,可以使用戶輸入一個股票代號以獲得出當(dāng)前股價(有20分鐘)。如果輸入有誤,則顯示報錯網(wǎng)頁。quote.jsp首先,用這個代碼創(chuàng)建一個quote.jsp網(wǎng)頁并將其保存在JSWDK安裝目錄下的網(wǎng)頁目錄中。大多數(shù)的網(wǎng)頁是標(biāo)準(zhǔn)的HTML,其間散布著JSP代碼。第六行是一個網(wǎng)頁指示,表示將把所有錯誤發(fā)送到“errorPage.jsp”文中。第13到15行是一個腳本片段,主要說明只有提供“符號”參數(shù)才會顯示表格。“If”代碼段在32到34行結(jié)束。第17行定義了要用的JavaBean,第18行從參數(shù)加載JavaBean的符號屬性。第27行到29行顯示Bean的屬性。除了"if"代碼段,實(shí)際上并不涉及其它Java代碼。errorPage.jsp下一步,將下列JSP源代碼保存到網(wǎng)頁目錄中的“errorPage.jsp”文件中?!斑@是一個錯誤網(wǎng)頁”的提示為第一行,它將isErrorPage網(wǎng)頁提示屬性設(shè)置為真。上一頁說了明錯誤網(wǎng)頁的位置,本頁則說明這就是錯誤網(wǎng)頁。其它JSP文件中的JSP專用代碼只有訪問隱含例外對象才用到。網(wǎng)頁只顯示其值:<%@pageisErrorPage="true"%><html><head><title>ErrorPage</title></head><body><h1>OurErrorPage</h1></font><!--PrintException-->Wegotourselvesanexception:<%=exception%><ahref="quote.jsp">Restart</a></body></html>。Quotes.javaQuotesJavaBean利用Yahoo資源來獲得股票價格。需要將此資源保存到JSWDK安裝目錄下“classescomjguru”目錄中的“quotes.java”文件中。請在此用JSDK中的Javac編輯器來編輯它。你的第一個JSP網(wǎng)頁。創(chuàng)建了這兩個JSP文件,建立了JavaBean資源文件并編輯了它后,你就可以從../localhost:8080/quote.jsp加載“quote.jsp”文件以查看結(jié)果,假設(shè)你沒有更改JSWDK安裝設(shè)置,轉(zhuǎn)而使用別的端口。這個網(wǎng)頁當(dāng)然能做得更漂亮,但是它已實(shí)現(xiàn)了需要實(shí)現(xiàn)的功能,并且很好地展示了JSP的功能。秀客設(shè)計:專業(yè)網(wǎng)頁設(shè)計、平面設(shè)計論壇。網(wǎng)頁設(shè)計&平面設(shè)計初學(xué)者最受歡迎的論壇!HYPERLINK11nda.etw.1nda.n2005-11-12005-11-1:主 【譽(yù)天IT下載站】整理siuke管理員精華60發(fā)帖3459秀值2511秀幣1587狀態(tài)離線貢獻(xiàn)值4點(diǎn)在線時間(小時)519注冊時間2005-07-17最后登陸2005-11-19HYPERLINKhttp://www.51chwww.51chJSP入門教程(二)歡迎使用JavaServerPages(以下簡稱JSP)技術(shù)—制作動態(tài)內(nèi)容網(wǎng)頁的方法。如果你希望學(xué)習(xí)這篇教程的話,我想你一定是這項技術(shù)的新手。你可能想成為一名利用JSP技術(shù)開發(fā)網(wǎng)絡(luò)應(yīng)用程序的程序員或者網(wǎng)頁設(shè)計師。本教程中包含了一系列JSP的技巧和一些簡單的代碼的寫法,每一步都舉了一組例子來講述原理。我建議你在學(xué)習(xí)本教程之前先去看一看FAQ,了解如果配置你的服務(wù)器好讓他能支持并運(yùn)行JSP。那樣你就可以跳過前邊的內(nèi)容直接看你感興趣的內(nèi)容了。OK,費(fèi)話少說,Let’sgo!第一課:真正的開始頁面明:在很多JSP文件中你都要寫上這樣的說明。在helloword.jsp中:傻瓜也看得出來,這句話沒什么大用,只是簡要的說明一下這段代碼的作用。你可以在JSP文件中的任何地方寫這種代碼,但是好的習(xí)慣是把他寫在最前面,還有,因為他是JSP標(biāo)簽,記住一定要放在前面,呵include說明:include用來在主JSP文件中調(diào)用本地的一個其他文件,通常是一些版權(quán)信息啦,腳本語言啦等其他任何你想在其他文件中重復(fù)使用的代碼。在這個例子中就是調(diào)用了一個圖片其實(shí)。大家明白這個意思就得了。隨便說兩句:在JSP中對寫法非常敏感,不可以有一點(diǎn)錯誤。舉個例子,把寫成那樣服務(wù)器會出現(xiàn)錯誤信息。一些如類名,包名,路徑11nda.etw.1nda.n2005-11-12005-11-1:5c1HYPERLINK/bbs/profile.php?action=show&uid=1 【譽(yù)天IT下載站】整理siuke管理員精華60發(fā)帖3459秀值2511秀幣1587狀態(tài)離線貢獻(xiàn)值4點(diǎn)在線時間(小時)519注冊時間2005-07-17最后登陸2005-11-19HYPERLINKhttp://www.51chwww.51chJSP入門教程(三)第二課:用HTML表單大多數(shù)情況下,商業(yè)的網(wǎng)站都要有一些表單,比如說輸入一下消費(fèi)者的姓名啦,地址啦,或者敲一個詞來用搜索引擎來查一下啦,或者市場人員從來訪者處收集一些數(shù)據(jù)供參考什么的。那些表單傳回的數(shù)據(jù)怎么處理的?來訪者通過表單向JSP引擎輸入了數(shù)據(jù),并保存在了request對象中,那么接下來怎么辦?圖2-1向你展示了數(shù)據(jù)流是如何在服務(wù)器和客戶之間傳遞的(至少在SUN的JSPreferenceimplementation是這么做的,別的JSP引擎工作起來可能會有一點(diǎn)點(diǎn)的不同,其實(shí)大同小異,都差不多)字兒太小了,可能看不大清吧?俺來解釋一下了只好。首先,JSP引擎把存放在request對象中的數(shù)據(jù)發(fā)到JSP頁面指定的服務(wù)器端的組件(JavaBeans組件,servlet,或者enterprisebean),組件收到這些個數(shù)據(jù)以后,有可能再存這些數(shù)據(jù)到數(shù)據(jù)庫或者其他的地方存放起來,同時,返回一個response對象給JSP引擎。JSP引擎再把response對象傳給JSP頁面,這時的頁面包含了定義好的格式和從服務(wù)器端得到的數(shù)據(jù)。這時JSP引擎和Web服務(wù)器再發(fā)送一個整理好的完整的頁面給客戶,也就是這們在瀏覽器上看到的結(jié)果。客戶和服務(wù)器間的通信協(xié)議可以用HTTP,當(dāng)然也可以用其他的。Request和Response對象在你制作的JSP原代碼中起作用。到于request對象到底怎么用,我要在接下來詳細(xì)的講給你聽。如何創(chuàng)建表單用HTML定義一些有代表性的表單做成一個JSP文件,然后用JSP標(biāo)簽在表單和服務(wù)器端對象(通常都用Bean)傳遞數(shù)據(jù)。一般情況下是這么干的:1、寫JSP原文件,創(chuàng)建一些HTML的表單并命名。2、在Java文件里寫B(tài)ean,定義屬性,GET或者SET方法來配合已經(jīng)被你指定好名字的表單。3、回到JSP原文件中,增加<jsp:useBean>標(biāo)簽來創(chuàng)建一個或者調(diào)用一個現(xiàn)成的Bean。4、增加<jsp:setProperty>標(biāo)簽設(shè)置HTML表單中需要SET方法的Bean的屬性。5、增加<jsp:getProperty>標(biāo)簽設(shè)置HTML表單中需要GET方法的Bean的屬性。6、如果需要處理更多的用戶數(shù)據(jù),用request對象。說了半天你可能看不懂,其實(shí)看一個例子你就懂了。先看一個簡單的hello的例子吧:這段程序其實(shí)還是計算機(jī)程序里那個最經(jīng)典的“hello,world”的程序,只不過呢,我使他撓了一點(diǎn)彎兒,使他看起來比較智能和復(fù)雜。首先你輸入你的名字,然后Duke跟你說:“hello!”11nda.etw.1nda.nHYPERLINK 看看代碼吧:dukebanner.html<tableborder="0"width="400"cellspacing="0"cellpadding="0"><tr><tdheight="150"width="150"></td><tdwidth="250"></td></tr><tr><tdwidth="150"></td><tdalign="right"width="250"><imgsrc="duke.waving.gif"></td></tr></table><br>主JSP文件:hellouser.jsp<%@pageimport="hello.NameHandler"%><jsp:useBeanid="mybean"scope="page"class="hello.NameHandler"/><jsp:setPropertyname="mybean"property="*"/><html><head><title>Hello,User</title></head><bodybgcolor="#ffffff"background="background.gif"><%@includefile="dukebanner.html"%><tableborder="0"width="700"><tr><tdwidth="150"></td><tdwidth="550"><h1>MynameisDuke.What’syours?</h1></td></tr><tr><tdwidth="150"</td><tdwidth="550"><formmethod="get"><inputtype="text"name="username"size="25"><br><inputtype="submit"value="Submit"><inputtype="reset"value="Reset">www.51cht/11nda.etw.1nda.nHYPERLINKhttp://www.51cho </table><%If(request.getParameter("username")!=null){%><%@includefile="response.jsp"%><%}%></body></html>回應(yīng)文件:response.jsp<tableborder="0"width="700"><tr><tdwidth="150"></td><tdwidth="550"><h1>Hello,<jsp:getPropertyname="mybean"property="username"/>!</h1></td></tr></table>處理數(shù)據(jù)的Bean:(namehandler.java)packagehello;publicclassNameHandler{privateStringusername;publicNameHandler(){username=null;}publicvoidsetUsername(Stringname){username=name;}HYPERLINK11nda.etw.1nda.npublicStringgetUsername(){HYPERLINK returnusername;}}建立HTML表單一個HTML的窗分為三個部分:<form>標(biāo)簽,輸入方法,提交按鈕發(fā)數(shù)據(jù)到服務(wù)器。一般的HTML頁面里,是這么寫的<formmethod=getaction=someurl>,在其他的頁面里的action屬性可能是其他特殊的CGI程序或者其他能處理數(shù)據(jù)的程序,那么在JSP里邊是怎么用的呢,呵,如果你想把數(shù)據(jù)發(fā)到Bean里的話那么你可以省略action里邊的東里了,直接寫<jsp:useBean>標(biāo)簽或者其他特定的JSP文件了。接下來的那些表單和普通的HTML差不多了,<input>的方法,然后加一個提交按鈕,可能還有一個Reset按鈕,對了,別忘了,還得給每一個input表單加一個名字。這么寫:<inputtype="text"name="username">使用GET和POST方法用GET和POST方法可以發(fā)數(shù)據(jù)到服務(wù)器,在JSP程序中GET和POST方法可以發(fā)數(shù)據(jù)到Bean、servlet、或者其他服務(wù)器端的組件。理論上說,GET是從服務(wù)器上請求數(shù)據(jù),POST是發(fā)送數(shù)據(jù)到服務(wù)器。事實(shí)上,GET方法是把數(shù)據(jù)參數(shù)隊列(querystring)加到一個URL上,值和表單是一一對應(yīng)的。比如說,name=John。在隊列里,值和表單用一個&符號分開,空格用+號替換,特殊的符號轉(zhuǎn)換成十六進(jìn)制的代碼。因為這一隊列在URL里邊,這樣隊列的參數(shù)就能看得到,可以被記錄下來,或更改。通常GET方法還限制字符的大小。事實(shí)上POST方法可以沒有時間限制的傳遞數(shù)據(jù)到服務(wù)器,用戶在瀏覽器端是看不到這一過程的,所以POST方法比較適合用于發(fā)送一個保密的(比如信用卡號)或者比較大量的數(shù)據(jù)到服務(wù)器。寫B(tài)ean如果JSP程序用到了Bean,你就得按照J(rèn)avaBeansAPI的說明設(shè)計你的Bean。記住下面兩個關(guān)鍵部分。如果JSP程序里用<jsp:getProperty>標(biāo)簽,那你就得在Bean里邊配合的GET方法。如果JSP程序進(jìn)而用<jsp:setProperty>標(biāo)簽,那你就得在Bean里邊配合的Set方法。設(shè)置參數(shù)到Bean或者從里邊取參數(shù)將在以后的部分詳細(xì)介紹。傳數(shù)據(jù)到Bean把HTML表單的數(shù)據(jù)傳到Bean里需要兩個工作:·用<jsp:useBean>標(biāo)簽創(chuàng)建或者定位到Bean·在Bean里面用<jsp:serProperty>設(shè)置屬性值第一步用<jsp:useBean>標(biāo)簽創(chuàng)建或者定位到Bean一定要用在<jsp:setProperty>之前,<jsp:useBean>首先按照你指定的名字查找Bean,如果沒找到,會給你指定一個。允許在一個JSP文件中創(chuàng)建一個Bean,然后再另一個文件中調(diào)用,這就給了Bean一個很廣泛的運(yùn)行空間。第二步在Bean里面用<jsp:setProperty>設(shè)置屬性值。最簡單的方法是把值定義成與表單名相配合。舉個例子,如果你把表單名定義成“username”那么,你就在Bean里定義屬性“username”然后用方法getUsername和setUsername。HYPERLINK11nda.etw.1nda.nHYPERLINK Request對象用戶輸入的數(shù)據(jù)用來存放在Request對象里,用javax.servlet.HttpServletRequest來執(zhí)行(你也可以用其他不同的工具來執(zhí)行,但他們其實(shí)都是javax.servlet.HttpServletRequest的子集)你也可以直接用scriptlet來直接訪問Request對象。Scriptlet將在下一講里邊詳細(xì)的討論,現(xiàn)在你只需要知道他是用腳本語言寫的一段放在<%和%>之間的代碼就足夠了。在JSP1.0中,你必須用JavaTM程序語言作為你的腳本語言。你經(jīng)常會用到如下方法處理Request對象:方法說明執(zhí)行結(jié)果getRequestJavax.servlet.jsp.PageContext返回當(dāng)前Request對象getParameterNamesjavax.servlet.ServletRequest返回當(dāng)前Request對象參數(shù)名getParameterValuesjavax.servlet.ServletRequest返回當(dāng)前Request對象參數(shù)值你將會發(fā)現(xiàn)其他方法包括ServletRequest,HttpServletRequest或者其他任何ServletRequest的子集。JSP引擎經(jīng)常在scenes之后使用Request對象,即使你沒有明確地在JSP文件中調(diào)用。從Bean中調(diào)數(shù)據(jù)到JSP頁面一旦用戶的數(shù)據(jù)被傳到Bean,你就想重新得到數(shù)據(jù),然后在JSP面頁中顯示出來。想達(dá)到這一步,你就得用到<jsp:getProperty>標(biāo)簽。傳Bean名和屬性名:<h1>Hello,<jsp:getPropertyname="mybean"property="username"/>!<jsp:useBean>,<jsp:setProperty>,和<jsp:getProperty>標(biāo)簽必須相配,舉個例子:hellouser.jsp:<jsp:useBeanid="mybean"scope="session"class="hello.NameHandler"/><jsp:setPropertyname="mybean"property="*"/>response.jsp:<h1>Hello,<jsp:getPropertyname="mybean"property="username"/>!在這個例子里,標(biāo)簽被放在兩個文件中,但是指定的名字都是相同的,如果不同的話,那么系統(tǒng)會返回一個錯誤信息。如何運(yùn)行例子我用的是UNIX主機(jī),如果你用windows,那么改相應(yīng)的路徑即可。創(chuàng)建路徑../jswdk-1.0/examples/jsp/tutorial/hellouser.把文件background.gif,duke.waving.gif,dukebanner.html,hellousr.jsp和response.jsp文件放進(jìn)去。創(chuàng)建一個目錄,../jswdk-1.0/examples/WEB-INF/jsp/beans/helloHYPERLINKfile:///E|/file:///E|/網(wǎng)站教程/網(wǎng)站編程/JSP入門教程.htm(第PAGE15/16頁)2007-9-1013:41:23jasonh@,../HYPERLINKhttp://www.51choCnogpdyriigahntwww.51chyit9K&ASoftwareDistributedbySunMicrosystemswithpermission-->

1n1nda.etw.1nda.n<jsp:useBeanid="numguess"class="num.NumberGuessBean"scope="session"/><jsp:setPropertyname="numguess"property="*"/><html><head><title>NumberGuess</title></head><bodybgcolor="white"><fontsize=4><%if(numguess.getSuccess()){%>Congratulations!Yougotit.Andafterjust<%=numguess.getNumGuesses()%>tries.<p><%numguess.reset();%>Careto<ahref="numguess.jsp">tryagain</a>?<%}elseif(numguess.getNumGuesses()==0){%>WelcometotheNumberGuessgame.<p>I’mthinkingofanumberbetween1and100.<p><formmethod=get>What’syourguess?<inputtype=textname=guess><inputtype=submitvalue="Submit"></form><%}else{%>Goodguess,butnope.Try<b><%=numguess.getHint()%></b>.Youhavemade<%=numguess.getNumGuesses()%>guesses.<p>I’mthinkingofanumberbetween1and100.<p><formmethod=get>What’syourguess?<inputtype=textname=guess><inputtype=submitvalue="Submit"></form><%}%></font></body></html>操作程序(NumberGuessBean.java)//NumberGuessGame//WrittenbyJasonHunter,CTO,K&ASoftware//jasonh@,..///Copyright1999,K&ASoftware//DistributedbySunMicrosystemswithpermissionpackagenum;importjava.util.*;publicclassNumberGuessBean{intanswer;booleansuccess;HYPERLINKhttp://www.51choSntgrindgihainntintnumGuesses;HYPERLINKhttp://www.51chopnugbdliciNaunm.bnereGtuessBeanwww.51chlieuessBean(){reset();}publicvoidsetGuess(Stringguess){numGuesses++;intg;try{g=Integer.parseInt(guess);}catch(NumberFormatExceptione){g=-1;}if(g==answer){success=true;}elseif(g==-1){hint="anumbernexttime";}elseif(g<answer){hint="higher";}elseif(g>answer){hint="lower";}}publicbooleangetSuccess(){returnsuccess;}publicStringgetHint(){return""+hint;}publicintgetNumGuesses(){returnnumGuesses;}publicvoidreset(){

1n1nda.etw.1nda.n+1;success=false;numGuesses=0;}}在JSP文件中使用腳本numguess.jsp是一個非常有趣兒的用腳本寫的例子,你看他的結(jié)構(gòu)其實(shí)是一個很大的IF……ELSE結(jié)構(gòu),但是很一個從句又都是用HTML寫的,看起來象一個大的程序段。不過你也不一定非得象numguess.jsp那樣用HTML和JSP標(biāo)簽一起來寫腳本。在<%和%>標(biāo)簽之間,你可以寫任意多行的腳本代碼,在通常情況下,盡量少用腳本來處理程序,而盡可能的使用servlets或者Beans,這樣你的程序看起來會非常的清析,明了。話又說回來,怎么寫JSP還得根據(jù)你的習(xí)慣和愛好,我不強(qiáng)迫非得使用任何一種方法,SUN的JSP詳細(xì)說明書不規(guī)定腳本的長度。用標(biāo)簽組合腳本使用HTML和JSP標(biāo)簽來寫腳本的時候,注意前后的標(biāo)簽不要忘記,一定要“封”好。說的不明白,舉個例子吧:<%}else{%><!--用JSP標(biāo)簽的時候先關(guān)上-->HYPERLINKhttp://www.51cho.nwww.51ch.iPtw..51HYPERLINKhttp://www.51chowww.51chgn!-這樣你應(yīng)該看懂了吧?!-->

開始的時候這種做法看起來可能有一點(diǎn)奇怪,但它以確保你JSP文件編譯的時候腳本的成功轉(zhuǎn)換。那么,腳本什么時候執(zhí)行呢?一個JSP原文件的處理分為兩個階段:一個是HTTP的編譯時候,一個是請求的處理時間。HTTP編譯的時候,當(dāng)用戶第一次讀JSP頁面的時候,JSP的原代碼被編譯成CLASS,通常是servlet。HTML標(biāo)簽和JSP標(biāo)簽在這個時候同時被處理了,這之前用戶還沒有任何的請求被提交。請求處理時間是當(dāng)用戶在JSP頁面中提交了一個請求,這時請求由客戶端被request對象傳到了服務(wù)器端,JSP引擎根據(jù)用戶提交的值執(zhí)行編譯過的JSP文件或者servlet。當(dāng)你在JSP頁中使用腳本的時候,你必須知道他們什么時候被執(zhí)行。聲明在HTTP編譯階段就已經(jīng)被處理了,其他腳本,表達(dá)式在編譯JSP文件的時候也可用。表達(dá)式在HTTP編譯的時候也被執(zhí)行了。表達(dá)式的值被轉(zhuǎn)換成了字符串被插入到JSP文件中一塊兒被編譯。其實(shí)在請求階段,腳本也是可以利用的。如何運(yùn)行例子我現(xiàn)在給出的都是在UNIX風(fēng)格下的路徑,如果你用Windows,那么改成Windows風(fēng)格路徑1、猜數(shù)字游戲在裝TOMCAT或者JSWDK的時候就已經(jīng)裝好了。2、.jsp和.html文件在../jswdk-1.0.1/examples/num中3、.java和.class文件在../jswdk-1.0.1/examples/WEB-INF/jsp/bean/num中4、開瀏覽器,../機(jī)器名/examples/jsp/num/numguess.jsp秀客設(shè)計:專業(yè)網(wǎng)頁設(shè)計、平面設(shè)計論壇。網(wǎng)頁設(shè)計&平面設(shè)計初學(xué)者最受歡迎的論壇!快速發(fā)帖 HYPERLINKjavascript:scroll(0,0)頂端HYPERLINKHYPERLINK/bbs/index.php HYPERLINK/index.htm首頁|HYPERLINK/siuke.htm秀客|HYPERLINK/bbs/index.php秀客論壇|HYPERLINK/zt.htm轉(zhuǎn)帖工具|秀客收藏夾?windecember:HYPERLINK/bbs/login.php?action=quit退出|HYPERLINK/bbs/profile.php控制面板|HYPERLINK/bbs/message.php短消息|HYPERLINK/bbs/search.php搜索|HYPERLINK/bbs/member.php會員|HYPERLINK/bbs/sort.php統(tǒng)計與排行|HYPERLINK/bbs/hack.php?H_name=bank銀行|HYPERLINK/bbs/faq.php幫助|HYPERLINK/bbs/index.php社區(qū)HYPERLINK/bbs/index.php秀客論壇->HYPERLINK/bbs/job.php?rd_previous=1&fid=12&tid=3725&fpage=3&goto=previous上一主題|HYPERLINK/bbs/job.php?rd_previous=1&fid=12&tid=3725&fpage=3&goto=next下一主題siuke管理員精華60發(fā)帖3459秀值2511秀幣1587狀態(tài)離線貢獻(xiàn)值4點(diǎn)在線時間(小時)519注冊時間2005-07-17最后登陸2005-11-19

JSP語法入門教程JSP語法(1)——HTML注釋HTML注釋在客戶端顯示一個注釋.JSP語法<!--comment[<%=expression%>]-->例子1<!--Thisfiledisplaystheuserloginscreen-->在客戶端的HTML源代碼中產(chǎn)生和上面一樣的數(shù)據(jù):<!--Thisfiledisplaystheuserloginscreen-->例子2<!--Thispagewasloadedon<%=(newjava.util.Date()).toLocaleString()%>-->在客戶端的HTML源代碼中顯示為:<!--ThispagewasloadedonJanuary1,2000-->描述這種注釋和HTML中很像,也就是它可以在"查看源代碼"中看到。唯一有些不同的就是,你可以在這個注釋中用表達(dá)式(例子2所示)。這個表達(dá)示是不定的,由頁面不同而不同,你能夠使用各種表達(dá)式,只要是合法的就行。11ndaHYPERLINK/bbs/post.php?action=modify&fid=12&tid=3725&pid=9609&article=2.HYPERLINK/bbs/post.php?action=quote&fid=12&tid=3725&pid=9609&article=2etw.1nda.nHYPERLINKhttp://www.51chwww.51ch當(dāng)你聲明方法或變量時,請注意以下的一些規(guī)則: HYPERLINKhttp://www.51chwww.51ch當(dāng)你聲明方法或變量時,請注意以下的一些規(guī)則: 【譽(yù)天IT下載站】整理聲明必須以";"結(jié)尾(Scriptlet有同樣的規(guī)則,但是表達(dá)式就不同了).你可以直接使用在<%@page%>中被包含進(jìn)來的已經(jīng)聲明的變量和方法,不需要對它們重新進(jìn)行聲明.一個聲明僅在一個頁面中有效。如果你想每個頁面都用到一些聲明,最好把它們寫成一個單獨(dú)的文件,然后用<%@include%>或<jsp:include>元素包含進(jìn)來。秀客設(shè)計:專業(yè)網(wǎng)頁設(shè)計、平面設(shè)計論壇。網(wǎng)頁設(shè)計&平面設(shè)計初學(xué)者最受歡迎的論壇!2005-11-1208:45 #2siuke管理員精華60發(fā)帖3459秀值2511秀幣1587狀態(tài)離線貢獻(xiàn)值4點(diǎn)在線時間(小時)519注冊時間2005-07-17最后登陸2005-11-19JSP語法(4)——表達(dá)式包含一個符合JSP語法的表達(dá)式JSP語法<%=expression%>例子<fontcolor="blue"><%=map.size()%></font><b><%=numguess.getHint()%></b>.描述表達(dá)式元素表示的是一個在腳本語言中被定義的表達(dá)式,在運(yùn)行后被自動轉(zhuǎn)化為字符串,然后插入到這個表達(dá)示在JSP文件的位置顯示。因為這個表達(dá)式的值已經(jīng)被轉(zhuǎn)化為字符串,所以你能在一行文本中插入這個表達(dá)式(形式和ASP完全一樣).當(dāng)你在JSP中使用表達(dá)式時請記住以下幾點(diǎn):你不能用一個分號(";")來作為表達(dá)式的結(jié)束符.但是同樣的表達(dá)式用在scriptlet中就需要以分號來結(jié)尾了!查看Scriptlet這個表達(dá)式元素能夠包括任何在JavaLanguageSpecification中有效的表達(dá)式.有時候表達(dá)式也能做為其它JSP元素的屬性值.一個表達(dá)式能夠變得很復(fù)雜,它可能由一個或多個表達(dá)式組成,這些表達(dá)式的順序是從左到右。秀客設(shè)計:專業(yè)網(wǎng)頁設(shè)計、平面設(shè)計論壇。網(wǎng)頁設(shè)計&平面設(shè)計初學(xué)者最受歡迎的論壇!2005-11-1208:45 #3HYPERLINK11nda.etw.1nda.nsiuke管理員 HYPERLINKhttp://www.51chsiuke管理員 HYPERLINKhttp://www.51chwww.51ch精華60發(fā)帖3459秀值2511秀幣1587狀態(tài)離線貢獻(xiàn)值4點(diǎn)在線時間(小時)519注冊時間2005-07-17最后登陸2005-11-19JSP語法(5)——S 【譽(yù)天IT下載站】整理表達(dá)式Scriptlet包含一個有效的程序段.JSP語法<%codefragment%>例子<%Stringname=null;if(request.getParameter("name")==null){%><%@includefile="error.html"%><%}else{foo.setName(request.getParameter("name"));if(foo.getName().equalsIgnoreCase("integra"))name="acura";if(name.equalsIgnoreCase("acura")){%>描述一個scriptlet能夠包含多個jsp語句,方法,變量,表達(dá)式因為scriptlet,我們便能做以下的事:聲明將要用到的變量或方法(參考聲明).編寫JSP表達(dá)式(參考表達(dá)式).使用任何隱含的對象和任何用<jsp:useBean>聲明過的對象編寫JSP語句(如果你在使用Java語言,這些語句必須遵從JavaLanguageSpecification,).任何文本,HTML標(biāo)記,JSP元素必須在scriptlet之外當(dāng)JSP收到客戶的請求時,scriptlet就會被執(zhí)行,如果scriptlet有顯示的內(nèi)容,這些顯示的內(nèi)容就被存在out對象中。秀客設(shè)計:專業(yè)網(wǎng)頁設(shè)計、平面設(shè)計論壇。網(wǎng)頁設(shè)計&平面設(shè)計初學(xué)者最受歡迎的論壇!2005-11-1208:46 #4HYPERLINK11nda.etw.1nda.nsiuke管理員 siuke管理員 HYPERLINKhttp://www.51chwww.51ch精華60發(fā)帖3459秀值2511秀幣1587狀態(tài)離線貢獻(xiàn)值4點(diǎn)在線時間(小時)519注冊時間2005-07-17最后登陸2005-11-19JSP語法(6)——Page指令 【譽(yù)天IT下載站】整理Page指令定義JSP文件中的全局屬性.JSP語法<%@page[language="java"][extends="package.class"][import="{package.class|package.*},..."][session="true|false"][buffer="none|8kb|sizekb"][autoFlush="true|false"][isThreadSafe="true|false"][info="text"][errorPage="relativeURL"][contentType="mimeType[;charset=characterSet]"|"text/html;charset=ISO-8859-1"][isErrorPage="true|false"]%>例子<%@pageimport="java.util.*,java.lang.*"%><%@pagebuffer="5kb"autoFlush="false"%><%@pageerrorPage="error.jsp"%>描述<%@page%>指令作用于整個JSP頁面,同樣包括靜態(tài)的包含文件。但是<%@page%>指令不能作用于動態(tài)的包含文件,比如<jsp:include>你可以在一個頁面中用上多個<%@page%>指令,但是其中的屬性只能用一次,不過也有個例外,那就是import屬性。因為import屬性和Java中的import語句差不多(參照J(rèn)avaLanguage),所以你就能多用此屬性幾次了.無論你把<%@page%>指令放在JSP的文件的哪個地方,它的作用范圍都是整個JSP頁面。不過,為了JSP程序的可讀性,以及好的編程習(xí)慣,最好還是把它放在JSP文件的頂部.秀客設(shè)計:專業(yè)網(wǎng)頁設(shè)計、平面設(shè)計論壇。網(wǎng)頁設(shè)計&平面設(shè)計初學(xué)者最受歡迎的論壇!2005-11-1208:46 #5siuke管理員精華60發(fā)帖3459秀值2511秀幣1587狀態(tài)離線貢獻(xiàn)值4點(diǎn)在線時間(小時)519注冊時間2005-07-17最后登陸0--chJSP語法(7)——Taglib指令Taglib指令定義一個標(biāo)簽庫以及其自定義標(biāo)簽的前綴.JSP語法<%@tagliburi="URIToTagLibrary"prefix="tagPrefix"%>例子<%@tagliburi="/tags"prefix="public"%><public:loop>1nd1nda.etw.1nda.nHYPERLINKhttp://www.51chwww.51ch.ulcloet 描述<%@taglib%>指令聲明此JSP文件使用了自定義的標(biāo)簽,同時引用標(biāo)簽庫,也指定了他們的標(biāo)簽的前綴。這里自定義的標(biāo)簽含有標(biāo)簽和元素之分。因為JSP文件能夠轉(zhuǎn)化為XML,所以了解標(biāo)簽和元素之間的聯(lián)系很重要。標(biāo)簽只不過是一個在意義上被抬高了點(diǎn)的標(biāo)記,是JSP元素的一部分。JSP元素是JSP語法的一部分,和XML一樣有開始標(biāo)記和結(jié)束標(biāo)記。元素也可以包含其它的文本,標(biāo)記,元素。比如,一個jsp:plugin元素有<jsp:plugin>開始標(biāo)記和</jsp:plugin>結(jié)束標(biāo)記,同樣也可以有<jsp:params>和<jsp:fallback>元素.你必須在使用自定義標(biāo)簽之前使用<%@taglib%>指令,而且你可以在一個頁面中多次使用,但是前綴只能使用一次屬性uri="URIToTagLibrary"UniformResourceIdentifier(URI)根據(jù)標(biāo)簽的前綴對自定義的標(biāo)簽進(jìn)行唯一的命名,URI可以是以下的內(nèi)容:UniformResourceLocator(URL),由RFC2396定義,查看http://www.hut.fi/u/jkorpela/HYPERLINKhttp://www.hut.fi/u/jkorpela/rfc/2396/full.htmlrfc/2396/full.htmlUniformResourceName(URN),由RFC2396定義一個相對或絕對的路徑prefix="tagPrefix"在自定義標(biāo)簽之前的前綴,比如,在<public:loop>中的public,如果這里不寫public,那么這就是不合法的。請不要用jsp,jspx,java,javax,servlet,sun,和sunw做為你的前綴。秀客設(shè)計:專業(yè)網(wǎng)頁設(shè)計、平面設(shè)計論壇。網(wǎng)頁設(shè)計&平面設(shè)計初學(xué)者最受歡迎的論壇!2005-11-1208:46 #6siuke管理員精華60發(fā)帖3459秀值2511秀幣1587狀態(tài)離線貢獻(xiàn)值4點(diǎn)在線時間(小時)519注冊時間2005-07-17最后登陸HYPERLINKhttp://www.51chwww.51chJSP語法(8)——<jsp:forward>or<jsp:forwardpage={"relativeURL"|"<%=expression%>"}><jsp:paramname="parameterName"value="{parameterValue|<%=expression%>}"/>+j:fa>t11nda.etw.1nda.nHYPERLINKhttp://www.51chwww.51chnHYPERLINKhttp://www.51ch 【譽(yù)天IT下載站】整理<jsp:forwardpage="/servlet/login"/><jsp:forwardpage="/servlet/login"><jsp:paramname="username"value="jsmith"/></jsp:forward>描述<jsp:forward>標(biāo)簽從一個JSP文件向另一個文件傳遞一個包含用戶請求的request對象.<jsp:forward>標(biāo)簽以下的代碼,將不能執(zhí)行.你能夠向目標(biāo)文件傳送參數(shù)和值,在這個例子中我們傳遞的參數(shù)名為username,值為scott,如果你使用了<jsp:param>標(biāo)簽的話,目標(biāo)文件必須是一個動態(tài)的文件,能夠處理參數(shù).如果你使用了非緩沖輸出的話,那么使用<jsp:forward>時就要小心。如果在你使用<jsp:forward>之前,jsp文件已經(jīng)有了數(shù)據(jù),那么文件執(zhí)行就會出錯.屬性page="{relativeURL|<%=expression%>}"這里是一個表達(dá)式或是一個字符串用于說明你將要定向的文件或URL.這個文件可以是JSP,程序段,或者其它能夠處理request對象的文件(如asp,cgi,php).<jsp:paramname="parameterName"value="{parameterValue|<%=expression%>}"/>+向一個動態(tài)文件發(fā)送一個或多個參數(shù),這個文件一定是動態(tài)文件.如果你想傳遞多個參數(shù),你可以在一個JSP文件中使用多個<jsp:param>。name指定參數(shù)名,value指定參數(shù)值.秀客設(shè)計:專業(yè)網(wǎng)頁設(shè)計、平面設(shè)計論壇。網(wǎng)頁設(shè)計&平面設(shè)計初學(xué)者最受歡迎的論壇!2005-11-1208:46 #7siuke管理員精華60發(fā)帖3459秀值2511秀幣1587狀態(tài)離線貢獻(xiàn)值4點(diǎn)在線時間(小時)519注冊時間2005-07-17最后登陸2005-11-19HYPERLINKhttp://www.51chwww.51chJSP語法(9)——<jsp:getProperty><jsp:getProperty>獲取Bean的屬性值,用于顯示在頁面中JSP語法<jsp:getPropertyname="beanInstanceName"property="propertyName"/>例子<jsp:useBeanid="calendar"scope="page"class="employee.Calendar"/><h2>Calendarof<jsp:getPropertyname="calendar"property="username"/>11nda.etw.1nda.nHYPERLINKhttp://www.51chwww.51ch</h2> 【譽(yù)天ITHYPERLINKhttp://www.51chwww.51ch</h2> 【譽(yù)天IT下載站】整理描述這個<jsp:getProperty>元素將獲得Bean的屬性值,并可以將其使用或顯示在JSP頁面中.在你使用<jsp:getProperty>之前,你必須用<jsp:useBean>創(chuàng)建它.<jsp:getProperty>元素有一些限制:你不能使用<jsp:getProperty>來檢索一個已經(jīng)被索引了的屬性你能夠和JavaBeans組件一起使用<jsp:getProperty>,但是不能與EnterpriseBean一起使用。屬性name="beanInstanceName"bean的名字,由<jsp:useBean>指定property="propertyName"所指定的Bean的屬性名。技巧:在sun的JSP參考中提到,如果你使用<jsp:getProperty>來檢索的值是空值,那么NullPointerException將會出現(xiàn),同時如果使用程序段或表達(dá)式來檢索其值,那么在瀏覽器上出現(xiàn)的是null(空).秀客設(shè)計:專業(yè)網(wǎng)頁設(shè)計、平面設(shè)計論壇。網(wǎng)頁設(shè)計&平面設(shè)計初學(xué)者最受歡迎的論壇!2005-11-1208:46 #8siuke管理員精華60發(fā)帖3459秀值2511秀幣1587狀態(tài)離線貢獻(xiàn)值4點(diǎn)在線時間(小時)519注冊時間2005-07-17最后登陸2005-11-19HYPERLINKhttp://www.51chwww.51chJSP語法(10)——<jsp:include><jsp:include>包含一個靜態(tài)或動態(tài)文件.JSP語法<jsp:includepage="{relativeURL|<%=expression%>}"flush="true"/>or<jsp:includepage="{relativeURL|<%=expression%>}"flush="true"><jsp:paramname="parameterName"value="{parameterValue|<%=expression%>}"/>+</jsp:include>Examples<jsp:includepage="scripts/login.jsp"/>11nda.etw.1nda.n<jsp:includepage="copyright.html"/>HYPERLINK <jsp:includepage="/index.html"/><jsp:includepage="scripts/login.jsp"><jsp:paramname="username"value="jsmith"/></jsp:include>描述<jsp:include>元素允許你包含動態(tài)文件和靜態(tài),這兩種包含文件的結(jié)果是不同的。如果文件僅是靜態(tài)文件,那么這種包含僅僅是把包含文件的內(nèi)容加到j(luò)sp文件中去,而如果這個文件動態(tài)的,那么這個被包含文件也會被Jsp編譯器執(zhí)行(這一切與asp相似)你不能從文件名上判斷一個文件是動態(tài)的還是靜態(tài)的,比如aspcn.asp就有可能只是包含一些信息而已,而不需要執(zhí)行。<jsp:include>能夠同時處理這兩種文件,因此你就不需要包含時還要判斷此文件是動態(tài)的還是靜態(tài)的.如果這個包含文件是動態(tài)的,那么你還可以用<jsp:param>還傳遞參數(shù)名和參數(shù)值。屬性page="{relativeURL|<%=expression%>}"參數(shù)為一相對路徑,或者是代表相對路徑的表達(dá)式.flush="true"這里你必須使用flush="true",你不能使用false值.缺省值為false<jsp:paramname="parameterName"value="{parameterValue|<%=expression%>}"/>+<jsp:param>子句能讓你傳遞一個或多個參數(shù)給動態(tài)文件你能在一個頁面中使用多個<jsp:param>來傳遞多個參數(shù)。秀客設(shè)計:專業(yè)網(wǎng)頁設(shè)計、平面設(shè)計論壇。網(wǎng)頁設(shè)計&平面設(shè)計初學(xué)者最受歡迎的論壇!2005-11-1208:47 #9HYPERLINK/bbs/read.php?tid=3725&fpage=3&toread=&page=1<<1HYPERLINK/bbs/read.php?tid=3725&fpage=3&toread=&page=22 >>Pages:(2total)快速發(fā)帖 HYPERLINKjavascript:scroll(0,0)頂端標(biāo)題: [HYPERLINKjavascript:checklength(document.FORM);查看帖子長度]HYPERLINK選項:URL自動識別Code自動轉(zhuǎn)換使用個人簽名隱藏此帖出售此帖加密此帖

HYPERLINK [完成后可按Ctrl+Enter發(fā)布]HYPERLINK/bbs/read.php?tid=3725&fpage=3#加為IE收藏|HYPERLINK/bbs/job.php?action=favor&job=add&tid=3725收藏主題|HYPERLINK/bbs/sendemail.php?action=tofriend&tid=3725推薦給朋友11nda.etw.1nda.n論壇跳轉(zhuǎn):PoweredbyHYPERLINK/PHPWindv

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論