r用JBuilderX開發(fā)WEB應(yīng)用程序.doc_第1頁
r用JBuilderX開發(fā)WEB應(yīng)用程序.doc_第2頁
r用JBuilderX開發(fā)WEB應(yīng)用程序.doc_第3頁
r用JBuilderX開發(fā)WEB應(yīng)用程序.doc_第4頁
r用JBuilderX開發(fā)WEB應(yīng)用程序.doc_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

Java 學(xué)習(xí)資料之一 制作: 劉晏 2/18/2019Borland公司的JBuilder是世界領(lǐng)先的Java開發(fā)環(huán)境。目前最新版本JbuilderX是一個開發(fā)企業(yè)級Java應(yīng)用的綜合性跨平臺環(huán)境,它在使JBuilder屢獲殊榮的性能上,增加了很多新的特性,從而成為目前最強大的 Java可視化開發(fā)環(huán)境。本文將通過一個簡單的WEB項目,使您快速進入JBuilderX的殿堂。JBuilderX的功能極其豐富,本文不會也不可能面面俱到地介紹所有的功能,只會對涉及例子項目開發(fā)的一些容易忽視或不容易掌握的功能展開介紹,而對一些常見的功能將一點而過,或不提及,相信您可以在項目開發(fā)操作過程中自然掌握那些基本的功能。您也可以通過JBuilderX在線幫助文檔來了解和掌握這些內(nèi)容,推薦您閱讀help-JBuilder toturials中前4個基礎(chǔ)教程。項目介紹雖然JBuilderX可以用于開發(fā)桌面、無線、applet等應(yīng)用程序,但80%以上的使用者用它開發(fā)J2EE的WEB應(yīng)用程序,所以我設(shè)計了一個簡單的WEB應(yīng)用項目,亦步亦趨地帶領(lǐng)您開發(fā)出一個可以運行的WEB應(yīng)用程序。這個WEB項目只包含一個用戶登錄的功能,其系統(tǒng)框圖如下: 圖1. 系統(tǒng)框圖 其中web應(yīng)用服務(wù)器為tomcat4.1,數(shù)據(jù)庫服務(wù)器為oracle10g。這個項目包括以下內(nèi)容:1) 用戶表T_USER:用于保存用戶的信息2) 登錄頁面login.htm:讓用戶錄入用戶名和密碼3) 用戶信息javaBean類UserBean:包括三個屬性,即用戶ID和用戶密碼及用戶名4) 獲取數(shù)據(jù)庫連接類DSBean:獲取數(shù)據(jù)庫鏈接,以便操作數(shù)據(jù)庫5) 用戶登錄處理頁面execute.jsp:將用戶id,用戶密碼和數(shù)據(jù)庫中的比較,產(chǎn)生結(jié)果頁面6) 異常處理頁面error.jsp:當(dāng)發(fā)生異常時轉(zhuǎn)入異常處理頁面,顯示人性化的錯誤信息項目中各項部分的協(xié)作關(guān)系如下圖:圖2. 系統(tǒng)中各部分的協(xié)作關(guān)系 創(chuàng)建數(shù)據(jù)庫首先以system用戶登錄oracle數(shù)據(jù)庫,創(chuàng)建數(shù)據(jù)庫用戶:create user test identified by test;grant connect,resource to test; 用戶信息表T_USER,該包括三個字段,其表的結(jié)構(gòu)如下:字段名類型 注釋user_ID varchar2(10) 用戶IDuser_name varchar2(20) 用戶名password varchar2(30) 用戶密碼以test用戶登錄數(shù)據(jù)庫,運行以下語句SQL,創(chuàng)建用戶信息表:create table T_USER ( USER_ID VARCHAR2 (10) PRIMARY KEY, USER_NAME VARCHAR2(20), PASSWORD VARCHAR2(30)/往表中插入兩條用戶信息:insert into T_USER values(zhangshang,張三,123456);insert into T_USER values(lisi,李四,abc);commit;創(chuàng)建項目工程創(chuàng)建工程:File-New Project出現(xiàn)下面的界面:圖3. 創(chuàng)建項目工程 項目取名為loginPro,放置在D:/loginPro路徑中,一路按Next就可以了。創(chuàng)建完項目工程后,在工程下創(chuàng)建一個Web模塊:File-New.-左邊樹選擇Web-雙擊右邊窗口的Web Module(WAR)項目-在彈出的窗口中點選Create empty Web Module,按Next-在彈出的窗口中按以下設(shè)置:圖4. 設(shè)置web模塊路徑和技術(shù)標(biāo)準(zhǔn) web模塊的名稱為loginWeb,放置在項目路徑下的loginWeb子文件夾中,設(shè)置Servlet和JSP的版本。在設(shè)置完后直接點擊Finish完成Web模塊的創(chuàng)建。特別提醒讀者,如果您開發(fā)的是Web項目,一定要創(chuàng)建Web模塊,只有這樣,在工程中開發(fā)的Java類在Rebuild后,JBuilderX才會調(diào)用Ant工具,將編譯后的class文件同步到web模塊的WEB-INF目錄中。筆者曾經(jīng)有一個朋友向我報怨說用JBuilder開發(fā)WEB程序很麻煩,原來他沒有在工程中創(chuàng)建Web模塊,每次更改類后,都不辭辛苦地將編譯后的類手工拷到到WEB應(yīng)用的WEB-INFclasses目錄下,殊不知,金光大道已經(jīng)開通,而自己還在羊腸小道里掙扎。編寫類本項目中包括兩個類,一個是用戶信息類UserBean.java,另一個是獲取數(shù)據(jù)庫連接類DSBean.java。下面我們來編寫這兩個類:首先編寫UserBean.java類:File-New Class.彈出如下的窗口:圖5. 編寫類向?qū)?在類向?qū)У拇翱诮缑嫔箱浫腩惖拿諹serBean,包名默認(rèn)的是項目的名稱,您可以更改其他更用意義的包名,我們簡單地接受默認(rèn)的包名。按OK后,在編輯窗口中得到如下的類代碼:package loginpro;public class UserBean public UserBean() 下面我們給UserBean類添加3個屬性:在UserBean的編輯窗口的底部點擊Bean標(biāo)簽頁-選擇Bean標(biāo)簽下的Properties的子標(biāo)簽頁-在Properties頁面中通過Add Property來添加類的屬性,點擊該按鈕彈出屬性窗口-在此窗口中添加屬性。不過筆者以為這種常規(guī)的給類添加屬性的方法比較笨拙,效率很低,您可以直接通過在類中鍵入全局變量,然后再按上面的步驟切換到Properties標(biāo)簽頁,JBuilderX會自動將全局變量列在這個頁面中,通過鉤選Getter和Setter列中的復(fù)選框,變量的set和get方法就自動產(chǎn)生了,筆者在編寫程序的時候選擇采用這種方法。添加全局變量后,UserBean代碼如下(其中粗體紅色為新增的代碼,下同):package loginpro;public class UserBean private String userID;private String userName;private String password;public UserBean() 切換到Properties頁面,鉤選所有的Getter和Setter切換回代碼頁面后,屬性的get和set方法都自動生成了:.public class UserBean.public String getPassword() return password; public String getUserID() return userID;public String getUserName() return userName;public void setUserName(String userName) this.userName = userName;public void setUserID(String userID)this.userID = userID;public void setPassword(String password)this.password = password; 編寫好UserBean后我們再來編寫獲取數(shù)據(jù)連接的DSBean,在編寫這個類之前,因為該類需要用到Oracle的JDBC包,所以我們需要將oracle JDBC的jar包加載到類庫中,再將其引入項目工程里。目前oracle最新的版本是oracle10g,如果您安裝了oracle10g,則JDBC包位于ORACLE_HOMEjdbclibclasses12.jar,如果您未安排數(shù)據(jù)庫,您可以到這兒下載JDBC驅(qū)動包,它是向下兼容的。假設(shè)我們已經(jīng)將其下載到D:extra目錄中,我們通過以下操作將其加載到JBuilderX的類庫中:Tools-點擊Configure Libraries彈出Configure Libraries窗口,如圖6,首先點擊Configure Libraries窗口左下方的New.彈出New Library Wizard窗口,在窗口中給該類取一個名字叫jdbcLib,再點擊該窗口的Add.按鈕彈出Select One or More Directories窗口,定位到D:extra目錄,選取class12.jar,然后確認(rèn)即可。圖6. 添加新類到JBuilderX類庫中 接下來我們需要在項目中引用類庫中這個新的jar包,這樣項目才可以訪問這個JDBC的jar包:Project-Project Properties在彈出的窗口左邊的樹中選擇Paths,按照圖7的操作完成引用的任務(wù):圖7. 添加jdbc的jar包到項目中 需要指出的是,如果項目需要引用大量的外部jar包,則可以將這些jar包組織到一個目錄下,然后將整個目錄加入到類庫,在項目工程中引用該目錄對應(yīng)的類庫名就可以在項目中調(diào)用這些包了。當(dāng)Rebuild項目時,JBuilderX還會將這些包同步到WEB應(yīng)用的目錄中。現(xiàn)在萬事俱備了,我們開始編寫DSBean.java:package loginpro;import java.sql.*;public class DSBean public static Connection getConnection() throws SQLExceptiontryClass.forName(oracle.jdbc.driver.OracleDriver);catch (ClassNotFoundException ex)System.out.println(數(shù)據(jù)庫驅(qū)動程序沒有找到。); return DriverManager.getConnection(jdbc:oracle:thin:192.168.0.189:1521:ora9i, test, test); 我的數(shù)據(jù)庫裝在IP為192.168.0.189的機器上,數(shù)據(jù)庫的SID是ora9i,讀者在編寫時必須根據(jù)您的數(shù)據(jù)庫的具體情況作相應(yīng)的更改。編寫完這兩個類后,我們可以在項目工程面板中右擊loginPro.jpx,選擇Rebuild,來編譯這兩個類,編譯完后的類不但會輸出到D:loginProclasses目錄下,同時還將同步到D:loginProloginWebWEB-INFclasses目錄中,并且將會將項目中引用的外部包拷貝一份到D:loginProloginWebWEB-INFlib目錄下。值得注意的是,如果用Make命令來編譯,則類只會輸出到D:loginProclasses中,而不會同步到D:loginProloginWebWEB-INFclasses目錄。對J2EE的web目錄結(jié)構(gòu)的探討超越本文內(nèi)容,請自行閱讀相關(guān)資料。登錄頁面和處理頁面編寫用戶登錄的頁面login.htm:File-New File.彈出以下對話框:圖8. 創(chuàng)建login.htm 在編輯窗口鍵入以下的頁面代碼:htmlbodyform name=form1 method=post action=execute.jspinput type=text name=userIDinput type=text name=passwordinput type=submit name=Submit value=提交/form/body/html該登錄頁面接受用戶輸入的用戶id和密碼,提交給execute.jsp頁面處理,下面我們來編寫execute.jsp:File-New.-在Object Gallery窗口中左邊的樹中選擇Web-在右邊窗口中雙擊JavaServer Page圖標(biāo)將彈出如下的對話框:圖9. JSP頁面向?qū)?在該對話框中的Name中鍵入JSP頁面的名字:execute,點擊Next,在彈出的頁面中再點擊Next,進入向?qū)У牡?步,在這步中,允許您設(shè)置頁面引用的JavaBean:圖10. 設(shè)置JSP頁面引用的JavaBean 點擊OK后,loginpro.UserBean類被定義為該頁面的一個JavaBean,其id默認(rèn)名為bean0,我們將其改為userBean,列表中還允許您指定這個JavaBean的作用域,我們選擇session。直接點擊Finish得到execute.jsp文件的代碼:% page contentType=text/html; charset=GBK %htmlheadtitleexecute/title/headjsp:useBean id=userBean scope=session class=loginpro.UserBean /jsp:setProperty name=userBean property=* /body bgcolor=#ffffff/body/html需要指出的是jsp:setProperty name=userBean property=* /以參數(shù)名匹配的方式接收客戶端發(fā)送過來的參數(shù)值,在這里,當(dāng)login.htm提交后userBean的userID和password兩個將被設(shè)置為login.htm頁面表單中兩個輸入框的值。接收到客戶端的值后,程序?qū)⑵浜蛿?shù)據(jù)庫中T_USER表中的記錄作比較,以便查明是否是合法用戶,現(xiàn)在我們給execute.jsp添加代碼,完成這些處理工作:% page contentType=text/html; charset=GBK errorPage=error.jsp% page import=java.sql.*% page import=loginpro.DSBean%htmlhead.jsp:setProperty name=userBean property=* /body bgcolor=#ffffff% Connection conn = DSBean.getConnection();String sqlStr = select count(*) from T_USER where USER_ID=? and password=?; PreparedStatement pStat = conn.prepareStatement(sqlStr); pStat.setString(1,userBean.getUserID(); pStat.setString(2,userBean.getPassword(); ResultSet rs = pStat.executeQuery(); if(rs.next() & rs.getInt(1) = 1)out.print(您是合法的用戶,歡迎您的到來!); else out.print(密碼不對,或者您還沒有注冊為系統(tǒng)的用戶);%body bgcolor=#ffffff.我們只是簡單地將userID和password的值發(fā)送到數(shù)據(jù)庫中進行比較,在真正的應(yīng)用中,一定事先要檢查userID和password的值是否有單引號(),如果有,必須將其轉(zhuǎn)換成兩個單引號(),否則將產(chǎn)生安全漏洞問題,有興趣的朋友可以在網(wǎng)上查找相關(guān)資料。最后的一個JSP是處理錯誤和異常的error.jsp,它的代碼如下:% page contentType=text/html; charset=GBK isErrorPage=true % page import=java.sql.SQLException%htmlheadtitleerror/title/headbody bgcolor=#ffffff% if( exception instanceof SQLException ) out.println(發(fā)生了數(shù)據(jù)庫操作異常,請和系統(tǒng)管理員聯(lián)系); else out.println(發(fā)生了不可知的異常,請和系統(tǒng)管理員聯(lián)系); %/body/html當(dāng)execute.jsp發(fā)現(xiàn)數(shù)據(jù)庫操作或其他的異常時,將會跳轉(zhuǎn)到該錯誤處理頁面,打印出可讀性強的錯誤信息。由于JBuilderX對頁面可視化的支持不強,您也可以在Dreamweaver中完成HTML及JSP可視化內(nèi)容的開發(fā),而在JBuilderX中完成邏輯處理部分的開發(fā),畢竟這個世界永遠(yuǎn)需要協(xié)作。在JBuilderX中運行WEB程序至此我們已經(jīng)完成了項目中所有程序的開發(fā)工作,下面我們將在JBuilderX中運行該WEB程序。在運行程序之前,必須保證已經(jīng)設(shè)置了WEB服務(wù)器。Project-Project Properties.-在彈出窗口左邊樹中設(shè)置Server:在Single Server for all services in project選項里選擇Tomcat4.1,其默認(rèn)的設(shè)置是Tomcat4.0。如果您給JBuilderX配置了其他的WEB服務(wù)器,如WebSphere或WebLogic,它們都會列在該下拉框中。但是,我將不擬對此展開討論,一個主要原因是,雖然JBuilderX允許您在開發(fā)環(huán)境中設(shè)置并運行這些服務(wù),但由于這些重量級的WEB服務(wù)開啟或關(guān)閉都需要很長的時間,給測試帶來了很大的不便。所以我們一般的作法是先在輕量級的WEB服務(wù)(一般是Tomcat中)中完成測試,再將其部署到真正的企業(yè)級WEB服務(wù)器中去。更進一步,我們將不在JBuilderX中運行Tomcat測試,而是通過外部的Tomcat來測試,否則當(dāng)JBuilderX開啟測試的WEB服務(wù)后會給更改程序帶來了不便。關(guān)于tomcat配置討論已經(jīng)超出了本文范圍,有興趣的朋友可以自行研究。為了簡單,本文將在JBuilderX環(huán)境中完成測試。在編輯窗口中鼠標(biāo)右擊login.htm的標(biāo)簽,選擇Web Run using “execute”:圖11. 運行WEB服務(wù) JBuilderX將自動完成WEB配置信息的設(shè)置并在8080端口啟動WEB服務(wù),login.htm登錄頁面展示出來接受用戶的錄入,我們以zhangshang/123456登錄:圖12. 用戶登錄 如果此時數(shù)據(jù)庫還沒有啟動則execute.jsp轉(zhuǎn)到error.jsp,錯誤頁面輸出以下內(nèi)容:圖13. 錯誤頁面 在保證數(shù)據(jù)庫啟動及連接正常后,將得到正確登錄的頁面:圖14. 登錄成功的頁面 您也可以啟動IE,在IE的地址欄中鍵入正確的地址來運行程序。一些常見問題的解決方法在使用JBuilderX開發(fā)項目過程中,您可能會碰到一些小麻煩,在這里我將介紹兩個常見的經(jīng)常影響開發(fā)者情緒的問題及其解決方法。1、編輯界面不支持中文:您在編輯界面中鍵入的中文會變成一串不可識別的“口口口”,這個問題好象

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論