Javabean
Javabean簡介
Javabean就是符合某種特定的規范的java類,使用Javabeans的好處就是解決代碼重復編寫,減少代碼冗余,功能區分明確,提高了代碼的維護性
javaBean的設計原則:
1.公有類
2.無參的公有構造方法
3.屬性私有
4.getter和setter方法
JSP動作元素
JSP動作元素(action elements),動作元素為請求處理階段提供信息,動作元素遵循XML元素的語法,有一個包含元素名的開始標簽,可以有屬性,可選的內容,與開始標簽匹配結束標簽
第一類與存取JavaBean有關的,包括
<jsp:useBean><jsp:setProperty><jsp:getProperty>
第二類是jsp1.2就開始有的基本元素,包括動作元素
<jsp:include><jsp:forward><jsp:param><jsp:plugin><jsp:params><jsp:fallback>
第三類是jsp2.0新增加的元素,主要與JSP document有關包括6個元素
<jsp:root><jsp:declaration><jsp:scriptlet><jsp:expression><jsp:text><jsp:output>
第四類是JSP2.0新增的動作元素,主要是用來動態生成XML元素標簽的值,包括3個動作
<jsp:attribute><jsp:body><jsp:element>
第五類是JSP2.0新增的動作元素,主要是用在Tag File中,有兩個元素
<jsp:invoke><jsp:dobody>
使用和普通java類一樣,創建javabean實例
1.創建一個web project項目。
2.在src文件下,創建一個包,在包中創建一個類,滿足設計原則即可
3.在index.jsp頁面中通過import導入之前創建的類(import="包名.類名")
4.通過使用new創建Javabean實例(創建對象)
5.使用set/get方法賦值封裝。
如下圖所示:
1.按照JavaBean設計原則建立一個類
2.import導入之前創建的類
3.通過使用new創建Javabean實例(創建對象),使用set/get方法賦值封裝
jsp動作標簽使用JavaBean
<jsp:useBeans>,<jsp:setProperty>,<jsp:getProperty>
<jsp:useBeans>
<jsp:useBeans> 作用:在jsp頁面中實例化或者在指定范圍內使用javabean
語法:
<jsp:useBean id="標識符" class="java類名" scope="作用范圍"/>
示例如圖:
執行結果:
由于沒有初始化,所以值為空,可使用setProperty進行初始化
<jsp:setProperty>
<jsp:setProperty>
作用:給已經實例化的javabean對象的屬性賦值,一共有四種形式
1、需要表單提交屬性:<jsp:setProperty name="Javabean實例名" property="*"/>: 與之前頁面提交的表單的【所有屬性進行匹配】,若有與javabean類屬性名相同的,則進行賦值。比如表壇提交了username="xxx",而javabean里有username屬性,則對其進行賦值
2、需要表單提交屬性<jsp:setPropery name="Javabean實例名" property="javabean屬性名" />:對【指定的屬性進行匹配】
3、手動設置屬性:<jsp:setProperty name = "Javabean實例名" property="Javabean屬性名" value="BeanValue" />
4、與request參數有關,通過url傳參 :<jsp:setProperty name="Javabean實例名" property="propertyName" param="request對象中的參數名" />
形式一:所有屬性進行匹配方法示例如下圖:
首先在login.jsp文件中先創建一個表單:
創建dologin.jsp文件進行初始化操作
執行結果:
點擊登錄后:
JavaBean四個作用域范圍
JavaBean的生命周期存在于4種范圍之中,分別為page、request、session、application,它們通過<jsp:useBean>標簽的scope屬性進行設置。這4種范圍雖然存在很大的區別,但它們與JSP頁面中的page、request、session、application范圍相對應。
page范圍:與當前頁面相對應,JavaBean的生命周期存在于一個頁面之中,當頁面關閉時JavaBean被銷毀。
request范圍:與JSP的request生命周期相對應,JavaBean的生命周期存在于request對象之中,當request對象銷毀時JavaBean也被銷毀.
session范圍:與JSP的session生命周期相對應,JavaBean的生命周期存在于session會話之中,當session超時或會話結束時JavaBean被銷毀。
application范圍:與JSP的application生命周期相對應,在各個用戶與服務器之間共享,只有當服務器關閉時JavaBean才被銷毀。
這4種作用范圍與JavaBean的生命周期是息息相關的,當JavaBean被創建后,通過<jsp:setProperty>標簽與<jsp:getProperty>標簽調用時,將會按照page、request、session和application的順序來查找這個JavaBean實例,直至找到一個實例對象為止,如果在這4個范圍內都找不到JavaBean實例,則拋出異常。
page:進當前頁面
request:可以通過HTTPRequest.getAttribute()方獲取javabean對象
session:可以通過HttpSession.getAttribute()方法獲取javabean對象
application:可以通過application.getAttribute方法獲取javabean對象
mdoel1簡介
Model1 模型出現前,整個WEB應用的情況:幾乎全部由JSP頁面組成,JSP頁面接受客戶端請求,對請求處理后直接作出響應
弊端:在界面層充斥著大量的業務邏輯的代碼,和數據訪問層,Web程序的擴展性和可維護性非常差
Model1分為三層:
1.界面層:由JSP頁面進行與客戶端瀏覽器的交互,可以直接調用JavaBeans。
2.業務邏輯層:由JavaBeans進行處理業務邏輯,封裝數據,并與數據庫層進行交互。
3.數據庫層:底層數據庫,可被JavaBeans訪問。