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