簡單描述JSP2模式的三個(gè)特征
為了解決JSP中編寫java代碼的可讀性差和重用性差的問題,sun在web應(yīng)用開發(fā)中推出使用JSP+javabean技術(shù),這種模式稱為JSP1。由于JSP1模式只適合系統(tǒng)規(guī)模小,業(yè)務(wù)簡單的web應(yīng)用開發(fā),為了解決這一問題,sun在java web開發(fā)中引入了MVC架構(gòu)模式,這種模式就是JSP2模式。這種模式綜合的利用servlet,JSP和javabean特點(diǎn)。
一個(gè)標(biāo)準(zhǔn)的javabean組件具有一下幾個(gè)特征:
1.javabean類必須是一個(gè)公共的類,并將屬性設(shè)置為public。
2.javabean類必須有一個(gè)空的構(gòu)造函數(shù)。
3.一個(gè)javabean類不應(yīng)該公共的實(shí)例變量,類變量都應(yīng)該是private。
4.javabean應(yīng)該是可序列化(serializable),即實(shí)現(xiàn)java.io.Serializable接口
為了能在JSP頁面中使用javabean,SUN在JSP規(guī)范中提供了三種標(biāo)準(zhǔn)動作:
1.JSP2模式特征之< jsp:userBean>動作
要在JSP頁面中使用標(biāo)準(zhǔn)動作與javabean實(shí)例通訊,首先要使用< jsp:userBean>動作實(shí)例話和使用bean:
格式:
- < jsp:userBean id="beanName" scope="page|request|session|application" class="className"/>
id:代表引用名,在其他地方,通過這個(gè)引用來訪問bean的實(shí)例。這個(gè)id在一個(gè)頁面中必須是一個(gè)唯一值。
class:指定javabean的包名及類名,容器可以在WEB-INF/class下去找到它。
scope:指定javabean生存的作用域,有4個(gè)可選值。默認(rèn)是page(注意:他現(xiàn)在request范圍內(nèi)查找是否有id=“user”這個(gè)user屬性,如果有則直接使用,如果沒有就新建一個(gè))
-page:bean的實(shí)例在當(dāng)前頁面中可用,頁面完成后就刪除實(shí)例。
-request:bean的實(shí)例保存在request作用域中,公用一個(gè)request作用域的多個(gè)JSP或者servlet可以共享這個(gè)bean的實(shí)例。
-session:bean的實(shí)例保存在session作用域中,用戶在整個(gè)會話周期內(nèi)就可以都可以使用這個(gè)對象。
-application:對當(dāng)前的所有用戶來說都可以使用這個(gè)javabean實(shí)例。
type:id引用的數(shù)據(jù)類型,默認(rèn)情況下,它與class的類型相同。
beanName:使用java.beans.Beans.instantiate()方法從類文件中實(shí)例化Bean,不能與class屬性同時(shí)使用。
2.JSP2模式特征之< jsp:getProperty>動作
允許JSP頁面查詢javabean的給定屬性,可以把javabean的某一個(gè)屬性取出來,并且在頁面顯示出來。通常和
< jsp:userName>動作一起使用。
語法格式:< jsp:getProperty name="beanName" property="propertyName">
name:是指在< jsp:userName>動作中指定的id名。
property:是返回javabean中相對應(yīng)的屬性名。
3.JSP2模式特征之< jsp:setProperty>動作
【編輯推薦】