1. 程式人生 > >Java EE JavaBean組件

Java EE JavaBean組件

req 屬性的屬性 setprop 語句 cat usebean request對象 rop 無法訪問

一、簡介

JavaBean組件是一些可移植、可重用並可組裝到應用程序中的Java類,類必須是具體的和公共的。

符合下列設計規則的任何Java類均是以JavaBean:

1.對數據類型“protype”的每個可讀屬性,Bean下必須有下面簽名的一個方法:public proptype getProperty(){}

2.對數據類型“protype”的每個可寫屬性,Bean下必須有下面簽名的一個方法:public void setProperty(proptype x){}

3.定義一個不帶任何參數的構造函數。

二、JavaBean與JSP的結合

JSP在動態Web應用開發中得到了越來越多的應用,JSP提供的9個內置對象極大的方便了JSP頁面的控制與開發,但由於應用程序功能要求越來越強,JSP頁面變得越來越臃腫且難以控制。也正因如此JSP與JavaBean相結合逐漸成為最常見的Web應用程序開發方式。

(一)、JSP中JavaBean相關標記

JSP頁面中與JavaBean有關的標記有<jsp:useBean>、<jsp:setProperty>和<jsp:getProperty>三個。

(1)、<jsp:useBean>

該標記聲明一JavaBean實例,該實例具有一定生存範圍及一個唯一id,JSP頁面通過這個唯一的id來識別JavaBean並通過id.method類似語句操作JavaBean。

eg:聲明類Student,id為s1。

1 <jsp:useBean id="s1" class="Student" scope="application"></jsp:useBean>

scope屬性值指明JavaBean的作用域,其默認值為page。

(2)、<jsp:setProperty>

該標記用於設定一個已經被創建的JavaBean組件的屬性值。

eg:設定Student組件s1的classno屬性

1 <jsp:setProperty name="s1" property="classno" value="56789"></jsp:setProperty>

name屬性值對應JavaBean組件的id值;property屬性指定想設定屬性值的屬性名;value屬性指定屬性值,該值可為字符串也可為表達式。

(3)、<jsp:getProperty>

該標記用於返回一個已經被創建的JavaBean組件的屬性值。

eg:獲取Student組件s1的name屬性的屬性值

1 <jsp:getProperty name="s1" property="name"></jsp:getProperty>
2 等價於:
3 <%=s1.name %>

(二)、JavaBean的Scope屬性說明

每個JavaBean均有一個生存範圍,而每個JavaBean只能在它定義的範圍中才可使用,在其定義的範圍外將無法訪問。

<jap:useBean>利用Scope屬性來聲明JavaBean的生存範圍。

JSP為JavaBean設定的範圍可以是:page、request、session及application。

(1)、page

page是JavaBean默認生存範圍。

Scope值為page的JavaBean能在包含"<jsp:useBean>"元素的JSP文件及此文件中的所有靜態包含文件中使用,直至頁面執行完畢向客戶端發回響應或轉到另一文件為止。

(2)、request

Scope值為request的JavaBean作用於任何相同請求的JSP文件中,直至頁面執行完畢向客戶端發回響應或在此之前已經通過某種方式(重定向、鏈接等)轉到另一文件為止。

還可通過使用request對象訪問JavaBean。

(3)、session

Scope值為session的JavaBean,從創建JavaBean開始,就能在任何使用相同session的JSP文件中使用這個Bean,該Bean存在於整個session生存期內,任何分享此session的JSP文件都能使用同一Bean。

在session的生存周期內,對該Bean的任何改動均會影響到在此session內的任意page、request對該Bean的調用。當然前提是必須在創建此Bean的文件裏事先用page指令指定了session=true。

(4)、application

Scope值為application的JavaBean,作用於整個application的生存周期內,從創建Bean開始就能在任何使用相同application的JSP文件中使用Bean。在該Bean存在於整個application生存周期內,任何分享此application的JSP文件均能使用同一Bean。在application生存周期內,對此Bean屬性的任何改動均會影響到此application內另一page、另一request及另一session裏對該JavaBean的調用。

Java EE JavaBean組件