基于J2EE的公交查詢系統(tǒng)的設(shè)計與實現(xiàn)
20多年來,我國經(jīng)濟(jì)得到了延續(xù)、快速、穩(wěn)定、健康地發(fā)展。經(jīng)濟(jì)的快速增長,帶動了汽車工業(yè)的蓬勃發(fā)展,并使交通狀態(tài)顯著改良。據(jù)統(tǒng)計,中國公路通車總里程已達(dá)130余萬千米,其中高速公路約1.5萬千米。居民收入普遍提高,到2000年年底,人均GDP已超過800美元,沿海地區(qū)已達(dá)2000-3000美元。按國際發(fā)展慣例,當(dāng)人均GDP超越1000美元,汽車消費市場就將進(jìn)入快速增長時間。我國城市人口約有2億,略低于美國人口。東部沿海地區(qū)大部份居民已具有了汽車消費實力。據(jù)中國消費者協(xié)會2000年對20個大城市調(diào)查顯示,有32%的消費準(zhǔn)備在未來5年內(nèi)購買家用轎車,其中30.6%的無車消費者已有駕駛執(zhí)照。隨著個人信貸制度的啟動和日漸完善,家庭轎車的快速增長勢頭勢必開掘出巨大的中國汽車市場。
城市經(jīng)濟(jì)發(fā)展,城市范圍愈來愈大,相應(yīng)的城市公交系統(tǒng)也愈來愈龐大。許多新建小區(qū)大量出現(xiàn),公交線路也日漸增多,給人們的出行帶來了極大便利,但是由于城市范圍的不斷發(fā)展,給人們選擇出行乘車線路造成了1定的困難。即便1個在城市生活多年的人,給他任意兩個地點,要他說出這兩個地點之間的乘車方案,他常常也是很難說出來的。但是如果給他1張交通地圖以后,他可以很快地找出圖上的任意兩點之間的乘車方案,所找出的方案即便不是最優(yōu)的,也是1條可供參考的備選方案。但是這樣的查詢效力是相當(dāng)?shù)偷模孕枰峁?個高效的查詢系統(tǒng),才是問題更本所在。而基于J2EE的公交查詢系統(tǒng),就是利用B/S結(jié)構(gòu)開發(fā)出來的查詢系統(tǒng),它通過利用數(shù)據(jù)結(jié)構(gòu)當(dāng)中的最短路徑算法,可以查出任意兩個地點之間最短的乘車方案。它不但可以用于公交公司管理系統(tǒng)中,也能夠單獨作為公交管理系統(tǒng)的1個模塊存在,并可以制作成公交信息系統(tǒng)查詢網(wǎng),放置于城市的主要場所。這樣不但可以體現(xiàn)出1個城市的智能公交系統(tǒng)的水平,更顯示出城市的數(shù)字化,信息化水平。
目前,我國眾多大城市普遍存在交通擁堵,延誤人們平時上班時間。乃至影響了城市旅游業(yè)經(jīng)濟(jì)的可延續(xù)發(fā)展。所以為了切實的改良公交車內(nèi)擁堵狀態(tài),適當(dāng)增加發(fā)車次數(shù)以縮短乘客等車時間,但是能夠準(zhǔn)確為人們提供最短的乘車線路才是得到解決的最好辦法,這樣大大的縮短了人們的乘車時間。
本項目研究的基于J2EE的公交查詢系統(tǒng),讓人們通過互聯(lián)網(wǎng)很快的查出該城市任意兩站點之間的最短乘車線路。
本系統(tǒng)是從城市交通現(xiàn)狀動身,根據(jù)人們的出行規(guī)律,設(shè)計了1個完全的基于J2EE體系的公交車查詢系統(tǒng)。該系統(tǒng)可以根據(jù)商廈名稱,公交車號,平常站點和站點之間為查詢條件分別進(jìn)行查詢,解決了市民出行乘坐公交車時常常遇到的困難。
本系統(tǒng)模型構(gòu)架分為下面4層結(jié)構(gòu),以下。
(1)J2EE利用程序組件
J2EE利用程序是由組件構(gòu)成的。J2EE組件是具有獨立功能的軟件單元,它們通過相干的類和文件組裝成J2EE利用程序,并與其他組件交互。本系統(tǒng)包括以下組件:
①利用客戶端程序及J2EE服務(wù)器。
②Java Servlet和JavaServer Pages(JSP)Web組件及JavaBean。
(2)WEB層組件
J2EE web層組件包括JSP頁面或Servlet。依照J(rèn)2EE規(guī)范,還包括某些JavaBean對象來處理用戶輸入,并把輸入發(fā)送給運行在業(yè)務(wù)邏輯層上的組件來進(jìn)行處理。
(3)客戶層組件
基于WEB方式的靜態(tài)HTML頁面或是Applet客戶真?zhèn)€小利用程序。
(4)編寫算法
編寫最短路徑數(shù)據(jù)結(jié)構(gòu)算法,解決完成站點之間最短乘車路徑查詢。
開發(fā)工具:Eclipse 3.2 + MyEclipse 5.0GA。
運行環(huán)境:JSDK 1.5.0_04虛擬機。
服務(wù)器:Tomcat 5.5。
數(shù)據(jù)庫:MicroSoft SQL Server 2000。
操作系統(tǒng):Windows XP。
所需內(nèi)存:512 M。
J2EE是1種利用Java 2平臺來簡化企業(yè)解決方案的開發(fā)、部署和管理相干的復(fù)雜問題的體系結(jié)構(gòu)。J2EE技術(shù)的基礎(chǔ)就是核心Java平臺或Java 2標(biāo)準(zhǔn)平臺。J2EE不但鞏固了標(biāo)準(zhǔn)版中的許多優(yōu)點,例如“編寫1次、隨處運行”的特性、方便存取數(shù)據(jù)庫的JDBC API、CORBA技術(shù)和能夠在Internet利用中保護(hù)數(shù)據(jù)的安全模式等等,同時還提供了對EJB(Enterprise JavaBeans)、Java Servlet API、JSP(Java Server Pages)和XML技術(shù)的全面支持。其終究目的就是成為1個能夠使企業(yè)開發(fā)者大幅縮短投放市場時間的體系結(jié)構(gòu)。
JSP程序是1個服務(wù)端頁面腳本程序,可以在這個腳本中直接編寫客戶端閱讀器需要顯示的HTML文檔內(nèi)容,固然也能夠依照J(rèn)SP規(guī)范將Java程序代碼嵌入腳本。JSP腳本規(guī)范提供了若干內(nèi)部對象來簡化JSP程序和閱讀器之間的輸入輸出處理。由于JSP程序是從HTML頁面添加Java動態(tài)處理代碼而來,因此,JSP程序又稱為動態(tài)JSP頁面。
JavaBean是1種JAVA語言寫成的可重用組件,用戶可使用JavaBean將功能、處理、值、數(shù)據(jù)庫訪問和其他任何可以用java代碼創(chuàng)造的對象進(jìn)行打包,并且其他的開發(fā)者可以通過內(nèi)部的JSP頁面、Servlet、其他JavaBean、applet程序或利用來使用這些對象。用戶可以認(rèn)為JavaBean提供了1種隨時隨地的復(fù)制和粘貼的功能,而不用關(guān)心任何改變。這個對J2EE業(yè)務(wù)邏輯層處理具有相當(dāng)重要的部份。
Java Servlet使用的是1種要求/響應(yīng)機制,也就是說通過特定的Java程序設(shè)計技術(shù),由該Servlet動態(tài)產(chǎn)生的響應(yīng)向某1特定的要求做出響應(yīng)。Servlet所能利用的要求/響應(yīng)場合很多,但經(jīng)常使用的還是在Web利用程序中用于產(chǎn)生超文本傳輸協(xié)議響應(yīng)(HTTP)。據(jù)此,Servlet可能取代其他類型的HTTP要求/響應(yīng)機制,比方通用網(wǎng)關(guān)接口(CGI)腳本。
Session對象是類javax.servlet.Httpsession的1個對象,是用來保存每一個用戶信息(以會話的情勢直接保存在WEB服務(wù)器端),以便跟蹤每一個用戶的操作狀態(tài)。
J2EE結(jié)構(gòu)具有1個很大的特點,就是與平臺無關(guān)性的J2EE結(jié)構(gòu)。所開發(fā)出來的程序可以在任何操作系統(tǒng)下運行。這樣就使得J2EE程序的編寫變得10分簡單,由于業(yè)務(wù)邏輯被封裝成可以復(fù)用的組件,并且J2EE服務(wù)器以容器的情勢為所有的組件類型提供后臺服務(wù),所以你可以集中精力解決手頭的業(yè)務(wù)邏輯。
J2EE容器類型可以分為WEB容器和EJB容器。
EJB容器管理所有J2EE利用程序中企業(yè)級Bean的履行,Enterprise Bean和它們的容器運行在J2EE服務(wù)器上。
WEB容器也是管理所有J2EE利用程序中JSP和Servlet組件履行,同理WEB組件和它們的容器也是運行在J2EE服務(wù)器上的。
(1)表示層:Web Page| HTML | HTTP
(2)控制層:JSP | Servlets
(3)邏輯層:JavaBean
(4)數(shù)據(jù)層:Database
(5)JDBC
MVC(Model – View – Controller)
頁面bean是1個模型(model),而JSP是1個視圖(view), Servlet是1個控制器(controller)。
公交查詢系統(tǒng)的需求最主要是通過站點與車次之間的關(guān)系,利用數(shù)據(jù)結(jié)構(gòu)算法構(gòu)造1個公交查詢的網(wǎng)絡(luò)圖,然后通過最短路徑算法,為用戶準(zhǔn)確地提供兩站點之間的最短乘車線路。
其次從業(yè)務(wù)實現(xiàn)上來講,需要在業(yè)務(wù)邏輯層上編寫最短路徑算法,同時還要編寫當(dāng)用戶查詢要求時必須的數(shù)據(jù)庫連接,然后根據(jù)用戶提供查詢站點信息,建立公交查詢網(wǎng)絡(luò)圖,終究調(diào)用算法獲得兩站點之間的最短乘車線路。當(dāng)查詢完成后,如果用戶需要進(jìn)行其它的操作,則釋放該連接資源。
最后,為了讓公交線路信息得到及時的更新或是信息刪除,需要做出相應(yīng)的操作和處理。
圖3.1 系統(tǒng)數(shù)據(jù)流圖
(1)通過選擇商廈名稱進(jìn)行相應(yīng)的信息查詢。
(2)通過選擇車號進(jìn)行相應(yīng)的信息查詢。
(3)通過選擇站點進(jìn)行相應(yīng)的信息查詢。
(4)通過選擇任意兩個站點,完成兩站點之間最短乘車線路查詢。
(5)完成車次和站點添加功能。
(6)完成車次和站點更新功能。
(7)完成車次和站點刪除功能。
(8)用戶登錄驗證功能。
(9)用戶注冊信息功能。
(10)用戶注銷功能。
(11)刪除用戶信息功能。
(12)添加用戶留言,刪除用戶留言,查看用戶留言。
(13)管理員登錄驗證功能。
(14)管理員注銷功能。
圖3.2 用戶實體及屬性
圖3.3 管理員實體及屬性
圖3.4 留言板實體及屬性
圖3.5 車次與站點之間關(guān)系
(1)用戶表userInfo(如表3.1)
表3.1 用戶表信息
列名 |
中文名稱 |
數(shù)據(jù)類型 |
長度 |
允許空 |
username |
用戶名 |
varchar |
50 |
Not null |
userpassword |
用戶密碼 |
varchar |
50 |
Not null |
userage |
用戶年齡 |
int |
4 |
null |
address |
地址 |
varchar |
50 |
null |
|
郵箱 |
varchar |
50 |
null |
question |
問題 |
varchar |
50 |
null |
answer |
答案 |
varchar |
50 |
null |
idnum |
證件號 |
varchar |
50 |
null |
(1)打開Eclipse開工具,新建1個ConfirmServlet類(如圖4.1)
圖4.1 創(chuàng)建管理員登錄ConfirmServlet類
(2)在已創(chuàng)建好ConfirmServlet類中,生成1個具有私有屬性的login()方法,該方法就是對管理員要求過來的信息進(jìn)行驗證。該方法首先利用HttpServletRequest,HttpServletResponse進(jìn)行對象初始化。利用HttpServletRequest的getParameter()來獲得管理員頁面?zhèn)鱽淼膬蓚€參數(shù),1個是adminname,另外一個是adminpassword。然后調(diào)用自定義連接數(shù)據(jù)庫類進(jìn)行數(shù)據(jù)庫對象實例化,最后在進(jìn)行驗證的時候,獲得管理頁面驗證碼,如果驗證碼無誤就對管理員賬號和管理員密碼驗證,終究將正確的管理員賬號和管理員密碼放入session會話變量中。
管理員登錄界面(如圖4.2)
圖4.2 管理員登錄界面
相應(yīng)代碼:
(1)打開Eclipse開工具,新建1個UserLoginServlet類(如圖4.3)
圖4.3 創(chuàng)建用戶登錄UserLoginServlet類
(2)與管理員中的ConfirmServlet類1樣,也生成1個具有私有屬性的login()方法,該方法也一樣的繼承了HttpServletRequest和HttpServletResponse類,通過這個類來獲得用戶界面要求過來的參數(shù),當(dāng)通過用戶信息驗證后,一樣也將用戶賬號和用戶的密碼放入session會話變量中,1旦用戶終究關(guān)閉閱讀器,session會話變量也隨即燒毀。
用戶登錄界面(如圖4.4)
圖4.4 用戶登錄界面
商廈查詢是為用戶提供按具體的名稱(如:歐尚)查詢,并顯示到這個地點所有公交車車次的相干信息(如:車號,站點名稱,票價,車子的檔次和這個商廈的名稱等信息)。而查詢功能的實現(xiàn)是由系統(tǒng)的業(yè)務(wù)邏輯層中的QueryData類來實現(xiàn)的。當(dāng)用戶傳來的車次提交信息,首先商廈查詢頁面先編譯成服務(wù)器上的Servlet,然后根據(jù)需要調(diào)用業(yè)務(wù)邏輯層中相應(yīng)類。
商廈信息查詢結(jié)果(如圖4.5)
圖4.5 商廈查詢
相應(yīng)代碼:
調(diào)用此方法時,在頁面中先援用包com.busSystem.util,再創(chuàng)建QueryData類的對象,通過對象調(diào)用queryPlace()這個方法。
車次信息查詢是為用戶提供1個按公交車的車號(如:1路)查詢,并顯示該公交車的相干信息(如:公交車的出發(fā)點站、終點站、票價和車子的檔次等信息)。而查詢功能的實現(xiàn)是由系統(tǒng)的業(yè)務(wù)邏輯層中的QueryData類來實現(xiàn)的。
車次信息查詢結(jié)果(如圖4.6)
圖4.6 車次信息查詢
相應(yīng)的代碼:
調(diào)用此方法時,在頁面中先援用包com.busSystem.util,再創(chuàng)建QueryData類的對象,通過對象調(diào)用statisticsByBusInfo()這個方法。
站點信息查詢是為用戶提供按公交車某1個站點查詢到該站點需要乘坐公交車的車號。該查詢功能的實現(xiàn)也是由系統(tǒng)的業(yè)務(wù)邏輯層中的QueryData類來實現(xiàn)的。
站點信息查詢結(jié)果(如圖4.7)
圖4.7 站點信息查詢
相應(yīng)代碼:
調(diào)用此方法時,在頁面中先援用包com.busSystem.util,再創(chuàng)建QueryData類的對象,通過對象調(diào)用queryStInfo()這個方法。
任意兩個站點間的查詢頁面(如圖4.8)
圖4.8 最短路徑查詢頁面
任意兩個站點間查詢結(jié)果頁面(如圖4.9)
圖4.9 任意兩個站點間查詢結(jié)果
(1)廣度優(yōu)先遍歷概念
給定1個出發(fā)點,廣度優(yōu)先遍歷首先訪問出發(fā)點與出發(fā)點的鄰接點,然后分別考察每個鄰接點并訪問它們的鄰接點。遍歷使用1個隊列寄存頂點的未被訪問鄰接點,每當(dāng)從隊列中刪除1個頂點,就將這個頂點的未訪問鄰接點插入隊列,遍歷的順序即為頂點插入這個隊列的順序。
(2)圖的建立進(jìn)程
圖4.10 構(gòu)造圖的流程
①初始化車次列表listBusNum,它是用來存儲數(shù)據(jù)庫中現(xiàn)有的車號,為建立圖的先做好準(zhǔn)備。
②在建立圖的進(jìn)程需要連接數(shù)據(jù)庫,所以必須將需要用到連接數(shù)據(jù)庫的類全部對象初始化,如:connection,statement,resultset這3個關(guān)鍵類。
③首先建立圖的時候,需要添加圖的各個節(jié)點。而這里的節(jié)點就是數(shù)據(jù)庫站點信息(stinfo)表中的站點ID號。
④查詢站點信息表,將所有的站點從數(shù)據(jù)庫中取出來,調(diào)用添加站點graph.addVertex()的方法,將圖的各個節(jié)點建立好。
⑤通過車次列表,循環(huán)的取出各個車號,查詢車號與站點ID關(guān)系表(busst),找到該車號對應(yīng)的所有站點。
⑥創(chuàng)建向量vector,該向量用來寄存1個車號對應(yīng)多個站的ID號。
⑦初始化站點列表listStID,它用來寄存已保存好站點ID的向量,這模樣就建立起1個關(guān)系,就是站點列表中保存了每個車號所對應(yīng)車號它本身的所有站點ID。
⑧將站點列表和初始化好了的圖1起傳入createEdgeByDateBase中,建立雙向圖。最后圖的建立進(jìn)程結(jié)束。
(3)最短路徑算法原理圖(如圖4.11)
圖4.11 最短路徑算法原理圖
(4)最短路徑算法原理描寫:
①將頂點A入隊,同時將頂點A設(shè)置為已被訪問。
②判斷隊列是不是為空,如果不是則頂點A出隊,同時判斷頂點A的鄰接頂點B、E、D是不是已被訪問,如果沒有,則將頂點B、E、D入隊,并分別設(shè)置為已被訪問,接著將入隊頂點B、E、D分別指向他們的前置頂點A,并分別判斷頂點B、E、D是不是為目的頂點I,不是則進(jìn)入下1步3。
③判斷隊列是不是為空,如果不是則頂點B出隊,同時判斷頂點B的鄰接頂點E是不是已被訪問。判斷可知頂點B的鄰接頂點E已被訪問,則頂點E不用指向他的前置頂點B。接著進(jìn)入下1步4。
④判斷隊列是不是為空,如果不是則頂點E出隊,同時判斷頂點E的鄰接頂點F、H是不是已被訪問,如果沒有,則將頂點F、H入隊,并分別設(shè)置為已被訪問,接著將入隊頂點F、H分別指向他們的前置頂點E,并分別判斷頂點F、H是不是為目的頂點I,不是則進(jìn)入下1步5。
⑤判斷隊列是不是為空,如果不是則頂點D出隊,同時判斷頂點D的鄰接頂點G是不是已被訪問,如果沒有,則將頂點G入隊,并分別設(shè)置為已被訪問,接著將入隊頂點G分別指向他們的前置頂點D,并分別判斷頂點G是不是為目的頂點I,不是則進(jìn)入下1步6。
⑥判斷隊列是不是為空,同時判斷入隊的頂點F是不是是目的頂點I。如果不是則頂點F出隊,同時判斷頂點F的鄰接頂點C是不是已被訪問,如果沒有,則將頂點C入隊,并分別設(shè)置為已被訪問,接著將入隊頂點C分別指向他們的前置頂點F。并分別判斷頂點C是不是為目的頂點I,不是則進(jìn)入下1步7。
⑦判斷隊列是不是為空,如果不是則頂點H出隊,同時判斷頂點H的鄰接頂點I是不是已被訪問,如果沒有,則將頂點I入隊,并分別設(shè)置為已被訪問,接著將入隊頂點I指向他們的前置頂點H,并分別判斷頂點I是不是為目的頂點I,可以判斷頂點I就是目的頂點,將頂點I入堆棧,進(jìn)入下1步8。
⑧判斷I的前置頂點是不是為空,如果不是則將前置頂點入堆棧,循環(huán)判斷前置頂點的前置頂點,如果不為空,則入堆棧,直到循環(huán)判斷到空為止。這樣堆棧中的所有頂點出堆棧,出堆棧的頂點A->E->H->I就是查詢出來最短路徑。
最短路徑算法相應(yīng)的程序(利用廣度優(yōu)先遍歷算法查找最短路徑):
添加車次功能主要是增加1個車次詳細(xì)信息,其中包括:車次號,出發(fā)點站,終點站,票價,汽車檔次,票價類型。需要注意,在添加出發(fā)點站和終點站的時候,數(shù)據(jù)都是從站點庫取得然后添加到出發(fā)點站和終點站中去。由于添加車次它只觸及到車次的詳細(xì)信息,如果要想添加站點,則需要在添加站點功能頁面中進(jìn)行相應(yīng)的操作。
添加車次頁面(如圖4.12)
圖4.12 添加車次
添加站點功能:(1)在添加站點的文本框中輸入要添加的站點名稱。(2)提供了1個站點重名的查找功能,該功能可以對你輸入添加的站點名稱進(jìn)行名稱查重,通過查詢站點編碼表,顯示這個站點是不是已存在。如果不存在,則將此新增站點名稱插入到站點編碼表中,如果存在,則不需將此站點名稱插入到站點編碼表中。(3)通過下拉選擇框選擇新增站點所對應(yīng)的車次號。(4)如果查詢站點總數(shù)在文本框中顯示為“0”,則需要將出發(fā)點站和終點站同新增的站點1起插入車次和站點的關(guān)系表中。如果查詢站點總數(shù)在文本框中顯示不為“0”,則只需將新增的站點插入車次和站點關(guān)系表中便可。
添加站點頁面(如圖4.13)
圖4.13 添加站點
刪除車次功能:分頁列出車次信息表中所有的車次信息,選擇操作中的刪除,就能夠?qū)?yīng)的車次信息刪除,但是在刪除車次信息的時候需要先刪除車次與站點關(guān)系表中所有對應(yīng)當(dāng)車次的信息。如果不先刪除就會出現(xiàn)違背數(shù)據(jù)庫完全性。
刪除車次頁面(如圖4.14)
圖4.14 刪除車次
刪除站點功能:通過車次的下拉選擇框選擇車次,進(jìn)行查詢列出該車次的所有站點信息,然后點擊刪除操作就能夠刪除該站點。需要注意:由于在車次中從出發(fā)點站到終點站計算,其所有的站點是1個有次序的排列,所以刪除1個站點,則它的下個站點次序號順次減少1位。
刪除站點頁面(如圖4.15)
圖4.15 刪除站點
更新站點功能:通過車次的下拉選擇框選擇車次,進(jìn)行查詢列出該車次的所有站點信息,然后點擊更新操作就能夠更新該站點。需要注意的是,在更新出發(fā)點站(或是終點站)的時候,也要同時更新車次表中的出發(fā)點站(或是終點站)。
更新站點頁面(如圖4.16)
圖4.16 更新站點
發(fā)表留言是公交查詢系統(tǒng)的1個新增的功能,主要是搜集用戶的留言信息,可以根據(jù)用戶提供的留言信息或是提出的建議,對系統(tǒng)進(jìn)行修改和完善。使得系統(tǒng)更加趨于成熟完全。注冊的用戶登錄到發(fā)表留言的板塊當(dāng)中,系統(tǒng)會自動提取用戶名稱,用戶只需添上自己的郵箱,發(fā)表的主題和內(nèi)容便可。
發(fā)表留言頁面(如圖4.17)
圖4.17 發(fā)表留言
查看留言很簡單為用戶提供了1個查看自己的發(fā)表的留言,而其它用戶是不能看見的。由于系統(tǒng)是1個管理方面的功能較多,所以不會將用戶留言信息提供其它的用戶查看。
查看留言(如圖4.18)
圖4.18 查看留言
刪除留言功能只有管理員才能查看并操作,在刪除的顯示頁面中會將所有的用戶留言信息及用戶名顯示出來。這樣也為管理員提供查看哪些用戶是非法的發(fā)布留言內(nèi)容。針對這類情況刪除該用戶。
刪除留言頁面(如圖4.19)
圖4.19 刪除留言
設(shè)計完成系統(tǒng)的各個模塊以后,需要對全部系統(tǒng)進(jìn)行全面的測試。目的是讓全部系統(tǒng)能夠快速、穩(wěn)定、安全的運行。在進(jìn)行系統(tǒng)測試進(jìn)程中出現(xiàn)以下幾種情況:
(1)對頁面提交的過來的數(shù)據(jù)進(jìn)行空指針異常捕捉。凡是遇到無效或是空值數(shù)據(jù)都需要用程序進(jìn)行操作處理。
(2)及時的捕捉數(shù)據(jù)庫連接和關(guān)閉異常。以避免數(shù)據(jù)庫連接資源及時釋放,提供下1次要求調(diào)用。
(3)對數(shù)據(jù)庫查詢操作異常進(jìn)行捕捉。
(4)對數(shù)據(jù)庫查詢操作異常進(jìn)行捕捉。
(5)對數(shù)據(jù)庫更新操作異常進(jìn)行捕捉。
(6)對數(shù)據(jù)庫添加操作異常進(jìn)行捕捉。
(7)對數(shù)據(jù)庫刪除操作異常進(jìn)行捕捉。
(8)權(quán)限控制,通過session會話變量對管理員和用戶的權(quán)限進(jìn)行控制。
(9)頁面的編碼方式不同,需要的對字符串進(jìn)行轉(zhuǎn)碼操作。
通過對J2EE知識的認(rèn)真學(xué)習(xí),理論聯(lián)系實踐,終究完成了基于J2EE公交查詢系統(tǒng)的設(shè)計與實現(xiàn)。經(jīng)過量次測試,運行效果良好。對該系統(tǒng),加強后臺管理,就能夠單獨作為大型公交管理系統(tǒng)的1個模塊,也能夠?qū)⑺墓δ芨油晟坪蠓胖糜诔鞘泄矆鏊瑸槿藗兲峁┛旖荨⒎奖愕牟樵儭_@樣不但體現(xiàn)出1個城市的公交查詢系統(tǒng)的發(fā)展水平,更可以顯示出城市的數(shù)字化和信息化水平。公交查詢系統(tǒng)的開發(fā)利用也勢必促使城市公交更好的服務(wù)于人們。
在完成這次畢業(yè)設(shè)計的進(jìn)程中,自己查閱了大量的書籍,并且通過互聯(lián)網(wǎng)也查閱了許多相干資料,開發(fā)出具有B/S結(jié)構(gòu)模式的公交系統(tǒng),從而使我的編程能力和自學(xué)能力得到了很大程度的提高,對網(wǎng)站設(shè)計有了更深地了解。
但是,由于全部系統(tǒng)完全都是由個人設(shè)計的,有關(guān)J2EE許多知識都要靠自己去摸索,加上自己水平有限,未能完全地理解J2EE的強大功能,因此,系統(tǒng)還存在著許多不足的地方。
[1] 劉曉華.J2EE企業(yè)級利用開發(fā)[M].北京:飛思科技產(chǎn)品研發(fā)中心,2003。
[2] 賽奎春,陳威.JSP工程利用與項目實踐[M].北京:清華大學(xué)出版社,2004。
[3] Cay S.Horstmann,Gary Cornell.java核心技術(shù)卷2高級特性[M].北京:機械工業(yè)出版社,2003。
[4] Frank M.Carrano,Walter Savitch.數(shù)據(jù)結(jié)構(gòu)與抽象:Java語言版[M].北京:清華大學(xué)出版社,2005。
[5] 孫衛(wèi)琴,李洪成.Tomcat與Java Web開發(fā)技術(shù)詳解[M].北京:電子工業(yè)出版社,2004。
[6] 高鐵杠,顧巧論.智能公交查詢系統(tǒng)[J].新技術(shù)利用,2005,(7):31⑶2。
[7] 王宏.MSSQL 數(shù)據(jù)庫管理[M].北京:人民郵電出版社,2001。
10路
· 南菜園到鼓樓大街
· 南菜園到長陵
· 南菜園到永定門東街
· 南菜園到華聯(lián)商城大興店
· 南菜園到豐臺路口西
· 航天橋東到9龍山
· 航天橋東到史各莊(S216)
· 航天橋東到岔道口
· 航天橋東到土橋村
· 航天橋東到北京華僑城北站
11路:
(共20站)
· 1大北窯東站
· 28王墳?zāi)险?/span>
· 3北京東站北站
· 49龍山站
· 5珠江帝景站
· 6大郊亭橋西站
· 7大郊亭橋東站
· 8東石門站
· 9唐家村站
· 10小海子站
· 114根旗桿站
· 12方家村站
· 13朝陽半壁店站
· 14觀音堂北站
· 15觀音堂站
· 16古塔公園站
· 17王4營站
· 18王4營橋東站
· 19孛羅營村北站
· 20孛羅營站
12路
· 15間樓站
· 2橫7條站
· 3劉家窯橋東站
· 4方莊南口站
· 5芳星園站
· 68里河站
· 7左安門外站
· 8左安門內(nèi)站
· 9龍?zhí)逗斡境卣?/span>
· 10龍?zhí)豆珗@站
· 11龍?zhí)逗?/span>
· 12光明樓站
· 13夕照寺站
· 14夕照寺街北口站
· 15廣渠門內(nèi)站
· 16安化樓站
· 17培新街站
· 18南花市大街站
· 19羊市口站
· 20花市路口北站
· 21崇文門東站
· 22北花市大街站
· 23小市口站
· 24東花市大街站
· 25白橋大街站
· 26夕照寺街北口站
· 27夕照寺站
· 28光明樓站
· 29龍?zhí)逗?/span>
· 30龍?zhí)豆珗@站
想要源碼和完全文檔的請聯(lián)系QQ:1329331182