一、JavaBean簡介:JavaBean是一個(gè)可重復(fù)使用的軟件部分,應(yīng)用JavaBean的主要目的是代碼重用,便于維護(hù)和管理。它實(shí)質(zhì)上是一個(gè)類,具有如下特性:
1、JavaBean是公共和具體的類。
2、構(gòu)造函數(shù)沒有輸入?yún)?shù)。
3、屬性必須聲明為private,方法必須聲明為public。
4、用一組set方法設(shè)置內(nèi)部屬性。
5、用一組get方法獲取內(nèi)部屬性。
6、JavaBean是一個(gè)沒有主方法的類,一般的Java類默認(rèn)繼承自O(shè)bject類,而Bean不需要這種繼承。
二、編寫JavaBean:同編寫Java類很相似,然后編譯成為一個(gè)class文件,此文件將被JSP程序進(jìn)行調(diào)用。
例子程序:

























三、JSP中使用JavaBean:JavaBean和JSP技術(shù)的結(jié)合不僅可以實(shí)現(xiàn)表現(xiàn)層和商業(yè)邏輯層的分離,而且可以提高JSP程序的運(yùn)行效率和代碼重用程序,還可以實(shí)現(xiàn)并行開發(fā),是JSP編程中常用的技術(shù)。在JSP中提供了<jsp:useBean>、<jsp:setProperty>和<jsp:getProperty>動(dòng)作元素實(shí)現(xiàn)對JavaBean的操作。
1、<jsp:useBean>可以定義一個(gè)具有一定生存范圍以及一個(gè)唯一id的JavaBean的實(shí)例,JSP頁面通過指定的id來識別JavaBean,也可以通過id.method語句來調(diào)用JavaBean中的方法。在執(zhí)行過程中,<jsp:usebean>首先嘗試尋找已經(jīng)存在的具有相同id和scope值的JavaBean實(shí)例,如果沒有就會(huì)自動(dòng)創(chuàng)建一個(gè)新的實(shí)例。其語法如下:

注:屬性scope之四種范圍: 頁面、 請求、 對話、 應(yīng)用。
對話范圍:
對話范圍的JavaBean 主要應(yīng)用與跨多個(gè)頁面和時(shí)間段: 例如填充用戶信息。 添加信息并且接受回饋,保存用戶最近執(zhí)行頁面的軌跡。對話范圍JavaBean保留一些和用戶對話 ID 相關(guān)的信息。這些信息來自臨時(shí)的對話cookie,并在當(dāng)用戶關(guān)閉瀏覽器時(shí),這個(gè)cookie將從客戶端和服務(wù)器刪除。
頁面/請求范圍:
頁面和請求范圍的JavaBean有時(shí)類似表單 的bean , 這是因?yàn)?他們大都用與處理表單。表單需要很長的時(shí)間來處理用戶的輸入,通常情況下用于頁面接受HTTP/POST或者GET請求。另外頁面和請求范圍的bean可以用于減少大型站點(diǎn)服務(wù)器上的負(fù)載,如果使用對話bean,耽擱的處理就可能會(huì)消耗掉很多資源。
應(yīng)用:
應(yīng)用范圍通常應(yīng)用于服務(wù)器的部件,例如 JDBC 連接池、應(yīng)用監(jiān)視、用戶計(jì)數(shù)和其他參與用戶行為的類。
在Bean中限制HTML的產(chǎn)生:
理論上,JavaBean 將不會(huì)產(chǎn)生任何HTML,因?yàn)檫@是jsp層負(fù)責(zé)的工作;然而,為了動(dòng)態(tài)消息提供一些預(yù)先準(zhǔn)備的格式是非常有用的。產(chǎn)生的HTML將被標(biāo)注的 JavaBean方法返回。
這里有一些非常重要的事情:
(1.)不要試圖在JavaBean返回的HTML中放置任何字體尺寸。
并不是所有的瀏覽器都相同。很多瀏覽器無法處理完整的字體尺寸。
(2).不要試圖在JavaBean返回的HTML中放置任何腳本或者DHTML。
向頁面直接輸出腳本或者DHTML相當(dāng)于自我毀滅,因?yàn)槟承g覽器版本在處理不正確的腳本時(shí)會(huì)崩潰(非常少但是有)。如果用戶的JavaBean在運(yùn)行時(shí)是動(dòng)態(tài)的推出復(fù)雜的HTML語言,用戶將陷入調(diào)試的噩夢。另外,復(fù)雜的HTML將限制JavaBean的壽命和靈活性。
(3).不要提供任何的選擇。
如果用戶使用不同的系統(tǒng)瀏覽頁面,可以提供一種可以替換的方法。
2、<jsp:setProperty>:可以設(shè)置Bean的屬性值,基本語法格式如下:









§在Tomcat服務(wù)器中使用JavaBean,必須將編譯好的Bean存放在應(yīng)用程序文件夾下的classes文件夾中。
§如果javaBean進(jìn)行了修改,必須重新啟動(dòng)Tomcat服務(wù)器,JavaBean才能被正確地調(diào)用。
四、JavaBean與HTML表單的交互:jsplogin.htm提供用戶錄界面;jsploginBean.jsp通調(diào)用LoginBean中的check方法實(shí)現(xiàn)登錄驗(yàn)證;LoginBean.java為登錄Bean。
































































package mybean;
































































(1)編寫實(shí)現(xiàn)特定功能的JavaBean
(2)應(yīng)用<jsp:useBean>在JSP頁面中聲明并初始化JavaBean
(3)調(diào)用JavaBean提供的public方法或者直接使用<jsp:getProperty>來得到JavaBean中屬性的值
(4)調(diào)用JavaBean中的特定方法完成指定的功能
附:
set path=%path%; d:/wzz/bin 設(shè)置path變量,只對當(dāng)前窗口有效
jar cf class.jar *.class 將當(dāng)前目錄下的所有.class文件打包成jar文件
jar cf class.jar wzz/w/z/*.class 將wzz/w/z/目錄下的所有.class文件打包成jar文件
把類文件拷到Tomcat安裝目錄的"common/classes"目錄中,則對WEB站點(diǎn)中的所有WEB應(yīng)用都有效(需要重啟Tomcat);如果把jar包拷到web應(yīng)用的"WEB-INF/classes"目錄中,則此web應(yīng)用有效。
把jar包拷到Tomcat安裝目錄的"common/lib"目錄中,則對WEB站點(diǎn)中的所有WEB應(yīng)用都有效(需要重啟Tomcat);如果把jar包拷到web應(yīng)用的"WEB-INF/lib"目錄中,則此web應(yīng)用有效。