教學(xué)課件:《JSP程序設(shè)計(jì)》_第1頁(yè)
教學(xué)課件:《JSP程序設(shè)計(jì)》_第2頁(yè)
教學(xué)課件:《JSP程序設(shè)計(jì)》_第3頁(yè)
教學(xué)課件:《JSP程序設(shè)計(jì)》_第4頁(yè)
教學(xué)課件:《JSP程序設(shè)計(jì)》_第5頁(yè)
已閱讀5頁(yè),還剩321頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

JSP程序設(shè)計(jì)第1章JSP概述JSP簡(jiǎn)介任務(wù)1JSP的開(kāi)發(fā)環(huán)境任務(wù)2任務(wù)1JSP簡(jiǎn)介階段1JSP的歷史背景階段2JSP的特點(diǎn)階段3JSP的應(yīng)用范圍階段4初學(xué)者需要注意的問(wèn)題階段1JSP的歷史背景

JSP是Sun公司推出的新一代網(wǎng)站開(kāi)發(fā)語(yǔ)言,Sun公司的產(chǎn)品除了大名鼎鼎的Java、Java應(yīng)用程序和JavaApplet之外,JSP是該公司的另一項(xiàng)優(yōu)秀的產(chǎn)品。JSP可以在Servlet和JavaBean的支持下,完成功能強(qiáng)大的站點(diǎn)程序。JSP技術(shù)是實(shí)現(xiàn)普通靜態(tài)HTML和動(dòng)態(tài)HTML混合編碼的技術(shù)。它為創(chuàng)建高度動(dòng)態(tài)的Web應(yīng)用提供了一個(gè)獨(dú)特的開(kāi)發(fā)環(huán)境。它是Java平臺(tái)上用于編寫(xiě)HTML、DHTML、XHTML和XML等包含有動(dòng)態(tài)內(nèi)容的應(yīng)用程序的技術(shù)。階段1JSP的歷史背景

階段2JSP的特點(diǎn)

1.JSP的特點(diǎn)2.與其他語(yǔ)言的比較3.發(fā)展前景1.JSP的特點(diǎn)(1)實(shí)現(xiàn)了跨平臺(tái)使用(2)組件可復(fù)用(3)標(biāo)記簡(jiǎn)化的語(yǔ)言(4)實(shí)現(xiàn)應(yīng)用程序與頁(yè)面顯示的分離化2.與其他語(yǔ)言的比較(1)ASP采用腳本語(yǔ)言VBScript、JavaScript作為自己的開(kāi)發(fā)語(yǔ)言。(2)PHP是跨平臺(tái)的服務(wù)器端的嵌入式腳本語(yǔ)言。

(3)JSP同PHP類(lèi)似,幾乎可以執(zhí)行于所有平臺(tái)。3.發(fā)展前景在國(guó)外,JSP已經(jīng)是比較流行的一種技術(shù),尤其是電子商務(wù)類(lèi)的網(wǎng)站,大多采用JSP。國(guó)內(nèi)PHP與ASP應(yīng)用最為廣泛,JSP由于是一種較新的技術(shù),國(guó)內(nèi)采用的較少。JSP可以通過(guò)SUNJava的JavaClass和EJB獲得規(guī)模支持,通過(guò)EJB/CORBA以及眾多廠商的ApplicationServer獲得結(jié)構(gòu)支持。ASP,PHP,JSP三者都有相當(dāng)數(shù)量的支持者,由此也可以看出三者各有所長(zhǎng)。三者中,JSP應(yīng)該是未來(lái)發(fā)展的趨勢(shì)。世界上一些大的電子商務(wù)解決方案提供商都采用JSP/Servlet,如IBM的E-business,其核心是采用JSP/Servlet的WebSphere,并且通過(guò)CGI來(lái)提供支持的。3.發(fā)展前景階段3JSP的應(yīng)用范圍(1)電子商務(wù)的應(yīng)用。(2)信息管理的應(yīng)用。(3)多媒體的應(yīng)用。(4)數(shù)據(jù)庫(kù)的應(yīng)用。(5)辦公自動(dòng)化的應(yīng)用。(6)將JSP與HTML結(jié)合開(kāi)發(fā)。(7)JSP語(yǔ)言可以在處理Java語(yǔ)言的過(guò)程中靈活地應(yīng)用各種HTML標(biāo)識(shí)。(8)JSP技術(shù)得到眾多開(kāi)放性代碼組織支持。由IBM、Oracle、Sun、Bea等著名的軟件公司提供技術(shù)支持。階段3JSP的應(yīng)用范圍階段4初學(xué)者需要注意的問(wèn)題(1)Java語(yǔ)言區(qū)分大小寫(xiě),如uersname與UersName是兩個(gè)不同的變量。(2)Java與JavaScript是兩種不同的語(yǔ)言,Java語(yǔ)言由Sun公司研發(fā),JavaScript語(yǔ)言由網(wǎng)景公司研發(fā),兩者的函數(shù)和類(lèi)包不可通用。(3)使{}符號(hào)標(biāo)識(shí)程序塊,類(lèi)與方法以“{”符號(hào)開(kāi)始,以“}”符號(hào)結(jié)束。(4)Java語(yǔ)言中需要通過(guò)類(lèi)的實(shí)例應(yīng)用方法,所有的方法都由類(lèi)激活,因此,需要用()符號(hào)來(lái)表達(dá)。(5)JSP和Servlet是服務(wù)器端的語(yǔ)言,不可以脫離服務(wù)器的支持而在客戶(hù)端直接運(yùn)行JSP或者Servlet。階段4初學(xué)者需要注意的問(wèn)題任務(wù)2JSP的開(kāi)發(fā)環(huán)境階段1JDK的安裝與配置階段2Tomcat的安裝與配置階段1JDK的安裝與配置

JDK是由Sun公司免費(fèi)提供的在Windows、Solaris、Linux平臺(tái)上使用的軟件開(kāi)發(fā)工具包。這里介紹在Windows操作系統(tǒng)下安裝和配置JDK工具軟件。其安裝與配置過(guò)程與在Windows操作系統(tǒng)下安裝其他軟件一樣,非常的方便。1.下載JDK軟件(1)首先,進(jìn)入到Oracle公司網(wǎng)站下載JDK6.0安裝程序包,其網(wǎng)址為/technetwork/java/javase/downloads/jdk6-jsp-136632.html

(2)單擊Download按鈕,進(jìn)入到注冊(cè)登錄頁(yè)面。(3)填寫(xiě)完注冊(cè)登錄信息后,單擊Continue按鈕,登錄即可根據(jù)自己的操作系統(tǒng)下載JDK安裝程序。文件下載完成后,就可以開(kāi)始安裝JDK6.0了。1.下載JDK軟件2.安裝JDK6.0軟件(1)雙擊下載的jdk-6-rc-windows-i586.exe文件,系統(tǒng)將自動(dòng)啟動(dòng)WindowsInstaller開(kāi)始安裝過(guò)程。(2)隨后,系統(tǒng)彈出許可證協(xié)議對(duì)話框,單擊“接受”按鈕。(3)保存默認(rèn)配置,單擊“下一步”按鈕,稍等幾分鐘,即可完成JDK6.0的安裝。3.在Windows上設(shè)置環(huán)境變量安裝好JDK6.0軟件之后,要對(duì)操作系統(tǒng)的環(huán)境變量進(jìn)行設(shè)置。不同的操作系統(tǒng)下會(huì)有不同的系統(tǒng)環(huán)境的設(shè)置。這里以Windows2000/XP/2003下設(shè)定系統(tǒng)環(huán)境變量為例。(1)右擊“我的電腦”圖標(biāo),在彈出的快捷菜單中選擇“屬性”命令,系統(tǒng)將自動(dòng)打開(kāi)“系統(tǒng)屬性”對(duì)話框,在該對(duì)話框中“高級(jí)”選項(xiàng)卡中單擊“環(huán)境變量”按鈕,打開(kāi)“環(huán)境變量”對(duì)話框。(2)在該對(duì)話框中,單擊“系統(tǒng)變量”選項(xiàng)區(qū)域中的“新建”按鈕,新建變量JAVA_HOME,并配置變量值。然后,3.在Windows上設(shè)置環(huán)境變量

編輯變量Path,變量值為%JAVA_HOME%\bin(3)在設(shè)置完系統(tǒng)變量后,在MS.DOS模式或命令行模式下,輸入命令“javac”,完成JDK6.0的軟件安裝。3.在Windows上設(shè)置環(huán)境變量階段2Tomcat的安裝與配置

Tomcat由JavaSoft和Apache開(kāi)發(fā)團(tuán)隊(duì)共同提出合作計(jì)劃的產(chǎn)品,它完全支持Servlet和JSP,并且可以免費(fèi)使用。由于JSP的程序開(kāi)發(fā),是需要在服務(wù)器中運(yùn)行的,因此,在完成開(kāi)發(fā)軟件后,還需要運(yùn)行網(wǎng)頁(yè)的Apache服務(wù)器。下面來(lái)安裝Apache服務(wù)器Tomcat。1.下載軟件進(jìn)入到Apache網(wǎng)站下載安裝程序,網(wǎng)址為/

選擇Tomcat6.0版本進(jìn)行下載,用戶(hù)根據(jù)操作系統(tǒng)選擇合適的安裝文件進(jìn)行下載。若是Windows系統(tǒng)下載apache-tomcat-6.0.0.exe安裝文件,若是Linux系統(tǒng)則下載apache-tomcat-6.0.0.tar.gz安裝文件。2.在Windows上安裝Tomcat6.0(1)將下載的壓縮包“apache-tomcat-6.0.29.zip”解壓縮到磁盤(pán)目錄,不要解壓縮到安裝路徑。(2)進(jìn)入到Tomcat安裝目錄下的bin子目錄,可以看到startup.bat和shutdown.bat。雙擊starup.bat啟動(dòng)Tomcat服務(wù)器,直到顯示提示信息“Serverstartupin4859ms”時(shí),表示Tomcat啟動(dòng)完畢。否則可能出現(xiàn)錯(cuò)誤,無(wú)法啟動(dòng)。這時(shí),需要關(guān)閉Tomcat服務(wù)器,可以關(guān)閉這個(gè)CMD窗口,也可以雙擊運(yùn)行shutdown.bat。2.在Windows上安裝Tomcat6.03.配置系統(tǒng)環(huán)境

與JDK不同的是,在Windows下不需要設(shè)置CATALINA_HOME這個(gè)變量也可以運(yùn)行Tomcat。但如果想要同時(shí)讓多個(gè)Tomcat版本并存,就不能設(shè)置CATALINA_HOME。若要設(shè)置,就需要新建環(huán)境變量,名為“CATALINA_HOME”,取值為T(mén)omcat6.0的安裝目錄,如C:\apache-tomcat-6.0.30。4.測(cè)試Tomcat6.0啟動(dòng)瀏覽器,在地址欄中輸入“http://localhost:8080”或“:8080”,瀏覽器會(huì)出現(xiàn)如下畫(huà)面。4.測(cè)試Tomcat6.0第2章JSP開(kāi)發(fā)基礎(chǔ)JSP的基本語(yǔ)法任務(wù)1JSP的運(yùn)算符與變量

任務(wù)2JSP的流程控制

任務(wù)3JSP的字符和字符串處理任務(wù)4JSP的異常處理任務(wù)5任務(wù)1JSP的基本語(yǔ)法階段1聲明階段2表達(dá)式階段3代碼段階段1聲明

JSP程序中用到的變量和方法,必須先進(jìn)行聲明。Java中可以一次性聲明多個(gè)變量和方法,聲明必須以“;”結(jié)尾,同時(shí)這些聲明在Java中必須是合法的。

聲明的JSP語(yǔ)法為:<%!declaration;[declaration;]+...%>例如:<%!inti=0;%><%!inta,b,c;%><%!Circlea=newCircle(2.0);%>階段1聲明

階段2表達(dá)式

表達(dá)式元素是一個(gè)在腳本語(yǔ)言中被定義的表達(dá)式,在運(yùn)行后被自動(dòng)轉(zhuǎn)化為字符串,然后插入到這個(gè)表達(dá)式在JSP文件的位置顯示。JSP表達(dá)式的語(yǔ)法為:<%=expression%>例如:<fontcolor=”blue”><%=map.size()%></font><b><%=numguess.getHint()%></b>階段3代碼段

一個(gè)scriptlet能夠包含多個(gè)JSP語(yǔ)句、方法或變量,當(dāng)JSP收到客戶(hù)的請(qǐng)求時(shí),scriptlet就開(kāi)始執(zhí)行,如果Scriptlet有顯示的內(nèi)容,這些顯示的內(nèi)容就被存儲(chǔ)在out對(duì)象中。任務(wù)2JSP的運(yùn)算符與變量

階段1運(yùn)算符階段2變量階段3變量類(lèi)型的轉(zhuǎn)換階段1操作符

操作符一般分為賦值操作符、算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符和位運(yùn)算符。1.賦值運(yùn)算符賦值運(yùn)算符用于把一個(gè)數(shù)值賦予一個(gè)變量,賦值操作符的說(shuō)明如下表所示。運(yùn)算符描述等價(jià)表達(dá)式用法舉例=將右邊的值賦給左邊的變量x=2;+=對(duì)左邊的變量進(jìn)行累加x=x+yx+=2;-=對(duì)左邊的變量進(jìn)行累減x=x-yx-=2;*=對(duì)左邊的變量進(jìn)行累乘x=x*yx*=2;/=對(duì)左邊的變量進(jìn)行累除x=x/yx/=2;%=對(duì)左邊的變量進(jìn)行累取模x=x%2x%=22.算術(shù)運(yùn)算符

算術(shù)運(yùn)算符用于對(duì)整型數(shù)或者浮點(diǎn)數(shù)進(jìn)行運(yùn)算,包括一元運(yùn)算符和二元運(yùn)算符,如下表所示。2.算術(shù)運(yùn)算符運(yùn)算符分類(lèi)描述用法舉例+一元運(yùn)算符正值+3.2-一元運(yùn)算符負(fù)值-5++一元運(yùn)算符加1i++,++i--一元運(yùn)算符減1i--,--i+二元運(yùn)算符加a+2-二元運(yùn)算符減a-1*二元運(yùn)算符乘a*3/二元運(yùn)算符除a/2%二元運(yùn)算符取模a%23.關(guān)系運(yùn)算符關(guān)系運(yùn)算符用來(lái)比較兩個(gè)值大小,并返回布爾類(lèi)型的值true或false。關(guān)系運(yùn)算符的說(shuō)明如下表所示。運(yùn)算符描述用法舉例>大于5>3,返回值是true>=大于等于5>=3,返回值是true<小于5<3,返回值是false<=小于等于5<=3,返回值是false==等于2==2,返回值是true!=不等于5!=3,返回值是true4.邏輯運(yùn)算符邏輯運(yùn)算符用于進(jìn)行布爾型數(shù)據(jù)的邏輯運(yùn)算。邏輯運(yùn)算符的說(shuō)明如下表所示。運(yùn)算符描述用法舉例&&與true&&true,返回值為true||或True||false,返回值為true!非!true,返回值為false&與與&&使用一致|或與||使用一致^異或true^false,返回值為true,true^true,返回值為false5.位運(yùn)算符位運(yùn)算符用來(lái)對(duì)二進(jìn)制位進(jìn)行操作,位運(yùn)算符的說(shuō)明如下表所示。運(yùn)算符描述說(shuō)明用法舉例&與1&1=1,1&0=0,0&1=0,0&0=0a&b|或1|1=1,1|0=0,0|1=1,0|0=0a|b^異或1^1=0,1^0=1,0^1=1,0^0=0a^b~非~1=0,~0=1~a<<左移a<<1>>右移a>>1>>>無(wú)符號(hào)右移a>>>1階段2變量

1.變量的類(lèi)型2.變量的定義1.變量的類(lèi)型JSP中的變量必須先定義后使用,定義時(shí)需要指定該變量的名稱(chēng)和它的數(shù)據(jù)類(lèi)型。變量的基本類(lèi)型包括整數(shù)、浮點(diǎn)數(shù)、字符和布爾值等數(shù)據(jù)類(lèi)型。JSP變量的基本類(lèi)型如下表所示。1.變量的類(lèi)型類(lèi)型描述取值范圍byte8位整數(shù)(8bit)-128~127short16位整數(shù)(16bit)-32768~32767int32位整數(shù)(32bit)-2147483648~2147483647long64位整數(shù)(64bit)-9223372036854775808~9223372036854775807float32位單精度浮點(diǎn)小數(shù)3.402823e+38~1.401298e-45double64位雙精度浮點(diǎn)小數(shù)1.797693e+308~4.9000000e-324boolean布爾值true、falsechar16位Unicode單字符0~655352.變量的定義創(chuàng)建變量的語(yǔ)法如下:typename其中,type定義變量類(lèi)型,name定義變量的名字。變量的名字必須符合如下幾點(diǎn):(1)變量必須以字母或者_(dá)、$作為首字母,數(shù)字不能作為變量的開(kāi)頭。(2)變量區(qū)分大小寫(xiě)。(3)變量中間不允許有空格。(4)變量不能使用Java的操作符和系統(tǒng)預(yù)定義標(biāo)識(shí)符。其中,系統(tǒng)預(yù)定義標(biāo)識(shí)符如下表所示。2.變量的定義abstractcontinuefornewswitchbooleandefaultgotonullsynchronizedbreakdoifpackagethisbytedoubelimplementsprivateThreadsafeByvalueelseimportprotectedthrowcaseextendsInstanceofpublictransientcatchfalseintreturntruecharfinalinterfaceshorttryclassfinallylongstaticvoidconstfloatnativesuperwhile階段3變量類(lèi)型的轉(zhuǎn)換

1.數(shù)字類(lèi)型之間的轉(zhuǎn)換2.數(shù)字類(lèi)型與字符串類(lèi)型的轉(zhuǎn)換3.數(shù)字類(lèi)型與日期類(lèi)型的轉(zhuǎn)換4.字符串類(lèi)型與日期類(lèi)型的相互轉(zhuǎn)換1.?dāng)?shù)字類(lèi)型之間的轉(zhuǎn)換在賦值運(yùn)算符兩側(cè)的類(lèi)型不一致的情況下,需要進(jìn)行自動(dòng)或強(qiáng)制類(lèi)型轉(zhuǎn)換。數(shù)字類(lèi)型的數(shù)據(jù)轉(zhuǎn)換可以分為兩種,當(dāng)從較短的數(shù)據(jù)類(lèi)型向較長(zhǎng)的數(shù)據(jù)類(lèi)型轉(zhuǎn)換時(shí),Java可以自動(dòng)進(jìn)行轉(zhuǎn)換;當(dāng)從較長(zhǎng)的數(shù)據(jù)類(lèi)型轉(zhuǎn)換為較短的數(shù)據(jù)類(lèi)型時(shí),就要做強(qiáng)制類(lèi)型轉(zhuǎn)換。強(qiáng)制轉(zhuǎn)換規(guī)則如下表所示。1.?dāng)?shù)字類(lèi)型之間的轉(zhuǎn)換數(shù)據(jù)類(lèi)型byteshortintlongfloatdouble轉(zhuǎn)換方法(byte)(short)(int)(long)(float)(double)2.?dāng)?shù)字類(lèi)型與字符串類(lèi)型的轉(zhuǎn)換字符串類(lèi)型與數(shù)字類(lèi)型轉(zhuǎn)換方法如下表所示。其他轉(zhuǎn)換為字符串字符串轉(zhuǎn)換為其他字節(jié)型變量Byte.toString(byte)Byte.parseByte(string)短整型變量Short.toString(short)Short.parseShort(string)整數(shù)型變量Integer.toString(int)Integer.parseInt(string)長(zhǎng)整形變量Long.toString(long)Long.parseLong(string)單精度浮點(diǎn)數(shù)變量Float.toString(float)Float.parseFloat(string)雙精度浮點(diǎn)數(shù)變量Double.toString(double)Double.parseDouble(string)3.?dāng)?shù)字類(lèi)型與日期類(lèi)型的轉(zhuǎn)換數(shù)字類(lèi)型與日期類(lèi)型之間的轉(zhuǎn)換如下表所示。轉(zhuǎn)換類(lèi)型方法數(shù)字類(lèi)型轉(zhuǎn)換為日期類(lèi)型Calendar.set(intyear,intmonth,intdate)Calendar.set(intyear,intmonth,intdate,inthour,intminute,intsecond)日期類(lèi)型轉(zhuǎn)換為數(shù)字類(lèi)型Calendar.get(intfield)4.字符串類(lèi)型與日期類(lèi)型的轉(zhuǎn)換字符串類(lèi)型與日期類(lèi)型的轉(zhuǎn)換如表所示。轉(zhuǎn)換類(lèi)型轉(zhuǎn)換方法字符串轉(zhuǎn)換為日期DateFormat.parse(str)日期轉(zhuǎn)換為字符串Date.toString()Calendar.toString()任務(wù)3JSP的流程控制階段1if語(yǔ)句階段2switch語(yǔ)句階段3for語(yǔ)句階段4while語(yǔ)句階段5dowhile語(yǔ)句階段1if語(yǔ)句

if語(yǔ)句根據(jù)條件式返回的“真”或“假”值,來(lái)決定接下來(lái)該如何執(zhí)行程序。語(yǔ)法一:?jiǎn)我慌袛嗾Z(yǔ)句,如果條件式為true,則執(zhí)行程序語(yǔ)句,其語(yǔ)法格式如下:if(判斷體){程序語(yǔ)句

}語(yǔ)法二:當(dāng)需要進(jìn)行多重判斷的時(shí)候,if語(yǔ)句也可以和else關(guān)鍵字結(jié)合應(yīng)用,語(yǔ)法格式如下:if(判斷體){程序語(yǔ)句1}else{程序語(yǔ)句2

}階段1if語(yǔ)句

If語(yǔ)句的執(zhí)行流程如下圖所示。階段1if語(yǔ)句

階段2switch語(yǔ)句

switch語(yǔ)句又稱(chēng)為多分支選擇語(yǔ)句,處理多種分支情況時(shí),用switch語(yǔ)句代替if語(yǔ)句可以簡(jiǎn)化程序,使程序結(jié)構(gòu)清晰明了,可讀性增強(qiáng)。swith語(yǔ)句的語(yǔ)法格式如下:switch(變量){case變量值:程序語(yǔ)句break;case變量值:程序語(yǔ)句break;default:程序語(yǔ)句}階段2switch語(yǔ)句

階段3for語(yǔ)句

for循環(huán)語(yǔ)句非常靈活,它不僅可以用于循環(huán)次數(shù)已經(jīng)確定的情況,而且可以用于循環(huán)次數(shù)不確定的循環(huán)中。for語(yǔ)句的語(yǔ)法格式如下所示:for(循環(huán)體){程序語(yǔ)句}for語(yǔ)句的執(zhí)行流程如下圖所示。階段3for語(yǔ)句

階段4while語(yǔ)句

while語(yǔ)句用于當(dāng)循環(huán)條件成立時(shí),重復(fù)執(zhí)行循環(huán)體部分。無(wú)法確定循環(huán)次數(shù)時(shí),只能使用while循環(huán)或dowhile循環(huán)。while語(yǔ)句的語(yǔ)法格式如下:while(判斷體){程序語(yǔ)句}階段5dowhile語(yǔ)句

do…while循環(huán)語(yǔ)句的功能是首先執(zhí)行循環(huán)體部分,然后進(jìn)行循環(huán)條件的判斷,當(dāng)循環(huán)條件為真時(shí),繼續(xù)下次循環(huán),否則循環(huán)結(jié)束。dowhile語(yǔ)句的語(yǔ)法格式如下:do{程序語(yǔ)句}while(判斷體);Dowhile語(yǔ)句的執(zhí)行流程如右圖所示。階段5dowhile語(yǔ)句

任務(wù)4JSP的字符和字符串處理階段1轉(zhuǎn)義字符階段2字符串類(lèi)階段1轉(zhuǎn)義字符

除了常見(jiàn)的ASCII字符外,JSP還經(jīng)常會(huì)用到轉(zhuǎn)義字符。轉(zhuǎn)義字符的關(guān)鍵字是“\”,JSP中常用的轉(zhuǎn)義字符如下表所示。階段1轉(zhuǎn)義字符

轉(zhuǎn)義字符含義\b\u0008空格\t\u0009水平制表符\n\u000a換行\(zhòng)f\u000c表格符\r\u000d回車(chē)\’’\u0022雙引號(hào)\’\u0027單引號(hào)\\\u005c反斜杠階段2字符串類(lèi)

1.字符串的創(chuàng)建2.字符串的比較3.獲得字符的長(zhǎng)度與大小寫(xiě)轉(zhuǎn)換4.獲取部分字符串5.查找或替換字符和字符串6.其他字符串操作任務(wù)5JSP的異常處理一個(gè)功能完善的程序需要考慮異常處理,JSP提供了專(zhuān)門(mén)的異常處理方法。異常處理的語(yǔ)法如下:try{程序語(yǔ)句}catch(exceptiontypename){程序語(yǔ)句}finally{程序語(yǔ)句}該語(yǔ)法使用中需要注意以下幾點(diǎn):(1)try和catch關(guān)鍵字不可缺少,當(dāng)try部分的代碼運(yùn)行遇到異常時(shí),便執(zhí)行catch部分的代碼。(2)finally關(guān)鍵字是可選項(xiàng),它用于無(wú)論程序是否產(chǎn)生異常,都要執(zhí)行finally部分的代碼。(3)exceptiontype定義異常類(lèi)。任務(wù)5JSP的異常處理第3章JSP的標(biāo)識(shí)和HTML應(yīng)用JSP的腳本標(biāo)識(shí)任務(wù)1JSP的指令標(biāo)識(shí)任務(wù)2JSP的動(dòng)作標(biāo)識(shí)

任務(wù)3JSP的HTML應(yīng)用任務(wù)4任務(wù)1JSP的腳本標(biāo)識(shí)階段1聲明標(biāo)識(shí)階段2表達(dá)式標(biāo)識(shí)階段3幫助標(biāo)識(shí)階段4程序標(biāo)識(shí)階段1聲明標(biāo)識(shí)

1.聲明標(biāo)識(shí)的語(yǔ)法2.聲明標(biāo)識(shí)的實(shí)例階段2表達(dá)式標(biāo)識(shí)

1.表達(dá)式標(biāo)識(shí)的語(yǔ)法2.表達(dá)式標(biāo)識(shí)的實(shí)例階段3幫助標(biāo)識(shí)

1.幫助標(biāo)識(shí)的語(yǔ)法2.幫助標(biāo)識(shí)的實(shí)例階段4程序標(biāo)識(shí)

1.程序標(biāo)識(shí)的語(yǔ)法2.程序標(biāo)識(shí)的實(shí)例任務(wù)2

JSP的指示標(biāo)識(shí)階段1page指令階段2include指令階段3taglib標(biāo)識(shí)階段1page指令

page標(biāo)識(shí)的作用是定義JSP文件的屬性,語(yǔ)法如下所示:<%@page[language=”java”][extends=”package.class”][import=”{package.class|.*},...”][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”]%>階段1page指令

Page指令的應(yīng)用需要注意以下幾點(diǎn):(1)language屬性的作用是定義JSP的應(yīng)用語(yǔ)言,如language=”java”。(2)extends屬性定義了JSP文件的繼承類(lèi),該JSP文件便可以應(yīng)用繼承類(lèi)的屬性和方法。階段1page指令

(3)import屬性定義了JSP文件的引入類(lèi)包,可以自己定義想要import的packages。例如:<%@pageimport=”java.util.*”%>import屬性是這些屬性中唯一一個(gè)可以在一個(gè)JSP中出現(xiàn)多次的。階段1page指令

(4)session屬性用來(lái)設(shè)定是否需要應(yīng)用session對(duì)象。該屬性有兩個(gè)值,分別是true和false,默認(rèn)值是true。(5)buffer屬性,該屬性的默認(rèn)值是8KB,該屬性定義JSP文件在服務(wù)器中的緩存值,如果該屬性的值很大,那么客戶(hù)端等待的時(shí)間可能很長(zhǎng)。階段1page指令

(6)autoFlush屬性用來(lái)設(shè)置當(dāng)緩存不足時(shí),服務(wù)器是否將結(jié)果輸出給客戶(hù)端。該屬性有兩個(gè)值,分別是true和false,默認(rèn)值是true。(7)isThreadSafe屬性的作用是定義JSP文件是否可以被多個(gè)用戶(hù)同時(shí)使用。該屬性有兩個(gè)值,分別是true和false,默認(rèn)值是true。階段1page指令

(8)info屬性,該屬性定義JSP的文本信息。(9)errorPage屬性,該屬性定義程序出現(xiàn)異常時(shí)的JSP處理文件。(10)isErrorPage屬性定義JSP文件是否為異常處理的JSP。該屬性有兩個(gè)值,分別是true和false,默認(rèn)值是false。該屬性如果值是true,那么便可以使用exception內(nèi)建對(duì)象。階段1page指令

(11)contentType屬性的作用是定義JSP的MIME類(lèi)型和顯示字符集。(12)pageEncoding屬性的作用是定義JSP文件編譯時(shí)使用的字符集。階段1page指令

階段2include指令

include指令的作用是在JSP文件內(nèi)包含其他文件,語(yǔ)法如下所示:<%@includefile=”relativeURL”%>要插入的文件是在頁(yè)面被轉(zhuǎn)換時(shí)插入的,因此,如果導(dǎo)航條改變了,就需要將所有指向它的頁(yè)面全部重新編譯一次。階段3taglib標(biāo)識(shí)

taglib標(biāo)識(shí)的作用是引入自定義的標(biāo)記庫(kù),其語(yǔ)法格式如下:<%@tagliburi=”tablibLibraryURL”|tagdir=”tagDir”prefix=”tagPrefix”%>taglib各個(gè)參數(shù)的含義如下:(1)uri屬性用來(lái)定義標(biāo)識(shí)設(shè)置文件(.tld)。(2)tagdir屬性用來(lái)定義標(biāo)識(shí)設(shè)置文件的路徑。(3)prefix屬性用來(lái)定義標(biāo)識(shí)的前綴,特定的字符串不能作為標(biāo)識(shí)的前綴,如a、html、form、jsp、jspx,java、javax、servlet、sun、sunw。階段3taglib標(biāo)識(shí)

任務(wù)3JSP的動(dòng)作標(biāo)識(shí)階段1jsp:include動(dòng)作階段2jsp:useBean動(dòng)作階段3jsp:forward動(dòng)作階段4jsp:plugin動(dòng)作階段5jsp:setProperty動(dòng)作階段6jsp:getProperty動(dòng)作階段1jsp:include動(dòng)作

jsp:include用于在JSP文件內(nèi)顯示其他文件,其語(yǔ)法格式如下:<jsp:includepage=”relativeURL”flush=”true”/>

各個(gè)參數(shù)的解釋如下:(1)page屬性定義文件的相對(duì)路徑和文件名。(2)flush屬性定義在被包括文件處理之前JSP的緩存是否被重新更新,默認(rèn)值是false。(3)jsp:param標(biāo)識(shí)的作用向被包括文件傳入?yún)?shù),可以加入多個(gè)jsp:param標(biāo)識(shí)。階段1jsp:include動(dòng)作

階段2jsp:useBean動(dòng)作

jsp:useBean的作用是引入JavaBean的應(yīng)用,這個(gè)功能非常有用,因?yàn)樗瓤梢园l(fā)揮Java組件的優(yōu)勢(shì),同時(shí)也避免了損失JSP區(qū)別于Servlet的方便性。jsp:useBean標(biāo)識(shí)的語(yǔ)法格式如下:<jsp:useBean

id=”beanName”

scope=”page|request|session|application|”class=”package.class”

type=”package.class”

beanName=”{package.class|<%=expression%>}

type=”package.class””>action

for

bean

</jsp:useBean>其中各個(gè)參數(shù)解釋如下:(1)id=”beanName”:定義生成bean組件的名字。(2)scope=”page|request|session|application”:定義bean的活動(dòng)范圍,bean只有在它定義的范圍里才能使用,在它的活動(dòng)范圍外將無(wú)法訪問(wèn)到它。階段2jsp:useBean動(dòng)作

(3)class屬性的作用是定義JavaBean所在目錄和類(lèi)名。(4)beanName屬性的作用是定義JavaBean的名字,該屬性不經(jīng)常使用,設(shè)置該屬性后,服務(wù)器便會(huì)執(zhí)行java.beans.Beans類(lèi)的instantiate方法創(chuàng)建JavaBean的名字。(5)Type定義JavaBean的類(lèi)型,如果不定義該屬性,JavaBean默認(rèn)的類(lèi)型就是其本身的類(lèi)型。階段2jsp:useBean動(dòng)作

階段3jsp:forward動(dòng)作

jsp:forward動(dòng)作把請(qǐng)求轉(zhuǎn)到另外的頁(yè)面。jsp:forward標(biāo)記只有一個(gè)屬性page。page屬性包含的是一個(gè)相對(duì)URL。page的值既可以直接給出,又可以在請(qǐng)求的時(shí)候動(dòng)態(tài)計(jì)算,如下面的例子所示:<jsp:forwardpage=”/utils/errorReporter.jsp”/><jsp:forwardpage=”<%=someJavaExpression%>”/>階段4jsp:plugin動(dòng)作

jsp:plugin動(dòng)作用來(lái)根據(jù)瀏覽器的類(lèi)型,插入通過(guò)Java插件在JSP文件內(nèi)顯示Applet。階段5jsp:setProperty動(dòng)作

jsp:setProperty用來(lái)設(shè)置已經(jīng)實(shí)例化的Bean對(duì)象的屬性,有兩種用法。第一種用法是在jsp:useBean元素的外面(后面)使用jsp:setProperty;第二種用法是把jsp:setProperty放入jsp:useBean元素的內(nèi)部。階段6jsp:getProperty動(dòng)作

jsp:getProperty動(dòng)作的作用是取得JavaBean的屬性值,轉(zhuǎn)換成字符串,然后輸出。jsp:getProperty有兩個(gè)必需的屬性參數(shù),其解釋如下。(1)name屬性定義JavaBean的名字,該標(biāo)識(shí)由jsp:useBean的id屬性定義。(2)property屬性定義表示要提取哪個(gè)屬性的值。任務(wù)4JSP的HTML應(yīng)用階段1表單標(biāo)識(shí)階段2按鈕標(biāo)識(shí)階段3文本框標(biāo)識(shí)階段4編輯框標(biāo)識(shí)階段5列表標(biāo)識(shí)階段6單選框標(biāo)識(shí)階段7復(fù)選框標(biāo)識(shí)階段1表單標(biāo)識(shí)

表單標(biāo)識(shí)用來(lái)使用戶(hù)可以通過(guò)JSP文件上傳數(shù)據(jù)。表單標(biāo)識(shí)的語(yǔ)法格式如下:<formname=”elementIdentifier”action=”URL”method=”get”|“post”target=”windowOrFrameName”enctype=”MIMEType”></form>其中各個(gè)參數(shù)的含義如下:(1)name屬性定義表單的名字。(2)action屬性定義處理上傳數(shù)據(jù)的程序名字。(3)method屬性定義數(shù)據(jù)上傳的方法。get方法是默認(rèn)方法,get方法應(yīng)用在地址加入?yún)?shù)的方式向服務(wù)器上傳數(shù)據(jù)。階段1表單標(biāo)識(shí)

(4)target屬性定義打開(kāi)窗口的方法,不定義target屬性,表示在原來(lái)窗口打開(kāi)程序文件。(5)enctype屬性定義表單上傳數(shù)據(jù)的類(lèi)型。階段1表單標(biāo)識(shí)

階段2按鈕標(biāo)識(shí)

按鈕標(biāo)識(shí)的作用是定義一個(gè)可以實(shí)現(xiàn)不同功能的按鈕,其語(yǔ)法格式如下:<inputname=”elementIdentifier”type=”elementType”value=”text“disabled=”true|false”>其中各個(gè)參數(shù)的含義如下:(1)name屬性定義按鈕的名字。(2)type屬性定義按鈕的類(lèi)型,button表示普通按鈕、submit表示提交按鈕、reset表示重寫(xiě)按鈕。(3)value屬性定義按鈕的字符串。(4)disabled屬性定義按鈕編輯狀態(tài)。階段2按鈕標(biāo)識(shí)

階段3文本框標(biāo)識(shí)

文本框標(biāo)識(shí)的作用是用來(lái)上傳一段文字,其語(yǔ)法格式如下:<textareaname=”elementIdentifier”cols=”maxCo1Count”rows=”maxRowCount”disabled=”true|false”readonly></textarea>其中各個(gè)參數(shù)的含義如下:(1)name屬性定義文本框的名字。(2)cols屬性定義文本框的列數(shù)。(3)rows屬性定義文本框的行數(shù)。(4)disabled屬性定義文本框編輯狀態(tài)。(5)readonly屬性使文本框處于只讀狀態(tài)。階段3文本框標(biāo)識(shí)

階段4編輯框標(biāo)識(shí)

編輯框標(biāo)識(shí)的作用是編輯字符串變量,其語(yǔ)法格式如下:<inputname=”elementIdentifier“type=”elementType”size=”elementWidth”maxlength=”characterCount”value=”text”readonly>其中各個(gè)參數(shù)的含義如下:(1)name屬性定義編輯框的名字。(2)type屬性定義編輯框的類(lèi)型,text表示編輯框、password表示密碼編輯框。(3)size屬性定義編輯框的大小。(4)maxlenghth屬性定義編輯框的字符總數(shù)。(5)value屬性定義編輯框的默認(rèn)字符串。(6)readonly屬性使編輯框不可編輯。階段4編輯框標(biāo)識(shí)

階段5列表標(biāo)識(shí)

列表標(biāo)識(shí)用來(lái)提供給用戶(hù)選擇數(shù)據(jù),其語(yǔ)法格式如下:<selectname=”elementIdentifier”size=”maxHeight”multipledisabled=”true|fa1se”><optionvalue=”text”selected></option><optionvalue=”text”></option><optionvalue=”text”></option></se1ect>其中各個(gè)參數(shù)的含義如下:(1)name屬性定義列表的名字。(2)size屬性定義列表的高度,1表示下拉列表框,大于1表示列表框。(3)multiple表示列表允許選擇多條記錄。(4)disabled屬性定義列表編輯狀態(tài)。(5)option標(biāo)識(shí)定義列表的選項(xiàng),value屬性定義選項(xiàng)的上傳數(shù)值,selected屬性表示該選項(xiàng)被選擇。階段5列表標(biāo)識(shí)

階段6單選框標(biāo)識(shí)

單選框標(biāo)識(shí)的作用是提供一組單選數(shù)據(jù),其語(yǔ)法格式如下:<inputname=”elementIdentifier”type=”elemnetType”value=”text”checkeddisabled=”true|false”>其中各個(gè)參數(shù)的含義如下:(1)name屬性定義單選框的名字,相同名字的單選框表示是同一組單選框。(2)type屬性定義單選框的類(lèi)型,radio表示單選框。(3)value屬性定義單選框的上傳數(shù)值。(4)disabled屬性定義單選框編輯狀態(tài)。(5)checked屬性定義單選項(xiàng)被選擇。階段6單選框標(biāo)識(shí)

階段7復(fù)選框標(biāo)識(shí)

復(fù)選框標(biāo)識(shí)的作用是提供給用戶(hù)一組可以復(fù)選的數(shù)據(jù),其語(yǔ)法格式如下:<inputname=”e1ementIdentifier”type=”elemnetType”value=”text”checkeddisabled=”true|false”>參數(shù)的解釋如下:(1)name屬性定義復(fù)選框的名字。(2)type屬性定義復(fù)選框的類(lèi)型,checkbox表示復(fù)選框。(3)value屬性定義復(fù)選框的上傳數(shù)值。(4)disabled屬性定義復(fù)選框編輯狀態(tài)。(5)checked屬性定義復(fù)選框被選擇。階段7復(fù)選框標(biāo)識(shí)

第4章JSP的內(nèi)置對(duì)象JSP內(nèi)置對(duì)象簡(jiǎn)介任務(wù)1application對(duì)象

任務(wù)2config對(duì)象任務(wù)3exception對(duì)象任務(wù)4out對(duì)象任務(wù)5pageContext對(duì)象任務(wù)6request對(duì)象

任務(wù)7response對(duì)象任務(wù)8session對(duì)象任務(wù)9第4章JSP的內(nèi)置對(duì)象任務(wù)1JSP內(nèi)置對(duì)象簡(jiǎn)介JSP中把Java語(yǔ)言作為腳本編程語(yǔ)言,使得系統(tǒng)具有強(qiáng)大的對(duì)象處理能力。在可以創(chuàng)建Web頁(yè)面內(nèi)容的同時(shí),還使系統(tǒng)具有中間層服務(wù)器或DBMS交互的能力。然而,Java語(yǔ)言在使用接口或者類(lèi)時(shí),必須先進(jìn)行實(shí)例化,即聲明對(duì)象,這使得每使用一個(gè)類(lèi)或接口時(shí)變成了一件比較煩瑣的事情。為此,JSP提供了一些內(nèi)建對(duì)象來(lái)簡(jiǎn)化網(wǎng)頁(yè)開(kāi)發(fā)過(guò)程。JSP共有以下9種基本內(nèi)置組件:(1)request:用戶(hù)端請(qǐng)求,此請(qǐng)求會(huì)包含來(lái)自GET/POST請(qǐng)求的參數(shù)。(2)response:網(wǎng)頁(yè)傳回用戶(hù)端的回應(yīng)。(3)pageContext:網(wǎng)頁(yè)的屬性是在這里管理。(4)session:與請(qǐng)求有關(guān)的會(huì)話期。(5)applicationServlet:正在執(zhí)行的內(nèi)容。(6)out:用來(lái)傳送回應(yīng)的輸出。(7)configServlet:的構(gòu)架部件。(8)page:JSP網(wǎng)頁(yè)本身。(9)exception:針對(duì)錯(cuò)誤網(wǎng)頁(yè),未捕捉的例外。任務(wù)1JSP內(nèi)置對(duì)象簡(jiǎn)介任務(wù)2application對(duì)象

階段1application對(duì)象的語(yǔ)法階段2application對(duì)象的實(shí)例階段1application對(duì)象的語(yǔ)法

application對(duì)象的常用方法如下。(1)getAttribute(Stringkey):獲取Application對(duì)象中含有關(guān)鍵字的對(duì)象。(2)getAttributeNames():用于獲取application對(duì)象的所有參數(shù)名字。(3)getMajorVersion():用于獲取服務(wù)器支持Servlet的主版本號(hào)。(4)getMinorVersion():用于獲取服務(wù)器支持Servlet的從版本號(hào)。(5)removeAttribute(java.1ang.Stiingname):根據(jù)名字刪除application對(duì)象的參數(shù)。(6)setAttribute(Stringkey,Objectobj):將參數(shù)Object指定的對(duì)象obj添加到application對(duì)象中,并為添加的對(duì)象指定一個(gè)索引關(guān)鍵字。階段1application對(duì)象的語(yǔ)法

任務(wù)3config對(duì)象

階段1config對(duì)象的語(yǔ)法階段2config對(duì)象的實(shí)例階段1config對(duì)象的語(yǔ)法

config對(duì)象的常用方法如下。(1)getInitParameter(java.1ang.Stringname):用于獲取初始化參數(shù)值,其是根據(jù)名字指定的。(2)getInitParameterNames():用于獲取初始化參數(shù)的名字集合。任務(wù)4exception對(duì)象

階段1exception對(duì)象的語(yǔ)法階段2exception對(duì)象的實(shí)例階段1exception對(duì)象的語(yǔ)法

exception對(duì)象的常用方法如下。(1)getLocalizedMessage():用于獲取異常信息。(2)getMessage():用于獲取詳細(xì)的異常信息。(3)printStackTrace():用于獲取在服務(wù)端顯示的異常信息。(4)printStackTrace(PrintStreamS):用于將異常信息放入PrintStream類(lèi)內(nèi)。(5)toString():用于顯示異常的類(lèi)和信息。任務(wù)5out對(duì)象

階段1out對(duì)象的語(yǔ)法階段2out對(duì)象的實(shí)例階段1out對(duì)象的語(yǔ)法

out對(duì)象的常用方法如下。(1)clear():清除緩存的內(nèi)容。(2)flush():更新緩存的內(nèi)容。(3)newLine():創(chuàng)建新的一行。(4)print():顯示數(shù)據(jù)的內(nèi)容。(5)println():分行顯示數(shù)據(jù)的內(nèi)容。任務(wù)6pageContext對(duì)象

階段1pageContext對(duì)象的語(yǔ)法階段2pageContext對(duì)象的實(shí)例階段1pageContext對(duì)象的語(yǔ)法

pageContext對(duì)象的常用方法如下。(1)forward(java.1ang.StringrelativeUrlPath):轉(zhuǎn)移客戶(hù)的請(qǐng)求到另一個(gè)JSP文件中。(2)getAttribute(java.1ang.Stringname,intscope):用于獲取指定名字和作用范圍的參數(shù)值。(3)getAttributeNameslnScope(intscope):用于獲取某個(gè)作用范圍的參數(shù)名字集合。(4)getException():用于獲取exception對(duì)象。(5)getOut():用于獲取out對(duì)象。(6)getPage():用于獲取page對(duì)象。(7)getRequest():用于獲取request對(duì)象。(8)getResponse():用于獲取response對(duì)象。(9)getSerVletContext():用于獲取application對(duì)象。(10)getSession():用于獲取session對(duì)象。階段1application對(duì)象的語(yǔ)法

(11)include(java.1ang.StringrelativeUrlPath):用于在JSP文件內(nèi)包含其他文件。(12)removeAttribute(java.1ang.Stringname,intscope):用于刪除指定名字和作用范圍的參數(shù)。(13)setAttribute(java.lang.Stringname,java.1ang.ObjectO,intscope):用于創(chuàng)建指定名稱(chēng)和作用范圍的參數(shù)。階段1application對(duì)象的語(yǔ)法

任務(wù)7request對(duì)象

階段1request對(duì)象的語(yǔ)法階段2request對(duì)象的實(shí)例階段1request對(duì)象的語(yǔ)法

request對(duì)象的常用方法如下。(1)getLocale():用于獲得本地的國(guó)家和語(yǔ)言。(2)getAttribute(Stringname):用于返回由name指定的屬性值,如果指定的屬性值不存在,則返回一個(gè)null值。(3)getAttributeNames():用于返回request對(duì)象的所有屬性的名稱(chēng)集合。(4)getCharacterEncoding():用于返回一個(gè)String,它包含請(qǐng)求正文中所使用的字符編碼。(5)getHeader(Stringname):主要用于獲得HTTP協(xié)議定義的文本頭信息。(6)getHeaders(Stringname):用于返回指定名字的requestHeader的所有值,其結(jié)果是一個(gè)枚舉的實(shí)例。(7)getHeaderNames():用于返回所有requestHeader的名字,其結(jié)果是一個(gè)枚舉的實(shí)例。階段1request對(duì)象的語(yǔ)法

(8)getMethod():用于獲得客戶(hù)端向服務(wù)器端傳送數(shù)據(jù)的參數(shù)方法,主要有兩種,分別是get()和post()。(9)getParameter(Stringname):用于獲取客戶(hù)端傳送給服務(wù)器端的參數(shù)。主要由name指定,通常是表單中的參數(shù)。(10)getParameterNames():用于獲取客戶(hù)端傳送的所有參數(shù)的名字集合。階段1request對(duì)象的語(yǔ)法

(11)getParameterValues(Stringname):用于獲得指定參數(shù)的所有值,其由name指定。(12)getParameterMap():用于獲得指定參數(shù)的Map集合,該集合包括參數(shù)名字和參數(shù)值。(13)getRemoteAddr():用于獲得客戶(hù)端的網(wǎng)絡(luò)地址。(14)getServerName():用于獲得服務(wù)器端的名字。(15)getServletPath():用于獲得JSP文件相對(duì)于根地址的地址。階段1request對(duì)象的語(yǔ)法

(16)setCharacterEncoding(Stringenv):用于設(shè)置傳人參數(shù)的字符集。GBK表示中文字符集,如果客戶(hù)端傳送的參數(shù)是中文,但不設(shè)置中文字符集,參數(shù)值將出現(xiàn)亂碼。(17)getInputStream():用于返回請(qǐng)求的輸入流,用來(lái)顯示請(qǐng)求中的數(shù)據(jù)。(18)getProtocol():用于返回客戶(hù)端向服務(wù)器端傳送數(shù)據(jù)所依據(jù)的協(xié)議名稱(chēng)。階段1request對(duì)象的語(yǔ)法

(19)getQueryString():用于獲得查詢(xún)字符串,該字符串是客戶(hù)端以get()方法傳送給服務(wù)器端的。(20)getReader():用于返回一個(gè)BufferReader對(duì)象,它可被用來(lái)以字符數(shù)據(jù)的形式讀取請(qǐng)求的正文。(21)getRequestURI():該方法主要用于獲取發(fā)出請(qǐng)求字符串的客戶(hù)端地址。階段1request對(duì)象的語(yǔ)法

任務(wù)8response對(duì)象

階段1response對(duì)象的語(yǔ)法階段2response對(duì)象的實(shí)例階段1response對(duì)象的語(yǔ)法

response對(duì)象的常用方法如下。(1)addCookie(Cookiecookie):添加Cookie的方法。(2)sendRedirect(java.lang.Stringlocation):重新定向客戶(hù)端的請(qǐng)求。(3)setBufferSize(intsize):設(shè)置緩存的大小。(4)setContentType(java.lang.Stringtype):設(shè)置客戶(hù)端的編碼機(jī)制。(5)setLocale(java.util.Localeloc):設(shè)置本地的國(guó)家和語(yǔ)言。(6)getWriter():獲取內(nèi)容輸出器。任務(wù)9session對(duì)象

階段1session對(duì)象的語(yǔ)法階段2session對(duì)象的實(shí)例階段1session對(duì)象的語(yǔ)法

session對(duì)象的常用方法如下。(1)getAttribute(java.lang.Stringname):用于獲取session的參數(shù)值,根據(jù)名字指定。(2)getAttributeNames():用于獲取session的所有參數(shù)名字。(3)getCreationTime():用于獲取session創(chuàng)建的時(shí)間,即客戶(hù)端訪問(wèn)服務(wù)器的時(shí)間。(4)getId():用于獲取客戶(hù)端在服務(wù)器的唯一標(biāo)識(shí)。(5)getLastAccessedTime():用于獲取客戶(hù)端最后一次訪問(wèn)服務(wù)器的時(shí)間。(6)getMaxInactiveInterval():用于獲取客戶(hù)端停止訪問(wèn)后在服務(wù)器的保存時(shí)間。(7)isNew():用于判斷服務(wù)器是否是第一次被客戶(hù)端訪問(wèn)。階段1session對(duì)象的語(yǔ)法

(8)removeAttribute(java.lang.Stringname):用于刪除session的參數(shù)。(9)setAttribute(java.lang.Stringname,java.lang.Objectvalue):用于設(shè)置session的參數(shù)。(10)setMaxlnactiveInterval(intinterval):用于設(shè)置客戶(hù)端停止訪問(wèn)后在服務(wù)器的保存時(shí)間。階段1session對(duì)象的語(yǔ)法

第5章JavaBean技術(shù)JavaBeans概述任務(wù)1JavaBeans的屬性

任務(wù)2JavaBeans的事件

任務(wù)3JavaBeans的使用任務(wù)4JavaBeans應(yīng)用實(shí)例任務(wù)5任務(wù)1JavaBeans概述階段1JavaBeans簡(jiǎn)介階段2JavaBeans的分類(lèi)階段3JavaBeans的優(yōu)點(diǎn)階段1JavaBeans簡(jiǎn)介

JavaBeans事實(shí)上有三層含義。首先,JavaBeans是一種規(guī)范,一種在Java(包括JSP)中使用可重復(fù)使用的Java組件的技術(shù)規(guī)范。其次,JavaBeans是一個(gè)Java的類(lèi),一般來(lái)說(shuō),這樣的Java類(lèi)將對(duì)應(yīng)于一個(gè)獨(dú)立的.java文件,在絕大多數(shù)情況下,這應(yīng)該是一個(gè)public類(lèi)型的類(lèi)。最后,當(dāng)JavaBeans這樣的一個(gè)Java類(lèi)在具體的Java程序中被實(shí)例化之后,有時(shí)也會(huì)將這樣的一個(gè)JavaBeans的實(shí)例稱(chēng)為JavaBeans。一般來(lái)說(shuō),JavaBeans可以表示為簡(jiǎn)單的GUI組件,可以是按鈕組件、游標(biāo)、菜單等,這些簡(jiǎn)單的JavaBeans組件提供了告訴用戶(hù)什么是JavaBeans的直觀方法,但也可以編寫(xiě)一些不可見(jiàn)的JavaBeans,用于接受事件和在幕后工作,例如訪問(wèn)數(shù)據(jù)庫(kù),執(zhí)行查詢(xún)操作的JavaBeans,它們?cè)谶\(yùn)行時(shí)不需要任何可視的界面。階段1JavaBeans簡(jiǎn)介

階段2JavaBeans的分類(lèi)

JavaBean按功能可分為可視化JavaBean和不可視化JavaBean兩類(lèi)??梢暬疛avaBean就是具有GUI圖形用戶(hù)界面的JavaBean;不可視JavaBean就是沒(méi)有GUI圖形用戶(hù)界面的JavaBean,最終對(duì)用戶(hù)是不可見(jiàn)的,它更多地是被應(yīng)用到JSP中。階段3JavaBeans的優(yōu)點(diǎn)

JavaBean的最大優(yōu)點(diǎn)就在于它可以提高代碼的重用性,正如在開(kāi)發(fā)一個(gè)商品信息顯示界面,由于商品信息存放在數(shù)據(jù)庫(kù)指定表中,此時(shí)需要執(zhí)行連接數(shù)據(jù)庫(kù)、查詢(xún)數(shù)據(jù)庫(kù)、顯示數(shù)據(jù)操作,如果將這些數(shù)據(jù)庫(kù)操作代碼都放入JSP頁(yè)面中,代碼復(fù)雜度可以想象。JavaBean的優(yōu)點(diǎn)如下。(1)提高代碼的可復(fù)用性:對(duì)于通用的事務(wù)處理邏輯,數(shù)據(jù)庫(kù)操作等都可以封裝在JavaBean中,通過(guò)調(diào)用JavaBean的屬性和方法可快速進(jìn)行程序設(shè)計(jì)。(2)程序易于開(kāi)發(fā)維護(hù):實(shí)現(xiàn)邏輯的封裝,使事務(wù)處理和顯示互不干擾。(3)支持分布式運(yùn)用:多用JavaBean,盡量減少java代碼和HTML的混編。階段3JavaBeans的優(yōu)點(diǎn)

任務(wù)2JavaBeans的屬性

階段1Simple屬性階段2Indexed屬性階段3Bound屬性階段4Constrained屬性階段1Simple屬性

一個(gè)Simple屬性表示一個(gè)伴隨有一對(duì)get/set方法的變量。屬性名與和該屬性相關(guān)的get/set方法名對(duì)應(yīng)。例如:如果有setX和getX方法,則暗指有一個(gè)名為“X”的屬性。如果有一個(gè)方法名為isX,則通常暗指“X”是一個(gè)布爾屬性(即X的值為true或false)。階段2Indexed屬性

一個(gè)Indexed屬性表示一個(gè)數(shù)組值。使用與該屬性對(duì)應(yīng)的set/get方法可取得數(shù)組中的數(shù)值。該屬性也可一次設(shè)置或取得整個(gè)數(shù)組的值。階段3Bound屬性

一個(gè)Bound屬性是指當(dāng)該種屬性的值發(fā)生變化時(shí),要通知其他的對(duì)象。每次屬性值改變時(shí),這種屬性就點(diǎn)火一個(gè)PropertyChange事件。事件中封裝了屬性名、屬性的原值、屬性變化后的新值。這種事件是傳遞到其他的Beans,至于接收事件的Beans應(yīng)做什么動(dòng)作由其自己定義。階段4Constrained屬性

一個(gè)JavaBeans的constrained屬性,是指當(dāng)這個(gè)屬性的值要發(fā)生變化時(shí),與這個(gè)屬性已建立了某種連接的其他Java對(duì)象可否決屬性值的改變。Constrained屬性的監(jiān)聽(tīng)者通過(guò)拋出PropertyVetoException來(lái)阻止該屬性值的改變。一個(gè)constrained屬性有兩種監(jiān)聽(tīng)者:屬性變化監(jiān)聽(tīng)者和否決屬性改變的監(jiān)聽(tīng)者。否決屬性改變的監(jiān)聽(tīng)者在自己的對(duì)象代碼中有相應(yīng)的控制語(yǔ)句,在監(jiān)聽(tīng)到有constrained屬性要發(fā)生變化時(shí),在控制語(yǔ)句中判斷是否應(yīng)否決這個(gè)屬性值的改變。階段4Constrained屬性

總之,某個(gè)Beans的Constrained屬性值可否改變?nèi)Q于其他的Beans或者是Java對(duì)象是否允許這種改變。允許與否的條件由其他的Beans或Java對(duì)象在自己的類(lèi)中進(jìn)行定義。階段4Constrained屬性

任務(wù)3JavaBeans的事件階段1監(jiān)聽(tīng)接口階段2事件監(jiān)聽(tīng)者的注冊(cè)與注銷(xiāo)階段3自定義接口階段4JavaBeans的存儲(chǔ)階段1監(jiān)聽(tīng)接口

JavaBeans中,事件操縱方法都被定義在繼承了java.util.EventListener類(lèi)的EventListener接口中,按規(guī)定,EventListener接口的命名要以Listener結(jié)尾。任何一個(gè)類(lèi)如果想操縱在EventListener接口中定義的方法都必須以實(shí)現(xiàn)這個(gè)接口方式進(jìn)行。這個(gè)類(lèi)也就是事件監(jiān)聽(tīng)者。階段2事件監(jiān)聽(tīng)者的注冊(cè)和注銷(xiāo)

事件監(jiān)聽(tīng)者的注冊(cè)和注銷(xiāo)要使用標(biāo)準(zhǔn)的設(shè)計(jì)格式如下:publicvoidadd<ListenerType>(<ListenerType>listener);publicvoidremove<ListenerType>(<ListenerType>listener);

階段3自定義接口

1.自定義器接口2.屬性編輯器接口3.BeansInfo接口1.自定義器接口當(dāng)一個(gè)Beans有了自己的自定義器時(shí),在構(gòu)造工具內(nèi)就可展現(xiàn)出自己的屬性表。在定義自定義器時(shí)必須要實(shí)現(xiàn)java.Beanss.Customizer接口。2.屬性編輯器接口一個(gè)JavaBeans可提供PropertyEditor類(lèi),為指定的屬性創(chuàng)建一個(gè)編輯器。這個(gè)類(lèi)必須繼承自java.Beans.PropertyEditorSupport類(lèi)。構(gòu)造工具與手寫(xiě)代碼的程序員不直接使用這個(gè)類(lèi),而是在下一小節(jié)的BeansInfo中實(shí)例化并調(diào)用這個(gè)類(lèi)。3.BeansInfo接口每個(gè)Beans類(lèi)也可能有與之相關(guān)的BeansInfo類(lèi),在其中描述了這個(gè)Beans在構(gòu)造工具內(nèi)出現(xiàn)時(shí)的外觀。BeansInfo中可定義屬性、方法、事件,顯示它們的名稱(chēng),提供簡(jiǎn)單的幫助說(shuō)明。階段4JavaBeans的存儲(chǔ)

JavaBeans組件被設(shè)計(jì)出來(lái)后,一般是以擴(kuò)展名為jar的Zip格式文件存儲(chǔ),在jar中包含與JavaBeans有關(guān)的信息,并以MANIFEST文件指定其中的哪些類(lèi)是JavaBeans。以jar文件存儲(chǔ)的JavaBeans在網(wǎng)絡(luò)中傳送時(shí)極大地減少了數(shù)據(jù)的傳輸數(shù)量,并把JavaBeans運(yùn)行時(shí)所需要的一些資源捆綁在一起。任務(wù)4JavaBeans的使用階段1引用Bean階段2獲得和修改屬性階段3JavaBeans的scope屬性階段1引用Bean

要在JSP中使用“Bean”,首先必須在JSP中設(shè)置要引用的Bean,生成Bean的一個(gè)實(shí)例??梢杂谩?lt;jsp:useBean>”標(biāo)記來(lái)完成,格式如下:<jsp:useBeanid=”Name”class=”com.testbean”scope=”application”/>。階段2獲得和修改屬性

要獲得一個(gè)JavaBean屬性值,需要使用“<jsp:getProperty>”標(biāo)記。使用這個(gè)標(biāo)記能指定將要用到的Bean名稱(chēng)(從useBean的“id”字段得到)以及想得到其值的屬性。實(shí)際的值被放在輸出中,格式如下:<jsp:getPropertyid=”Name”property=”name”/>。在JSP中,不僅可以利用<getProperty>獲取JavaBean的屬性值,還可以利用<setProperty>屬性設(shè)置JavaBean的屬性值。利用<setProperty>屬性設(shè)置JavaBean的屬性值時(shí),可以分為以下3種情況。(1)通過(guò)表達(dá)式的值或字符串設(shè)置JavaBean中的屬性值。(2)通過(guò)HTTP表單設(shè)置JavaBean中的屬性值(3)通過(guò)request參數(shù)設(shè)置JavaBean屬性值。階段2獲得和修改屬性

在JSP頁(yè)面中,通過(guò)表達(dá)式的值或字符串設(shè)置JavaBean中的屬性值時(shí),使用的<setProperty>動(dòng)作指令的語(yǔ)法格式如下:<jsp:setPropertyname=”BeanName”property=”propertyName”value=”<%expression%>”或<jsp:setPropertyname=”BeanName”property=”propertyName”value=”string”階段2獲得和修改屬性

其中,name用于指定在當(dāng)前JSP頁(yè)面使用的JavaBean的名稱(chēng);property用于指定JavaBean中的屬性名;value用于指定JavaBean中指定屬性的屬性值。最后,還要將其類(lèi)別文件放在Web服務(wù)器的一個(gè)特殊位置,這樣,Web服務(wù)器才能找到JavaBean。階段2獲得和修改屬性

階段3JavaBeans的scope屬性

Scope屬性具有4個(gè)可能的值,分別是application、session、request、page分別代表JavaBeans的4種不同的生命周期和4種不同的使用范圍。Bean只有在它定義的范圍里才能使用,在它的活動(dòng)范圍外將無(wú)法訪問(wèn)到它。JSP為它設(shè)定的范圍有以下幾個(gè)。(1)page:Bean的默認(rèn)使用范圍。(2)request:作用于任何相同請(qǐng)求的JSP文件中,直到頁(yè)面執(zhí)行完畢向客戶(hù)端發(fā)回響應(yīng)或在此之前已通過(guò)某種方式(如重定向、鏈接等方式)轉(zhuǎn)到另一個(gè)文件為止。還可通過(guò)使用request對(duì)象訪問(wèn)Bean,如

溫馨提示

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

評(píng)論

0/150

提交評(píng)論