日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
淺談JSP語(yǔ)法的幾點(diǎn)知識(shí)

1.JSP指令

10多年的蕭山網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)整合營(yíng)銷(xiāo)推廣的優(yōu)勢(shì)是能夠根據(jù)用戶(hù)設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整蕭山建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“蕭山網(wǎng)站設(shè)計(jì)”,“蕭山網(wǎng)站推廣”以來(lái),每個(gè)客戶(hù)項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

使用JSP 指令(在<%@ 和 %>內(nèi)的)來(lái)指定所使用的腳本語(yǔ)言、Servlet 實(shí)現(xiàn)的接口、Servlet 擴(kuò)展的類(lèi)、Servlet 導(dǎo)入的軟件包。JSP 指令的一般語(yǔ)法形式為:<%@ 指令名 ="值" %>。其中有效的指令名為:

(1) language:文件中所使用的腳本語(yǔ)言。此時(shí)對(duì)于 Java 程序設(shè)計(jì)語(yǔ)言來(lái)說(shuō),僅Java 為有效值和缺省值。該指令作用于整個(gè)文件。當(dāng)多次使用該指令時(shí),只有***次使用是有效的。示例如下:<%@ language ="java" %>。

(2) Method:由嵌入的 Java 代碼(scriptlet)生成的方法的名稱(chēng)。生成的代碼會(huì)成為指定方法名的主體。缺省的方法是service。當(dāng)多次使用該指令時(shí),只有***次使用是有效的。示例如下:<%@ method ="doPost" %>。

(3) Import:Servlet 導(dǎo)入的 Java 語(yǔ)言軟件包名或類(lèi)名列表,該列表是用逗號(hào)分隔的。在 JSP 文件中,可以多次指定該指令來(lái)導(dǎo)入不同的軟件包。示例如下:<%@ import ="java.io.*,java.util.Hashtable" %>。

(4) content_type :生成的響應(yīng)的 MIME 類(lèi)型。缺省值為 text/html。當(dāng)多次使用該指令時(shí),只有***次使用是有效的。 該指令可用以指定在其中對(duì)頁(yè)面進(jìn)行編碼的字符集。示例如下:<%@ content_type ="text/html; charset=gb2312" %>。

(5) mplements:用于生成 Servlet 實(shí)現(xiàn)的 Java 語(yǔ)言接口列表,該列表是用逗號(hào)分隔的??梢栽谝粋€(gè) JSP 文件中多次使用該命令,以實(shí)現(xiàn)不同的接口。示例如下:<%@ implements = "javax.servlet.http.HttpSessionContext" %>。

(6) extends:Servlet 擴(kuò)展的 Java 語(yǔ)言類(lèi)的名稱(chēng)。該類(lèi)必須是有效的,且不能是一個(gè) Servlet 類(lèi)。該指令作用于整個(gè) JSP 文件。當(dāng)多次使用該指令時(shí),只有***次使用是有效的。示例如下:<%@ extends ="javax.servlet.http.HttpServlet" %>。

2.class-wide 變量和方法

使用 標(biāo)記來(lái)說(shuō)明 Servlet 類(lèi)的 class-wide 變量和 class-wide 方法。一般語(yǔ)法如下:

 
 
 
  1.  

屬性 runat=server 是必需的,它表明該標(biāo)記是用于服務(wù)器端處理的。指定 class-wide 變量和方法的示例如下:

 
 
 
  1.  

3.訪(fǎng)問(wèn)JavaBean

JSP語(yǔ)法對(duì) JavaBean 的支持使您能通過(guò) Web 站點(diǎn)重復(fù)使用組件。JavaBean 可以是類(lèi)文件或串行化Bean,也可由 Servlet 動(dòng)態(tài)生成。請(qǐng)使用 標(biāo)記來(lái)創(chuàng)建一個(gè) Bean 實(shí)例,以使從JSP文件的任何地方都可對(duì)該實(shí)例進(jìn)行訪(fǎng)問(wèn)。標(biāo)記 的語(yǔ)法為:

 
 
 
  1.  name="Bean_name" varname="local_Bean_name" 
  2. type ="class_or_interface_name" introspect="yes|no" 
  3. beanName="ser_filename" create="yes|no" 
  4. scope="request|session|userprofile" > 
  5.  property_name="value"> 
  6.  

其中的屬性及其含義如下:

(1) name:用于在相應(yīng)的范圍(由 scope 屬性指定)內(nèi)查找 Bean 的名稱(chēng)。例如,這可能是用于存儲(chǔ) Bean 的會(huì)話(huà)(session)關(guān)鍵值。該值是分大小寫(xiě)的。

(2) varname:用于在 JSP 文件中的任何地方引用 Bean 的名稱(chēng)。該屬性是可選的。缺省值為 name 屬性值。該值是分大小寫(xiě)的。

(3) type:Bean 的類(lèi)文件名。該名稱(chēng)用于以代碼說(shuō)明 Bean 實(shí)例。缺省值為 Object 類(lèi)型。該值是分大小寫(xiě)的。

(4) Introspect:當(dāng)該值為真時(shí),JSP 處理器檢查將所有的請(qǐng)求屬性,并調(diào)用與請(qǐng)求屬性匹配的 set 屬性方法集(該屬性是在 BeanInfo 中傳遞的)。該屬性的缺省值為是。

(5) BeanName:Bean 的 .class 文件名、Bean 軟件包名或包含 Bean 的串行化文件(.ser 文件)的文件名。(該名稱(chēng)是給 Bean 實(shí)例程序的)。僅當(dāng) Bean 不在指定的范圍中,且創(chuàng)建屬性被設(shè)置成是時(shí),才使用該屬性。該值是分大小寫(xiě)的。文件路徑必須在應(yīng)用服務(wù)器的Java 類(lèi)路徑中指定,除非文件在 applicationserver_root\servlets 目錄下。

(6) Create:當(dāng)該值為真時(shí),如果處理器在指定的范圍內(nèi)沒(méi)有找到 Bean,則 JSP 將創(chuàng)建一個(gè) Bean 實(shí)例。缺省值為真。

(7)Scope:Bean 的生命期。該屬性是可選的,其缺省值為 request 。有效值為:

request - 由 Servlet 將 Bean 設(shè)置成請(qǐng)求的上下文,該 Servlet 使用 JSP API 中描述的 API 調(diào)

用JSP文件。如果Bean不是請(qǐng)求上下文的一部分,則將創(chuàng)建該 Bean,并將其存儲(chǔ)在請(qǐng)求上下文中,除非創(chuàng)建屬性已設(shè)置為否。

session - 如果當(dāng)前對(duì)話(huà)中存在 Bean,則 Bean 已被重用。如果不存在 Bean,且創(chuàng)建屬性設(shè)置

為是,則它已被創(chuàng)建并作為會(huì)話(huà)的一部分存儲(chǔ)起來(lái)。

userprofile - 由Servlet 請(qǐng)求對(duì)象檢索、造型成指定的類(lèi)型,并進(jìn)行內(nèi)省的用戶(hù)簡(jiǎn)要表文件。(在

IBM WebShere應(yīng)用服務(wù)器中,缺省類(lèi)型為 com.ibm.servlet.personalization.userprofile.UserProfile)。

(8) param:屬性和值配對(duì)的列表。屬性是在 Bean 中用內(nèi)省自動(dòng)設(shè)置的。只在實(shí)例化 Bean 時(shí),才對(duì)屬性進(jìn)行設(shè)置。

除了使用 屬性來(lái)設(shè)置Bean屬性外,還可以使用其它三種方法:***,在請(qǐng)求包含Bean的Web頁(yè)面(JSP 文件)的 URL 時(shí),指定查詢(xún)參數(shù)。必須將內(nèi)省屬性設(shè)置成“是”。其示例如下:http://www.myserver.com/signon.jsp?name=jones&password=d13x,其中 Bean 屬性名將設(shè)置為 jones。第二種方法,將屬性指定成由 HTML 標(biāo)記提交的參數(shù)。必須將 mothod 屬性設(shè)置成 post。將action 屬性設(shè)置成調(diào)用Bean 的JSP文件的URL。必須將 introspect 屬性設(shè)置成“是”。其示例如下:

 
 
 
  1.  action="http://www.myserver.com/SearchSite" method="post"> 
  2.  type="text" name="Search for: "> 
  3.  type="submit"> 
  4.   

第三中方法是使用JSP語(yǔ)法設(shè)置Bean屬性。

在指定了 標(biāo)記后,就可以 JSP文件中的任何地方訪(fǎng)問(wèn) Bean。這里有三種訪(fǎng)問(wèn) Bean 屬性的方法:使用 JSP scriptlet、使用JSP表達(dá)式、使用 標(biāo)記(如同 變量數(shù)據(jù)的 HTML 模板語(yǔ)法中所說(shuō)明的)。請(qǐng)參閱JSP示例(DisplayData.jsp 文件)以獲取三個(gè)訪(fǎng)問(wèn) Bean 方法的每個(gè)方法示例。

4.直接插入的Java代碼(scriptlet)

可以在JSP 文件的 <% 和 %> 標(biāo)記間直接嵌入任何有效的Java語(yǔ)言代碼。這樣嵌入的代碼稱(chēng)為scriptlet。如果沒(méi)有指定 method 指令,則生成的代碼將成為 service 方法的主體。用于 Servlet 的scriptlet 可以使用一個(gè)預(yù)定義的變量集,該變量集符合基本的Servlet、輸出和輸入類(lèi):

(1) request:由 javax.servlet.http.HttpServletRequest 定義的Servlet 請(qǐng)求類(lèi)

(2) responses:由 javax.servlet.http.HttpServletRequest 定義的Servlet 響應(yīng)類(lèi)

(3) out:由 java.io.PrintWriter 定義的輸出轉(zhuǎn)錄程序類(lèi)

(4) in:由 java.io.BufferedReader 定義的輸入閱讀程序類(lèi)

其示例如下:

 
 
 
  1. <%  
  2. foo = request.getParameter("Name");  
  3. out.println(foo);  
  4. %> 

5.變量數(shù)據(jù)的 HTML 模板語(yǔ)法

當(dāng)頁(yè)面被返回給瀏覽器時(shí),應(yīng)用服務(wù)器HTML 模板語(yǔ)法使您能將變量字段放在 HTML 頁(yè)面上,并使 Servlet 和 JavaBean 可利用數(shù)據(jù)庫(kù)的值動(dòng)態(tài)地替換變量。該功能是 JSP 的一個(gè) IBM 擴(kuò)展,它使引用變量數(shù)據(jù)變得十分容易。該語(yǔ)法只能用于 JSP 文件中。HTML 模板語(yǔ)法包括:

基本 HTML 模板語(yǔ)法;

替代 HTML 模板語(yǔ)法;

標(biāo)記。

這些標(biāo)記通過(guò) HTML 編寫(xiě)工具被設(shè)計(jì)成傳遞交互操作的標(biāo)記。每一個(gè)標(biāo)記有一個(gè)相應(yīng)的結(jié)束標(biāo)記。每一個(gè)標(biāo)記是分大小寫(xiě)的,它們的一些屬性也是分大小寫(xiě)的。IBM WebSphere Studio 使開(kāi)發(fā) JSP 文件以包含 HTML 模板語(yǔ)法變得更為容易。

(1) 基本 HTML 模板語(yǔ)法

標(biāo)記是用于指定變量字段的基本標(biāo)記。一般的語(yǔ)法為:

 
 
 
  1.  requestparm=pvalue requestattr=avalue bean=name 
  2. property=property_name(optional_index).subproperty_name(optional_index)  
  3. default=value_when_null> 
  4.  

其中的屬性及其含義如下:

requestparm:要在請(qǐng)求對(duì)象內(nèi)進(jìn)行訪(fǎng)問(wèn)的參數(shù)。該屬性是分大小寫(xiě)的,并且不能與Bean 和property屬性一起使用。

Requestattr:要在請(qǐng)求對(duì)象內(nèi)進(jìn)行訪(fǎng)問(wèn)的屬性。屬性應(yīng)使用 setAttribute 方法設(shè)置。該屬性是分大小寫(xiě)的,并且不能與 Bean 和property屬性一起使用。

Bean:由 標(biāo)記在 JSP 文件中說(shuō)明的 JavaBean 名。請(qǐng)參閱訪(fǎng)問(wèn) JavaBean 以獲得 標(biāo)記的解釋。該屬性的值是分大小寫(xiě)的。當(dāng)指定了 Bean 屬性,但未指定property屬性時(shí),在替換中將使用完整的 Bean 。例如,如果 Bean 是類(lèi)型 String 且未指定屬性,則將替代 string 的值。

Property:訪(fǎng)問(wèn)替換的 Bean 的屬性。該屬性的值是分大小寫(xiě)的,并且是屬性的獨(dú)立場(chǎng)所名。該屬性不能與 requestparm 屬性一起使用。

Default:當(dāng) Bean 屬性值為空時(shí),顯示可選的字符串。如果字符串包含多個(gè)字,則該字符串必須包含在一對(duì)雙引號(hào)中(例如 "HelpDesk number")。該屬性的值是分大小寫(xiě)的。如果未指定值,則當(dāng)屬性值為空時(shí),用空字符串替代。

基本JSP語(yǔ)法的示例如下:

 
 
 
  1.  bean=userProfile property=username> 
  2.  requestparm=company default="IBM Corporation"> 
  3.  requestattr=ceo default="Company CEO"> 
  4.  bean=userProfile property=lastconnectiondate.month>  

在大多數(shù)情況下,property屬性的值就是屬性名。但是,可以通過(guò)指定property屬性的全格式來(lái)訪(fǎng)問(wèn)屬性的某一屬性(子屬性)。這個(gè)全格式也提供選擇項(xiàng)給您來(lái)指定索引屬性的一個(gè)索引。該可選的索引可以是一個(gè)常數(shù)(例如 2)或如重復(fù)設(shè)置 HTML 標(biāo)記中描述的索引。使用屬性標(biāo)記的全格式示例如下:

 
 
 
  1.  bean=staffQuery property=address(currentAddressIndex)> 
  2.  bean=shoppingCart property=items(4).price> 
  3.  bean=fooBean property=foo(2).bat(3).boo.far> 

(2) 替代HTML 模板語(yǔ)法

HTML 標(biāo)準(zhǔn)不允許在 HTML 標(biāo)記中嵌入 HTML 標(biāo)記。因而,就無(wú)法在另一個(gè) HTML 標(biāo)記中嵌入標(biāo)記。作為代替,請(qǐng)使用 HTML 模板替代語(yǔ)法。要使用替代語(yǔ)法:

請(qǐng)使用來(lái)包含 HTML 標(biāo)記,在該標(biāo)記中指出替代內(nèi)容。

指定Bean 和property屬性:

要指定Bean 和屬性特性,請(qǐng)使用下列格式:$(bean=b property=p default=d),其中b、p 和 d

作為描述基本語(yǔ)法的值。

要指定requestparm 屬性,請(qǐng)使用下列格式:$(requestparm=r default=d),其中r 和d 作為

描述基本語(yǔ)法的值。

要指定requestattr 屬性,請(qǐng)使用下列格式:$(requestattr=r default=d),其中r 和d 作為描述

基本JSP語(yǔ)法的值。

替代HTML 模板語(yǔ)法的示例如下:

 
 
 
  1.  
  2.  src=$(bean=productAds property=sale defaultdefault=default.gif)> 
  3.  
  4.  
  5.  href="http://www.myserver.com/map/showmap.cgi?country=$(requestparm=country default=  
  6. usa )   
  7. &city$(requestparm=city default="Research Triangle Park")&email=  
  8. $(bean=userInfo property=email)>Show map of city 
  9.  

(3) 標(biāo)記

標(biāo)記的語(yǔ)法為:

 
 
 
  1.  index=name start=starting_index end=ending_index> 
  2.  

其中:

index:是用于標(biāo)識(shí)該重復(fù)數(shù)據(jù)塊的一個(gè)可選的名稱(chēng)。該值是分大小寫(xiě)的。

Start:是用于該重復(fù)數(shù)據(jù)塊的一個(gè)可選的開(kāi)始索引值。缺省值為 0 。

End:是用于該重復(fù)數(shù)據(jù)塊的一個(gè)可選的結(jié)束索引值。***值是 2,147,483,647。如果結(jié)束屬性的值小于開(kāi)始屬性的值,則忽略結(jié)束屬性。

下面的示例 1、2 和 3 顯示了如何使用標(biāo)記。如果所有的索引屬性擁有 300 個(gè)或更少的元素,則這些示例將產(chǎn)生相同的輸出。如果擁有的元素多于 300 個(gè),示例 1 和示例 2 將顯示所有的元素,而示例 3 將只顯示前 300 個(gè)元素。示例 1 用缺省開(kāi)始和結(jié)束索引顯示了隱式索引:使用最小索引屬性數(shù)的 bean 限制了循環(huán)重復(fù)的次數(shù)。

 
 
 
  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  bean=serviceLocationsQuery property=city>
     bean=serviceLocationsQuery property=address>
     bean=serviceLocationsQuery property=telephone>
     
  8. 示例 2 顯示了索引、開(kāi)始索引和結(jié)束索引:   
  9.  
  10.  index=myIndex start=0 end=2147483647> 
  11.  
  12.  
  13.    
  14.  
  15.    
  16.  
  17.  bean=serviceLocationsQuery property=city(myIndex)>
     bean=serviceLocationsQuery property=address(myIndex)>
     bean=serviceLocationsQuery property=telephone(myIndex)>
     

示例 3 用隱式開(kāi)始索引顯示了顯式索引和結(jié)束索引。雖然指定了索引屬性,仍可對(duì)索引過(guò)的屬性城市進(jìn)行隱式索引,因?yàn)椴恍枰╥)。

 
 
 
  1.  
  2.  index=myIndex end=299> 
  3.  
  4.  
  5.    
  6.  
  7.    
  8.  
  9.  bean=serviceLocationsQuery property=city>
     bean=serviceLocationsQuery property=address(myIndex)>
     bean=serviceLocationsQuery property=telephone(myIndex)>
     

可以嵌套數(shù)據(jù)塊。獨(dú)立索引每個(gè)數(shù)據(jù)塊。該能力對(duì)交叉兩個(gè) bean 上的交錯(cuò)屬性或含有子屬性的屬性非常有用。在示例中,將兩個(gè)數(shù)據(jù)塊嵌套,用以顯示用戶(hù)購(gòu)物手推車(chē)上每一張壓縮光盤(pán)上的歌曲列表。

 
 
 
  1.  index=cdindex> 
  2.  bean=shoppingCart property=cds.title>

     
  3.  
  4.  
  5.  
  6.  bean=shoppingCart property=cds(cdindex).playlist> 
  7.  
  8.  
  9.  

6.變量數(shù)據(jù)的Java表達(dá)式

當(dāng)處理 JSP 文件時(shí),要指定分解一個(gè) Java 語(yǔ)言表達(dá)式,請(qǐng)使用 JSP 表達(dá)式標(biāo)記 <%= 和 %>。該表達(dá)式被評(píng)估和轉(zhuǎn)換成一個(gè)字符串,并加以顯示。原語(yǔ)類(lèi)型,如 int 和 float 都自動(dòng)轉(zhuǎn)換成字符串表示法。在該示例中,foo 是在