




已閱讀5頁,還剩6頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Java 學習資料之一 制作: 劉晏 2/18/2019Borland公司的JBuilder是世界領先的Java開發環境。目前最新版本JbuilderX是一個開發企業級Java應用的綜合性跨平臺環境,它在使JBuilder屢獲殊榮的性能上,增加了很多新的特性,從而成為目前最強大的 Java可視化開發環境。本文將通過一個簡單的WEB項目,使您快速進入JBuilderX的殿堂。JBuilderX的功能極其豐富,本文不會也不可能面面俱到地介紹所有的功能,只會對涉及例子項目開發的一些容易忽視或不容易掌握的功能展開介紹,而對一些常見的功能將一點而過,或不提及,相信您可以在項目開發操作過程中自然掌握那些基本的功能。您也可以通過JBuilderX在線幫助文檔來了解和掌握這些內容,推薦您閱讀help-JBuilder toturials中前4個基礎教程。項目介紹雖然JBuilderX可以用于開發桌面、無線、applet等應用程序,但80%以上的使用者用它開發J2EE的WEB應用程序,所以我設計了一個簡單的WEB應用項目,亦步亦趨地帶領您開發出一個可以運行的WEB應用程序。這個WEB項目只包含一個用戶登錄的功能,其系統框圖如下: 圖1. 系統框圖 其中web應用服務器為tomcat4.1,數據庫服務器為oracle10g。這個項目包括以下內容:1) 用戶表T_USER:用于保存用戶的信息2) 登錄頁面login.htm:讓用戶錄入用戶名和密碼3) 用戶信息javaBean類UserBean:包括三個屬性,即用戶ID和用戶密碼及用戶名4) 獲取數據庫連接類DSBean:獲取數據庫鏈接,以便操作數據庫5) 用戶登錄處理頁面execute.jsp:將用戶id,用戶密碼和數據庫中的比較,產生結果頁面6) 異常處理頁面error.jsp:當發生異常時轉入異常處理頁面,顯示人性化的錯誤信息項目中各項部分的協作關系如下圖:圖2. 系統中各部分的協作關系 創建數據庫首先以system用戶登錄oracle數據庫,創建數據庫用戶:create user test identified by test;grant connect,resource to test; 用戶信息表T_USER,該包括三個字段,其表的結構如下:字段名類型 注釋user_ID varchar2(10) 用戶IDuser_name varchar2(20) 用戶名password varchar2(30) 用戶密碼以test用戶登錄數據庫,運行以下語句SQL,創建用戶信息表: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;創建項目工程創建工程:File-New Project出現下面的界面:圖3. 創建項目工程 項目取名為loginPro,放置在D:/loginPro路徑中,一路按Next就可以了。創建完項目工程后,在工程下創建一個Web模塊:File-New.-左邊樹選擇Web-雙擊右邊窗口的Web Module(WAR)項目-在彈出的窗口中點選Create empty Web Module,按Next-在彈出的窗口中按以下設置:圖4. 設置web模塊路徑和技術標準 web模塊的名稱為loginWeb,放置在項目路徑下的loginWeb子文件夾中,設置Servlet和JSP的版本。在設置完后直接點擊Finish完成Web模塊的創建。特別提醒讀者,如果您開發的是Web項目,一定要創建Web模塊,只有這樣,在工程中開發的Java類在Rebuild后,JBuilderX才會調用Ant工具,將編譯后的class文件同步到web模塊的WEB-INF目錄中。筆者曾經有一個朋友向我報怨說用JBuilder開發WEB程序很麻煩,原來他沒有在工程中創建Web模塊,每次更改類后,都不辭辛苦地將編譯后的類手工拷到到WEB應用的WEB-INFclasses目錄下,殊不知,金光大道已經開通,而自己還在羊腸小道里掙扎。編寫類本項目中包括兩個類,一個是用戶信息類UserBean.java,另一個是獲取數據庫連接類DSBean.java。下面我們來編寫這兩個類:首先編寫UserBean.java類:File-New Class.彈出如下的窗口:圖5. 編寫類向導 在類向導的窗口界面上錄入類的名字UserBean,包名默認的是項目的名稱,您可以更改其他更用意義的包名,我們簡單地接受默認的包名。按OK后,在編輯窗口中得到如下的類代碼:package loginpro;public class UserBean public UserBean() 下面我們給UserBean類添加3個屬性:在UserBean的編輯窗口的底部點擊Bean標簽頁-選擇Bean標簽下的Properties的子標簽頁-在Properties頁面中通過Add Property來添加類的屬性,點擊該按鈕彈出屬性窗口-在此窗口中添加屬性。不過筆者以為這種常規的給類添加屬性的方法比較笨拙,效率很低,您可以直接通過在類中鍵入全局變量,然后再按上面的步驟切換到Properties標簽頁,JBuilderX會自動將全局變量列在這個頁面中,通過鉤選Getter和Setter列中的復選框,變量的set和get方法就自動產生了,筆者在編寫程序的時候選擇采用這種方法。添加全局變量后,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后我們再來編寫獲取數據連接的DSBean,在編寫這個類之前,因為該類需要用到Oracle的JDBC包,所以我們需要將oracle JDBC的jar包加載到類庫中,再將其引入項目工程里。目前oracle最新的版本是oracle10g,如果您安裝了oracle10g,則JDBC包位于ORACLE_HOMEjdbclibclasses12.jar,如果您未安排數據庫,您可以到這兒下載JDBC驅動包,它是向下兼容的。假設我們已經將其下載到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,然后確認即可。圖6. 添加新類到JBuilderX類庫中 接下來我們需要在項目中引用類庫中這個新的jar包,這樣項目才可以訪問這個JDBC的jar包:Project-Project Properties在彈出的窗口左邊的樹中選擇Paths,按照圖7的操作完成引用的任務:圖7. 添加jdbc的jar包到項目中 需要指出的是,如果項目需要引用大量的外部jar包,則可以將這些jar包組織到一個目錄下,然后將整個目錄加入到類庫,在項目工程中引用該目錄對應的類庫名就可以在項目中調用這些包了。當Rebuild項目時,JBuilderX還會將這些包同步到WEB應用的目錄中。現在萬事俱備了,我們開始編寫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(數據庫驅動程序沒有找到。); return DriverManager.getConnection(jdbc:oracle:thin:192.168.0.189:1521:ora9i, test, test); 我的數據庫裝在IP為192.168.0.189的機器上,數據庫的SID是ora9i,讀者在編寫時必須根據您的數據庫的具體情況作相應的更改。編寫完這兩個類后,我們可以在項目工程面板中右擊loginPro.jpx,選擇Rebuild,來編譯這兩個類,編譯完后的類不但會輸出到D:loginProclasses目錄下,同時還將同步到D:loginProloginWebWEB-INFclasses目錄中,并且將會將項目中引用的外部包拷貝一份到D:loginProloginWebWEB-INFlib目錄下。值得注意的是,如果用Make命令來編譯,則類只會輸出到D:loginProclasses中,而不會同步到D:loginProloginWebWEB-INFclasses目錄。對J2EE的web目錄結構的探討超越本文內容,請自行閱讀相關資料。登錄頁面和處理頁面編寫用戶登錄的頁面login.htm:File-New File.彈出以下對話框:圖8. 創建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圖標將彈出如下的對話框:圖9. JSP頁面向導 在該對話框中的Name中鍵入JSP頁面的名字:execute,點擊Next,在彈出的頁面中再點擊Next,進入向導的第3步,在這步中,允許您設置頁面引用的JavaBean:圖10. 設置JSP頁面引用的JavaBean 點擊OK后,loginpro.UserBean類被定義為該頁面的一個JavaBean,其id默認名為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=* /以參數名匹配的方式接收客戶端發送過來的參數值,在這里,當login.htm提交后userBean的userID和password兩個將被設置為login.htm頁面表單中兩個輸入框的值。接收到客戶端的值后,程序將其和數據庫中T_USER表中的記錄作比較,以便查明是否是合法用戶,現在我們給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(密碼不對,或者您還沒有注冊為系統的用戶);%body bgcolor=#ffffff.我們只是簡單地將userID和password的值發送到數據庫中進行比較,在真正的應用中,一定事先要檢查userID和password的值是否有單引號(),如果有,必須將其轉換成兩個單引號(),否則將產生安全漏洞問題,有興趣的朋友可以在網上查找相關資料。最后的一個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(發生了數據庫操作異常,請和系統管理員聯系); else out.println(發生了不可知的異常,請和系統管理員聯系); %/body/html當execute.jsp發現數據庫操作或其他的異常時,將會跳轉到該錯誤處理頁面,打印出可讀性強的錯誤信息。由于JBuilderX對頁面可視化的支持不強,您也可以在Dreamweaver中完成HTML及JSP可視化內容的開發,而在JBuilderX中完成邏輯處理部分的開發,畢竟這個世界永遠需要協作。在JBuilderX中運行WEB程序至此我們已經完成了項目中所有程序的開發工作,下面我們將在JBuilderX中運行該WEB程序。在運行程序之前,必須保證已經設置了WEB服務器。Project-Project Properties.-在彈出窗口左邊樹中設置Server:在Single Server for all services in project選項里選擇Tomcat4.1,其默認的設置是Tomcat4.0。如果您給JBuilderX配置了其他的WEB服務器,如WebSphere或WebLogic,它們都會列在該下拉框中。但是,我將不擬對此展開討論,一個主要原因是,雖然JBuilderX允許您在開發環境中設置并運行這些服務,但由于這些重量級的WEB服務開啟或關閉都需要很長的時間,給測試帶來了很大的不便。所以我們一般的作法是先在輕量級的WEB服務(一般是Tomcat中)中完成測試,再將其部署到真正的企業級WEB服務器中去。更進一步,我們將不在JBuilderX中運行Tomcat測試,而是通過外部的Tomcat來測試,否則當JBuilderX開啟測試的WEB服務后會給更改程序帶來了不便。關于tomcat配置討論已經超出了本文范圍,有興趣的朋友可以自行研究。為了簡單,本文將在JBuilderX環境中完成測試。在編輯窗口中鼠標右擊login.htm的標簽,選擇Web Run using “execute”:圖11. 運行WEB服務 JBuilderX將自動完成WEB配置信息的設置并在8080端口啟動WEB服務,login.htm登錄頁面展示出來接受用戶的錄入,我們以zhangshang/123456登錄:圖12. 用戶登錄 如果此時數據庫還沒有啟動則execute.jsp轉到error.jsp,錯誤頁面輸出以下內容:圖13. 錯誤頁面 在保證數據庫啟動及連接正常后,將得到正確登錄的頁面:圖14. 登錄成功的頁面 您也可以啟動IE,在IE的地址欄中鍵入正確的地址來運行程序。一些常見問題的解決方法在使用JBuilderX開發項目過程中,您可能會碰到一些小麻煩,在這里我將介紹兩個常見的經常影響開發者情緒的問題及其解決方法。1、編輯界面不支持中文:您在編輯界面中鍵入的中文會變成一串不可識別的“口口口”,這個問題好象
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年Android性能優化最佳實踐分享一點面試小經驗-android 縮短inflate時間
- 建筑施工特種作業-建筑架子工附著式腳手架真題庫-7
- 森林消防演練題目及答案
- 如皋中考語文題目及答案
- 04《運動和力的關系》-2025高中物理水平合格考備考知識清單+習題鞏固
- 2023-2024學年云南省玉溪市高二下學期期末教學質量檢測數學試卷(解析版)
- 2024-2025學年山西省部分地市高二上學期期末考試語文試題(解析版)
- 店面房屋租賃合同范本-房屋店面租賃合同模板-店面租賃合同范本
- 中國石油新疆油田油氣儲運分公司環境影響后評價報告書
- 上呼吸道感染的治療講課件
- 計算物理面試題及答案
- JG/T 455-2014建筑門窗幕墻用鋼化玻璃
- 村文書考試題及答案
- 2025年中國鐵路西安局招聘高校畢業生第二批(102人)筆試參考題庫附帶答案詳解
- 創新創業策劃書格式
- 大數據在區域經濟學中的應用研究-洞察闡釋
- 美洲文化課件教學
- 2025屆重慶市巴川中學生物七下期末統考試題含解析
- 醫學檢驗進修匯報
- 2025春季學期河南電大本科補修課《民法學#》一平臺無紙化考試(作業練習+我要考試)試題及答案
- 《數據分析與可視化》課件
評論
0/150
提交評論