JavaBean簡介java
package org.it315; public class RegisterBean { private String nickName = null; private boolean male = false; public void setNickName(String nickName) { this.nickName = nickName; } public String getNickName() { return nickName; } public void setMale(boolean male) { this.male = male; } public boolean isMale() { return male; } }
2)Indexed屬性express
package org.it315; public class RegisterBean { private String [] specialities = new String[]{"none","none","none","none","none"}; public void setSpecialities(String [] sp) { this.specialities = sp; } public void setSpecialities(int index,String sp) { specialities[index] = sp; } public String [] getSpecialities() { return specialities; } public String getSpecialities(int index) { return specialities[index]; } }
JavaBean在JSP中的應用編程
//例1:testBean.jsp <jsp:useBean id="currentDate" class="java.util.Date"/> <jsp:setProperty name="currentDate" property="time" value="1234567"/> <jsp:getProperty name="currentDate" property="time"/> //例2:testBean.jsp <% java.util.Date currentDate = new java.util.Date(); currentDate.setTime(1234567); out.println(currentDate.getTime()); %>
1)<jsp:useBean>標籤設計模式
<jsp:useBean id="beanInstanceName " class="package.class" scope="page|request|session|application"/>
<jsp:useBean>標籤內部原理session
//JSP中的語句: <jsp:useBean id="currentDate" class="java.util.Date"/> //翻譯成的Servlet源碼: java.util.Date currentDate = null; synchronized (_jspx_page_context) { currentDate = (java.util.Date) _jspx_page_context.getAttribute("currentDate", PageContext.PAGE_SCOPE); if (currentDate == null){ currentDate = new java.util.Date(); _jspx_page_context.setAttribute("currentDate",currentDate, PageContext.PAGE_SCOPE); } }
<jsp:useBean>標籤完整語法 app
//完整語法: <jsp:useBean id="beanInstanceName" scope="page | request | session | application" { class="package.class" | type="package.class" | class="package.class" type="package.class" | beanName="{package.class | <%= expression %>}" type="package.class" } />
type屬性用於指定JavaBean實例對象的引用變量的類型,它必須是JavaBean對象的類名稱、超類名稱和所實現的接口名稱中的一個,其默認值爲class屬性的設置值。beanName屬性用於指定JavaBean的名稱,這個名稱不是JavaBean實例對象的引用名稱,而是JavaBeans規範中定義的一種名稱,它將被做爲傳遞給java.beans.Beans類的instantiate方法的參數,例如,a.b.c。a.b.c能夠表明一個類的完整名稱,也能夠表明a/b/c.ser這樣的資源文件,java.beans.Beans類的instantiate方法能夠從這個資源文件中產生出JavaBean的實例對象。beanName屬性值還能夠經過一個表達式來產生。jsp
帶標籤體的<jsp:useBean>標籤模塊化
//語法: <jsp:useBean ...> Body </jsp:useBean> //功能: //Body部分的內容只在<jsp:useBean>標籤建立JavaBean的實例對象時才執行。
2)<jsp:setProperty>標籤工具
//語法格式: <jsp:setProperty name="beanInstanceName" { property="propertyName" value="{string | <%= expression %>}" |property="propertyName" [ param="parameterName" ] | property= "*" }/>
name屬性用於指定JavaBean實例對象的名稱,其值應與<jsp:useBean>標籤的id屬性值相同。組件化
property屬性用於指定JavaBean實例對象的屬性名。
<jsp:setProperty name="beanInstanceName" property="propertyName" value="{string | <%= expression %>}" /> <jsp:setProperty name="beanInstanceName" property="propertyName" param="parameterName" /> <jsp:setProperty name="beanInstanceName" property="propertyName" /> <jsp:setProperty name="beanInstanceName" property="*" /> <jsp:useBean id="beanInstanceName" …/> … <jsp:setProperty name="beanInstanceName" property="propertyName" …/> … </jsp:useBean>
3)<jsp:getProperty>標籤
<jsp:getProperty>標籤用於讀取JavaBean對象的屬性,也就是調用JavaBean對象的getter方法,而後將讀取的屬性值轉換成字符串後插入進輸出的響應正文中。
//語法: <jsp:getProperty name="beanInstanceName" property="PropertyName" />
name屬性用於指定JavaBean實例對象的名稱,其值應與<jsp:useBean>標籤的id屬性值相同。property屬性用於指定JavaBean實例對象的屬性名。
若是一個JavaBean實例對象的某個屬性的值爲null,那麼,使用<jsp:getProperty>標籤輸出該屬性的結果將是一個內容爲「null」的字符串。
使用JavaBean的注意事項
JSP開發模式
1)MVC設計模式
MVC(模型-視圖-控制器)是一種分離業務邏輯與顯示界面的設計方法。MVC的模型(Model)部分負責管理程序的業務數據,視圖(View)部分負責顯示界面,控制器(Controller)部分則負責與用戶進行交互(接受請求和選擇響應視圖)。
2)JPS設計模式(兩種模式)