
第9章 Eclipse的J2EE開發(fā)
Eclipse默認(rèn)安裝是沒有J2EE開發(fā)支持的,它需要安裝第三方插件,本章的主要介紹的J2EE開發(fā)插件是Lomboz,主要開發(fā)環(huán)境是Tomcat + Lomboz + Struts + Hibernate,這是當(dāng)前比較流行的一種選擇。其中Tomcat充當(dāng)WEB服務(wù)器;Lomboz是J2EE開發(fā)的工具;Struts提供強(qiáng)大的MVC模式支持;Hibernate替代笨重的EJB來充當(dāng)數(shù)據(jù)庫的持久層。
以上所有的工具和軟件包不僅流行、功能強(qiáng)大、而且是免費(fèi)的,是J2EE開發(fā)典型搭配。本章將分三個(gè)層次來漸進(jìn)式的展開講解:
l Lomboz下的純J2EE開發(fā)
l 融合Struts的J2EE開發(fā)
l 融合Struts和Hibernate后的J2EE開發(fā)
由于篇幅有限,本章以開發(fā)環(huán)境的安裝和配置為重點(diǎn),并輔以一個(gè)典型而有深度的實(shí)例來演示具體的開發(fā)操作,最后給出一個(gè)擴(kuò)展知識(shí)的資料索引。
本章和第8章一樣也使用CVS來管理所有例程,在每一節(jié)的標(biāo)題后會(huì)用括號(hào)顯示這一節(jié)的版本號(hào)。本章具體的環(huán)境為:WindowsXP + JDK1.4.2_06 + Eclipse3.1M4 + cvsnt2.0.58d + Tomcat5.0.28 + Lomboz3.1.0 + Struts 1.2.4。
9.1 WEB環(huán)境的搭建(V0010)
9.1.1 下載CVS版本注意事項(xiàng)
由于V0010版,存在一些空目錄,而這些空目錄也是必須要的,否則項(xiàng)目會(huì)出錯(cuò)。這需要修改一個(gè)CVS的配置,如下圖9.1所示,打開Eclipse的首選項(xiàng)→小組→CVS→將“修剪空目錄”項(xiàng)取消勾選。

圖9.1 修改CVS配置
9.1.2 Tomcat的下載與安裝
這一節(jié)先搭建好Tomcat環(huán)境,Tomcat的下載安裝和Eclipse、Lomboz都沒有直接關(guān)系,它是完全獨(dú)立的。
1、下載Tomcat
(1)用IE打開Tomcat的下載頁面:http://jakarta.apache.org/tomcat/index.html,選擇頁面左邊的鏈接“Binaries”,轉(zhuǎn)到下圖9.2所示的頁面:

圖9.2 Tomcat項(xiàng)目選擇
(3)單擊上圖中標(biāo)識(shí)的“Tomcat”項(xiàng),出現(xiàn)如下圖9.3所示的頁面

圖9.3 具體下載項(xiàng)
(4)下載上圖9.3所示的“5.0.28.exe”項(xiàng),下載后的文件名為:jakarta-tomcat-5.0.28.exe
l 注意:
l (1)不要下載Tomcat5.5.*版,因?yàn)槟切枰?/SPAN>JDK5.0的支持;也不要下載4.1.*版,它的功能太弱了。因?yàn)椴煌姹局g的安裝和配置都會(huì)有所不同,為了和本教程同步,一定要下載5.0.28版。
l (2)如果用FlashGet等多線程下載工具無法下載,則改用原始的IE右鍵菜單的“另存為…”項(xiàng)來下載。
2、安裝Tomcat
安裝Tomcat的過程比較簡(jiǎn)單,雙擊得到的下載文件:jakarta-tomcat-5.0.28.exe,開始安裝。
(1)選擇安裝組件。接受默認(rèn)的勾選即可,如下圖9.4所示。

圖9.4 選擇組件
(2)選擇Tomcat安裝目錄。也一樣接受默認(rèn)值,將安裝到C:\Program Files\Apache Software Foundation\Tomcat 5.0目錄下,如下圖9.5所示:

圖9.5 Tomcat的安裝目錄
(3)選擇HTTP監(jiān)聽端口(Port),如下圖9.6所示。默認(rèn)端口是8080,如果8080端口已被你電腦上的其他軟件所占用(如IIS、JBoss等),則可以另選擇一個(gè)空閑的端口。最后,給Tomcat的超級(jí)管理員admin設(shè)為一個(gè)密碼(本書設(shè)為123456)。

圖9.6 設(shè)置端口和密碼
(4)設(shè)置Tomcat使用的JVM,本書的默認(rèn)值為“C:\Program Files\Java\j2re1.4.2_06”,如下圖9.7所示。很多資料都指出,在安裝JDK時(shí)要設(shè)置設(shè)置classpath、JAVA_HOME、path等環(huán)境變量,但本書從第一章開始就從沒有設(shè)置過這些環(huán)境變量,一樣可以運(yùn)行通暢,也許是新版的JDK1.4.2_06很好的解決了這些問題。從這一步也可以看到,Tomcat已經(jīng)在安裝時(shí)定位好了JVM的位置,不必再手工設(shè)置了。
設(shè)置好JVM后,單擊“install”按鈕,開始安裝。

圖9.7 定位JVM的位置
(5)安裝完成之后,在Windows的“控制面板”→“管理工具”→“服務(wù)”窗口中,可以看到Tomcat已經(jīng)注冊(cè)為windows的一項(xiàng)服務(wù),如下圖9.8所示。請(qǐng)確定它是“手動(dòng)”方式,這一點(diǎn)在開發(fā)時(shí)很重要,因?yàn)槲覀円院笠ㄟ^Eclipse來啟動(dòng)Tomcat。

圖9.8 windows“服務(wù)”窗口
3、啟動(dòng)Tomcat
雖然以后在開發(fā)時(shí),是要通過Eclipse來啟動(dòng)Tomcat,但現(xiàn)在為了測(cè)試Tomcat是否安裝成功,暫時(shí)先啟動(dòng)Tomcat。
(1)可以通過Windows的“開始”菜單→“Apache Tomcat5.0”組→“Configure Tomcat”項(xiàng)來運(yùn)行Tomcat的配置界面(如下圖9.10所示),這個(gè)界面包含了Tomcat的一些參數(shù)設(shè)置,這些設(shè)置一般都不用去改動(dòng)它。直接“單擊”按鈕,即可啟動(dòng)Tomcat。

圖9.10 Tomcat的配置界面
(2)在IE瀏覽器中輸入“http://localhost:8080”或“http://127.0.0.1:8080”,其中8080為安裝時(shí)設(shè)置的端口號(hào)。如果啟動(dòng)成功,則會(huì)出現(xiàn)如下圖9.11所示的頁面;反之,如果沒有出現(xiàn)此頁面,則表示啟動(dòng)未成功,這時(shí)你需要檢查前面的安裝步驟是否和本書的一致。

圖9.11 驗(yàn)證Tomcat是否安裝及啟動(dòng)成功
附注:在上圖頁面的左部有兩個(gè)鏈接:Tomcat Administration、Tomcat Manager,它們是用于管理Tomcat的,登錄密碼都是在安裝Tomcat時(shí)設(shè)置的用戶名admin和密碼123456。其中,Tomcat Adiministration項(xiàng)可以設(shè)置數(shù)據(jù)庫連接池、管理用戶及權(quán)限、以及其他一些Tomcat服務(wù)器相關(guān)設(shè)置;Tomcat Manager項(xiàng)主要用來發(fā)布網(wǎng)頁管理,通過它可以輕松的將一個(gè)WAR包發(fā)布到Tomcat中。
關(guān)于Tomcat中文問題的解決,請(qǐng)參閱9.4.6節(jié)。
9.1.3 Lomboz的下載與安裝
下載Lomboz時(shí)一定要針對(duì)Eclipse的版本來選擇相應(yīng)的Lomboz版本下載,否則對(duì)應(yīng)版本不同,很有可能會(huì)導(dǎo)致Lomboz無法正常使用。本章由于依然要使用CVS,所以還是用Eclipse3.1M4版,Lomboz選擇相應(yīng)的3.1.0版。
1、下載Lomboz
Lomboz的下載地址是:http://forge.objectweb.org/project/showfiles.php?group_id=97 ,下載頁面如下圖9.12所示,請(qǐng)選擇for Eclipse3.1.x的Lomboz來下載,而且還需要同時(shí)下載emf包(如圖中箭頭所示)。
下載后的文件名為:
l org.objectweb.lomboz_3.1.0.N20050106.zip
l emf-sdo-runtime-I200412160800.zip

圖9.12 Lomboz的下載頁面
2、安裝Lomboz
(1)因?yàn)?/SPAN>Lomboz、emf是Eclipse的插件,所以它和其他Eclipse插件的安裝方法一樣,本書采用Links式的插件安裝方法,具體步驟不再重復(fù),請(qǐng)參閱1.2節(jié)的安裝步驟。
下圖9.13是安裝完成后的目錄結(jié)構(gòu):

圖9.13 lomboz、emf的安裝目錄結(jié)構(gòu)
其中圖9.13中的links目錄有新創(chuàng)建的兩個(gè)文本文件:
l 文件lomboz.link,內(nèi)容僅一句:path=lomboz_3.1.0.N20050106
l 文件emf.link,內(nèi)容也僅一句:path=emf-sdo-runtime-I200412160800
(2)驗(yàn)證Lomboz是否安裝成功
啟動(dòng)Eclipse。如果安裝成功,選擇“文件”→“新建”→“項(xiàng)目”會(huì)出現(xiàn)如下圖9.14所示的Lomboz項(xiàng)目。

圖9.14 驗(yàn)證Lomboz是否安裝成功
(3)如果未能出現(xiàn)上圖畫面,請(qǐng)做如下檢查和嘗試:
l 刪除eclipse目錄下的子目錄configuration,再啟動(dòng)Eclipse試一試。
l 檢查Lomboz的版本是否和Eclipse的一致。
l Links文件中的path項(xiàng)是否設(shè)置正確。
l Lomboz的目錄結(jié)構(gòu)是否正確:..\lomboz_3.1.0.N20050106\eclipse\plugins,注意lomboz_3.1.0.N20050106和plugins的中間還有個(gè)elcipse目錄。
9.1.4 Lomboz的環(huán)境設(shè)置
安裝完Lomboz之后,還需要針對(duì)Tomcat做一些設(shè)置才能用于開發(fā)WEB,具體操作步驟如下:
(1)打開Eclipse的首選項(xiàng),設(shè)定JDK的tools.jar包的位置,本書是“C:\jdk\lib\tools.jar”,如下圖9.15所示:

圖9.15 設(shè)定JDK的tools.jar包的位置
(2)如下圖9.16所示,注意,在Server types項(xiàng)的下拉框中,要選擇和當(dāng)前所用Tomcat版本相對(duì)應(yīng)的項(xiàng);Application Server Directory和Classpath Variable兩項(xiàng)都是指向Tomcat的安裝目錄:C:\Program Files\Apache Software Foundation\Tomcat 5.0。

圖9.16 Tomcat在Lomboz中的設(shè)置
(3)Tomcat5.0.28版本在Lomboz中無法啟動(dòng),必須還要做一些小修改。到Lomboz插件的“..\lomboz_3.1.0.N20050106\eclipse\plugins\com.objectlearn.jdt.j2ee_3.0.1\servers”目錄中,可以看到各種Web服務(wù)器的配置文件,它們都會(huì)顯示在上圖9.16的server types下拉框中,除了tomcat50x.server文件外,其他都不需要,把它們都刪除掉或者備份到其他地方。最后,用記事本打開tomcat50x.server,并將所有“${serverRootDirectory}/bin;${serverRootDirectory}/common/endorsed”項(xiàng)替換成“${serverRootDirectory}/common/endorsed”,共有兩處,約在文件中的35、39行位置。
9.1.5 JSP的HelloWorld
本小節(jié)將寫一個(gè)JSP的HelloWorld,用來驗(yàn)證以上Tomcat和Lomboz的環(huán)境是否安裝成功。
1、設(shè)置Java的構(gòu)建路徑
打開Eclipse首選項(xiàng),如下圖9.17所示,選擇“java”→“構(gòu)建路徑”→選擇“文件夾”項(xiàng)。經(jīng)過此步設(shè)置之后,新建的Java項(xiàng)目(包括J2EE項(xiàng)目)就會(huì)默認(rèn)以bin為輸出目錄。
l 注意:這一步相當(dāng)重要,因?yàn)橛?/SPAN>Lomboz創(chuàng)建J2EE項(xiàng)目時(shí),是無法象創(chuàng)建普通Java項(xiàng)目那樣選擇“項(xiàng)目布局”的,此時(shí)J2EE項(xiàng)目的輸出目錄將會(huì)是在項(xiàng)目根目錄下,以后JavaBean的java文件也會(huì)和class文件混在一塊,非常不便。更關(guān)鍵的是,在后面會(huì)要重新定位JavaBean的輸出路徑,如果不經(jīng)過這一步,則定位JavaBean的輸出路徑時(shí),整個(gè)項(xiàng)目的輸出路徑也會(huì)自動(dòng)定位到bin目錄下,但此時(shí)項(xiàng)目結(jié)構(gòu)都會(huì)調(diào)整,容易導(dǎo)致混亂。總之,此步一定不能省略。

圖9.17 設(shè)置Java項(xiàng)目的構(gòu)建路徑
2、創(chuàng)建一個(gè)J2EE項(xiàng)目
(1)重啟Eclipse。選擇“文件”→“新建”→“項(xiàng)目”,選擇如下圖9.18所示的“Lomboz J2EE Project”項(xiàng)目,然后單擊“下一步”。

圖9.18 選擇“Lomboz J2EE Project”項(xiàng)目
(2)輸入項(xiàng)目名稱myweb,然后單擊“下一步”。
(3)在接下的“定義Java構(gòu)建設(shè)置”頁中不做任何改變,直接單擊“下一步”。
(4)最后一個(gè)頁面是J2EE的設(shè)置,如下圖9.19、9.20所示。共有三步:創(chuàng)建一個(gè)名為hello的Web Modules(WEB模塊);在Targeted Servers選項(xiàng)卡中,選擇“Apache Tomcat v5.0.x”項(xiàng)并單擊“Add”加入;單擊“完成”按鈕,開始生成一個(gè)J2EE項(xiàng)目。

圖9.19 創(chuàng)建一個(gè)Web Modules

圖9.20 設(shè)置Targeted Servers
(5)完成以上操作之后,“包資源管理器”視圖中會(huì)出現(xiàn)如下圖9.21所示的項(xiàng)目結(jié)構(gòu)。

圖9.21 myweb項(xiàng)目的項(xiàng)目結(jié)構(gòu)
3、在Lomboz中啟動(dòng)Tomcat
右鍵單擊“hello模塊”,彈出如下圖9.22所示的右鍵菜單,選擇Run Server來啟動(dòng)Tomcat(啟動(dòng)前確保Tomcat還是停止?fàn)顟B(tài))。在這個(gè)菜單中還有其他常用的菜單項(xiàng):
l Stop Server - 停止Tomcat
l Debug Server - 用調(diào)試方式啟動(dòng)Tomcat。在WEB開發(fā)中,它比Run Server更常用。
l Check All JSP Syntax - 檢查項(xiàng)目中所有JSP文件的語法是否符合規(guī)范
l Undeploy Module - 刪除已經(jīng)發(fā)布在Tomcat上的WEB模塊
l Deploy Module - 發(fā)布WEB模塊到Tomcat上
l Show in Browser - 在IE中預(yù)覽本WEB模塊的效果。

圖9.22 hello模塊的右鍵菜單
如果啟動(dòng)Tomcat成功,在控制臺(tái)會(huì)顯示如下圖9.23所示的字符串。

圖9.23 控制臺(tái)的輸出顯示
4、發(fā)布hello模塊
右鍵單擊hello模塊,打開如上圖9.22所示的右鍵菜單,選擇Deploy Module項(xiàng),將hello模塊發(fā)布到Tomcat。
從下圖9.24的控制臺(tái)輸出,可以看出Lomboz使用Ant來發(fā)布網(wǎng)頁,每一行都顯示出hello模塊的打包發(fā)布過程,下面給出一些關(guān)鍵詞解釋:
l mkdir - 創(chuàng)建目錄
l copy - 復(fù)制文件
l jar - 用JDK的jar來打包(這里是打包成hello.war)
l delete - 刪除文件

圖9.24 發(fā)布hello模塊時(shí)的控制臺(tái)輸出
再次調(diào)出hello模塊的右鍵菜單,選擇Show in Browser項(xiàng)。Lomboz將打開IE瀏覽器,得到如下圖9.25所示的效果,也可以直接打開IE瀏覽器,輸入地址“http://127.0.0.1:8080/hello/”來查看效果。這個(gè)頁面顯示的是index.jsp文件。

圖9.25 用IE來查看網(wǎng)頁效果
5、修改index.jsp
如下圖9.26所示,修改index.jsp來顯示一個(gè)HelloWorld字符串。

圖9.26 修改index.jsp
保存好之后,還要再用“Deploy Module” 菜單項(xiàng)重新發(fā)布hello模塊,然后才能在IE中看到修改后的效果。
6、一些相關(guān)問題
(1)如果看不到修改效果,有可能是IE的頁面緩存的原因,可以嘗試如下解決辦法:關(guān)掉IE,然后再打開,進(jìn)入“工具”→“Internate選項(xiàng)”,單擊下圖9.27中的“刪除文件”按鈕來刪除IE的網(wǎng)頁緩存。

圖9.27 刪除IE頁面緩存
(2)同樣是因?yàn)榫彺嬖颍谕V?/SPAN>Tomcat服務(wù)后,即使刷新網(wǎng)頁卻依然能正常顯示。將IE關(guān)掉重啟,頁面即會(huì)無法訪問。
(3)如果是在Eclipse中啟動(dòng)Tomcat的,則關(guān)閉Eclipse,Tomcat服務(wù)也隨之停止。但建議還是使用“Stop Server”菜單項(xiàng)來正常停止Tomcat服務(wù)。
9.1.6 如何不必發(fā)布就可以在IE上顯示W(wǎng)EB修改效果
經(jīng)過前面設(shè)置后,雖然可以開發(fā)WEB了,但每一次修改都要重新發(fā)布hello模塊,才能在IE上顯示修改后的效果,這無疑是開發(fā)時(shí)無法接受的,照這樣,開發(fā)的時(shí)間進(jìn)度至少要增加一倍。本小節(jié)將給出不必不發(fā)布就可以在IE上顯示修改效果的方法。
首先,解決的辦法是基于以下知識(shí)的:
l 在發(fā)布hello模塊時(shí),Lomboz是將hello模塊打成一個(gè)WAR壓縮包,然后復(fù)制到Tomcat的webapps目錄,在IE上顯示的網(wǎng)頁就是來自于這個(gè)目錄下的WAR壓縮包中,所以不能直接顯示修改后的JSP文件也是可以理解的了。
l Tomcat要發(fā)布網(wǎng)頁,不是必須得打成WAR包,也可以發(fā)布未經(jīng)壓縮的文件目錄。實(shí)際項(xiàng)目中,直接發(fā)布零散文件的方式居多,因?yàn)檫@樣更新JSP文件比較方便。
l 在Tomcat安裝目錄下的conf子目錄里有一個(gè)名為server.xml的文件,它可以用來定義一個(gè)新的WEB應(yīng)用。
由上面的知識(shí),可以得出以下解決思路:通過修改server.xml文件,定義一個(gè)新的WEB應(yīng)用,將這個(gè)WEB應(yīng)用定位到Eclipse的workspace目錄中的myweb項(xiàng)目。這樣設(shè)置以后,IE顯示的文件就是Eclipse中正在編寫的JSP文件了,也就是說,不必再經(jīng)過打包成WAR發(fā)布這一步。
具體操作步驟如下:
(1)為了避免干擾,先將原來發(fā)布的hello模塊刪除。
打開Tomcat主頁面:http://127.0.0.1:8080/。選擇鏈接“Tomcat Manager”,輸入用戶名密碼(admin、123456),得到如下圖9.28所示頁面。單擊hello模塊右側(cè)的“Undeploy”將hello模塊從Tomcat上的撤消發(fā)布。

圖9.28 撤消Tomcat上的hello模塊
(2)修改server.xml,定義一個(gè)新的WEB應(yīng)用
server.xml此文件的具體路徑如下:C:\Program Files\Apache Software Foundation\Tomcat 5.0\conf\server.xml。此server.xml文件最未尾的</Host>項(xiàng)之前插入一項(xiàng)<Context>的設(shè)置,<Context>的具體代碼如下:
<Context path="/hello"
reloadable="true"
docBase="C:\eclipse3.1M4\eclipse\workspace\myweb\hello"
workDir="C:\eclipse3.1M4\eclipse\workspace\myweb\bin" />
代碼說明:
l 注意一定要將以上代碼加在緊靠</Host>項(xiàng)之前,<Context>的幾個(gè)屬性可以分行寫,也可以寫成一行。
l path - 是指WEB模塊的名稱hello,這樣其訪問地址為:http://127.0.0.1:8080/hello/
l docBase - 定義jsp文件位置。本處指向Eclipse中hello模塊的路徑
l workDir - 在IE顯示之前,JSP要先編譯成servlet,這個(gè)屬性就是定義hello模塊輸出的servlet的所在位置。如下圖9.29所示,因?yàn)樗ǖ?/SPAN>myweb項(xiàng)目默認(rèn)的輸出路徑為myweb\bin目錄,所以這里的workDir也定位到此myweb\bin目錄。

圖9.29 myweb項(xiàng)目的默認(rèn)輸出文件夾
(4)右鍵單擊“hello”模塊→選擇Lomboz J2EE→選擇Debug Server(或Run Server)。然后,在IE瀏覽器中輸入“http://127.0.0.1:8080/hello/”來查看效果。最后,隨便修改一下index.jsp文件,直接刷新一下IE,如果可以看到修改后的效果,表示以上所有設(shè)置成功。
如下圖9.30所示的“導(dǎo)航器”視圖(注意:不是“包資源管理器”視圖),index.jsp在經(jīng)過IE顯示之后生成幾個(gè)新文件和目錄(可能需要先刷新一下myweb項(xiàng)目):

圖9.30 myweb項(xiàng)目結(jié)構(gòu)
9.1.7 配置Tomcat的數(shù)據(jù)庫連接池
在WEB開發(fā)中,有沒有數(shù)據(jù)庫連接池對(duì)WEB性能的影響非常大,Tomcat有自帶的連接池,這一節(jié)就來配置Tomcat的連接池。
1、復(fù)制JDBC連接包
將第8章使用的JDBC連接包mysql-connector-java-3.0.16-ga-bin.jar復(fù)制到C:\Program Files\Apache Software Foundation\Tomcat 5.0\common\lib目錄下,common\lib是Tomcat的全局引用庫的所在目錄,Tomcat在啟動(dòng)時(shí)會(huì)自動(dòng)加載這個(gè)目錄中的所有JAR包。
有些網(wǎng)上的文章說也可以將數(shù)據(jù)庫連接包復(fù)制到WEB應(yīng)用的WEB-INF\lib中(本例的myweb\hello\WEB-INF\lib目錄),這個(gè)目錄是hello模塊發(fā)布時(shí)會(huì)自動(dòng)加載的一個(gè)包目錄。但經(jīng)筆者實(shí)驗(yàn),如果連接包將放在此目錄中,不用數(shù)據(jù)庫連接池方式來訪問數(shù)據(jù)庫,則連接包可以正常使用;如果使用Tomcat連接池,則會(huì)出錯(cuò)誤,連接包無法使用。
2、進(jìn)入Tomcat的配置頁面
用IE瀏覽器輸入地址:http://127.0.0.1:8080/admin/ ,打開Tomcat服務(wù)器配置的登錄頁面,再輸入用戶名admin、密碼123456,進(jìn)入Tomcat的配置頁面,如下圖9.31所示:

圖9.31 連接池設(shè)置
單擊左邊的樹結(jié)點(diǎn)“Data Source”→選擇右上角的下拉框的“Create New Data Source”項(xiàng),然后在表格中輸入相應(yīng)的連接池配置信息:
l JNDI Name:jdbc/mysql - 設(shè)置連接池的JNDI名,在Java程序會(huì)用到此名。
l Data Source URL:jdbc:mysql://localhost/sms - 數(shù)據(jù)庫連接字串,sms是數(shù)據(jù)庫。
l JDBC Driver Class:com.mysql.jdbc.Driver - JDBC連接類。
l User Name:root - 數(shù)據(jù)庫登錄用戶名。
l Password:****** - 數(shù)據(jù)庫登錄密碼。本例為123456。
l Max. Active Connections:4 - 最大連接數(shù)。實(shí)際應(yīng)用時(shí),應(yīng)該根據(jù)WEB使用情況設(shè)置得大一些;開發(fā)時(shí),4個(gè)連接足夠了。
l Max. Idle Connections:2 - 最大空閑連接數(shù)。
l Max. Wait for Connection:5000 - 最大等待連接限制。
l Validation Query:驗(yàn)證用的查詢語句,可以不填。
填寫完以上信息之后,單擊右下角的“Save”按鈕保存修改,再單擊右上角的“Commit Changes”按鈕提交修改。
3、修改Tomcat的server.xml文件
server.xml文件的具體路徑:C:\Program Files\Apache Software Foundation\Tomcat 5.0\conf\server.xml,在原來的<Context>項(xiàng)中加入一個(gè)子項(xiàng)< ResourceLink>:
<Context path="/hello"
reloadable="true"
docBase="C:\eclipse3.1M4\eclipse\workspace\myweb\hello"
workDir="C:\eclipse3.1M4\eclipse\workspace\myweb\bin">
<ResourceLink name="jdbc/mysql"
global="jdbc/mysql"
type="javax.sql.DataSourcer"/>
</Context>
4、測(cè)試數(shù)據(jù)庫連接池
將以下測(cè)試程序命名為test.jsp,創(chuàng)建在hello模塊的根目錄下,然后通過IE地址:http://127.0.0.1:8080/hello/test.jsp來訪問。這個(gè)測(cè)試程序從數(shù)據(jù)庫連接池中獲得一個(gè)數(shù)據(jù)庫連接對(duì)象Connection,然后再查詢數(shù)據(jù)庫的iuser表,并用name(姓名)列的數(shù)據(jù)打印出來(注:iuser是在第8章創(chuàng)建的用戶表)。test.jsp運(yùn)行效果如下圖9.32所示:

圖9.32 test.jsp的效果
test.jsp源代碼如下:
<%@ page contentType="text/html; charset=GBK"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%
Connection con=null;
Statement sm=null;
ResultSet rs=null;
try{
InitialContext ctx=new InitialContext();
DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/mysql");
con = ds.getConnection();
sm = con.createStatement();
rs = sm.executeQuery("select * from iuser");
while(rs.next())
out.println(rs.getString("name")+",");
}catch(Exception e){
e.printStackTrace();
}finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {}
rs = null;
}
if (sm != null) {
try {
sm.close();
} catch (SQLException e) {}
sm = null;
}
if (con != null) {
try {
con.close();
} catch (SQLException e) {}
con = null;
}
}
%>
程序說明:
l <%@ page contentType="text/html; charset=GBK"%> 這一行是設(shè)置網(wǎng)頁的字符集,也是解決中文亂碼問題的關(guān)鍵一句。如果是純html頁面,則應(yīng)在</HEAD>項(xiàng)之前加入這樣一句:<META http-equiv=Content-Type content="text/html; charset=GBK">。
l <%@ page import="java.sql.*"%> 這一句類似于Java中的import java.sql.*。
l ctx.lookup("java:comp/env/jdbc/mysql"); 這一句中comp/env是固定不變的,jdbc/mysql是前面連接池設(shè)置的JNDI Name。
l 在程序最后一定要關(guān)閉數(shù)據(jù)庫連接(實(shí)際是將連接返回給連接池,并沒有真正關(guān)閉),否則,很快就會(huì)因連接數(shù)耗盡,而無法再正常顯示JSP頁面。