畢業(yè)設(shè)計(jì)(論文)-基于J2EE的公交查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).doc
《畢業(yè)設(shè)計(jì)(論文)-基于J2EE的公交查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《畢業(yè)設(shè)計(jì)(論文)-基于J2EE的公交查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).doc(32頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、基于基于 J2EEJ2EE 的公交查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)的公交查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 摘摘 要要 公交查詢系統(tǒng)是城市道路交通的重要組成部分,是城市發(fā)展的必然產(chǎn)物,是 聯(lián)系國(guó)民生活、社會(huì)生產(chǎn)和流通領(lǐng)域的關(guān)鍵環(huán)節(jié)。我國(guó)城市公交查詢系統(tǒng)的發(fā) 展處于一個(gè)較落后的水平,人們可以獲得信息的方式很少,為了解決這種問(wèn)題,設(shè) 計(jì)出基于 J2EE 的公交查詢系統(tǒng)。 本論文詳細(xì)介紹了整個(gè)系統(tǒng)的已實(shí)現(xiàn)的功能。首先,實(shí)現(xiàn)多種查詢功能, 包括根據(jù)商廈名稱、公交車號(hào)、日常站點(diǎn)、和任意兩個(gè)站點(diǎn)查詢乘車路線。其 次,采用最短路徑算法查找任意兩個(gè)站點(diǎn)之間的最短乘車路線。最后,提供了 用戶留言的功能、用戶管理功能和后臺(tái)車次管理功能;用
2、戶留言功能,主要是 收集用戶的留言信息,可以根據(jù)用戶提供的留言信息或是提出的建議,對(duì)系統(tǒng) 進(jìn)行修改和完善;用戶管理功能,主要是刪除用戶信息和修改用戶基本信息; 后臺(tái)車次管理功能主要包含添加車次和站點(diǎn)功能、更新車次和站點(diǎn)功能、刪除 車次和站點(diǎn)功能,這樣做到系統(tǒng)實(shí)時(shí)更新,為用戶查詢提供更為準(zhǔn)確的信息。 關(guān)鍵詞:關(guān)鍵詞:J2EE;最短路徑算法;公交查詢 Design and Realization of Public Transport Inquiry System Based on J2EE Abstract Urban public transportation is an important
3、part in traffic and transportation domain, and its also the inevitable result of social economys development in urban areas. As an important part of urban transportation system, urban public transportation system is acting a key role in human living, in social production and in transportation domain
4、 .But the inquiry system of public transportation developments in our country is in a comparatively backward level. The general passengers have less way to obtain the information. In order to solve this kind of problem, an inquiry system of public transport based on J2EE is designed. The thesis has
5、introduced the realized functions of entire system in detail. Firstly, the system has realized many inquiry functions. The system can search bus route by the name of business mansion, the number of public transport, ordinary bus station and two arbitrary stations. Secondly, the system uses the short
6、est path algorithm to find the shortest travel routes between any two stations. Finally, the system provides the functions of consumer message, the bus number managing on the backstage and the consumer managing. The function of consumer message mainly collects suggestions from consumer to modify and
7、 perfect the system functions. The function of user managing is to delete user information mainly and revises the fundamental user information. The functions of bus number managing are mainly to add, update and delete the bus number and the station on the backstage. These can enable the system have
8、the quality of real-time updating to provide the accurate information for user. Key words:J2EE; Shortest path algorithm; public transport inquiry 目目 錄錄 論文總頁(yè)數(shù):30 頁(yè) 1 引言 .3 1.1 選題背景3 1.2 項(xiàng)目的主要研究工作3 1.3 開(kāi)發(fā)環(huán)境4 2 理論基礎(chǔ) .4 2.1 概念4 2.1.1 J2EE 的概念.4 2.1.2 JSP 的概念5 2.1.3 Java Bean 的概念5 2.1.4 Java Servlet 的概念.
9、5 2.1.5 Session 對(duì)象5 2.2 J2EE 的結(jié)構(gòu) .5 2.3 J2EE 的容器類型 .6 2.4 J2EE 的體系與模式 .6 2.4.1 J2EE 的體系(分布式計(jì)算).6 2.4.2 J2EE 的模式.6 3 公交查詢系統(tǒng)功能分析 .6 3.1 公交查詢系統(tǒng)的需求6 3.1.1 系統(tǒng)需求描述 .6 3.1.2 系統(tǒng)數(shù)據(jù)流圖 .7 3.2 公交查詢系統(tǒng)的功能7 3.3 公交查詢系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)8 3.3.1 E-R 圖8 3.3.2 數(shù)據(jù)庫(kù)表設(shè)計(jì) .9 4 公交查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 11 4.1 創(chuàng)建管理員登錄的 SERVLET11 4.2 創(chuàng)建用戶登錄的 SERVLET1
10、3 4.3 公交系統(tǒng)查詢模塊.14 4.3.1 商廈查詢.14 4.3.2 車次信息查詢 17 4.3.3 站點(diǎn)信息查詢 19 4.3.4 兩個(gè)站點(diǎn)間的信息查詢 20 4.4 公交系統(tǒng)添加模塊.25 4.4.1 添加車次 25 4.4.2 添加站點(diǎn) 26 4.5 公交系統(tǒng)刪除模塊.26 4.5.1 刪除車次 26 4.5.2 刪除站點(diǎn) 27 4.6 公交系統(tǒng)更新模塊.27 4.7 公交系統(tǒng)留言板模塊.28 4.7.1 發(fā)表留言 28 4.7.2 查看留言 28 4.7.3 刪除留言 29 5 系統(tǒng)測(cè)試與分析 29 結(jié) 論 30 參考文獻(xiàn) 30 致 謝 錯(cuò)誤!未定義書(shū)簽。錯(cuò)誤!未定義書(shū)簽。 聲
11、明 錯(cuò)誤!未定義書(shū)簽。錯(cuò)誤!未定義書(shū)簽。 第 3 頁(yè) 共 30 頁(yè) 1 1 引言引言 1.11.1 選題背景選題背景 20 多年來(lái),我國(guó)經(jīng)濟(jì)得到了持續(xù)、快速、穩(wěn)定、健康地發(fā)展。經(jīng)濟(jì)的快速 增長(zhǎng),帶動(dòng)了汽車工業(yè)的蓬勃發(fā)展,并使交通狀況顯著改善。據(jù)統(tǒng)計(jì),中國(guó)公 路通車總里程已達(dá) 130 余萬(wàn)公里,其中高速公路約 1.5 萬(wàn)公里。居民收入普遍 提高,到 2000 年年底,人均 GDP 已超過(guò) 800 美元,沿海地區(qū)已達(dá) 20003000 美元。按國(guó)際發(fā)展慣例,當(dāng)人均 GDP 超出 1000 美元,汽車消費(fèi)市場(chǎng)就將進(jìn)入快 速增長(zhǎng)期。我國(guó)城市人口約有 2 億,略低于美國(guó)人口。東部沿海地區(qū)大部分居 民已經(jīng)
12、具備了汽車消費(fèi)實(shí)力。據(jù)中國(guó)消費(fèi)者協(xié)會(huì) 2000 年對(duì) 20 個(gè)大城市調(diào)查顯 示,有 32%的消費(fèi)準(zhǔn)備在未來(lái) 5 年內(nèi)購(gòu)買家用轎車,其中 30.6%的無(wú)車消費(fèi)者已 經(jīng)有駕駛執(zhí)照。隨著個(gè)人信貸制度的啟動(dòng)和日漸完善,家庭轎車的快速增長(zhǎng)勢(shì) 頭必將開(kāi)掘出巨大的中國(guó)汽車市場(chǎng)。 城市經(jīng)濟(jì)發(fā)展,城市規(guī)模越來(lái)越大,相應(yīng)的城市公交系統(tǒng)也越來(lái)越龐大。 許多新建小區(qū)大量出現(xiàn),公交線路也日漸增多,給人們的出行帶來(lái)了極大便利, 但是由于城市規(guī)模的不斷發(fā)展,給人們選擇出行乘車線路造成了一定的困難。 即使一個(gè)在城市生活多年的人,給他任意兩個(gè)地點(diǎn),要他說(shuō)出這兩個(gè)地點(diǎn)之間 的乘車方案,他往往也是很難說(shuō)出來(lái)的。但是如果給他一張交通
13、地圖之后,他 可以很快地找出圖上的任意兩點(diǎn)之間的乘車方案,所找出的方案即使不是最優(yōu) 的,也是一條可供參考的備選方案。但是這樣的查詢效率是相當(dāng)?shù)偷模孕?要提供一個(gè)高效的查詢系統(tǒng),才是問(wèn)題更本所在。而基于 J2EE 的公交查詢系統(tǒng), 就是利用 B/S 結(jié)構(gòu)開(kāi)發(fā)出來(lái)的查詢系統(tǒng),它通過(guò)利用數(shù)據(jù)結(jié)構(gòu)當(dāng)中的最短路徑 算法,可以查出任意兩個(gè)地點(diǎn)之間最短的乘車方案。它不僅可以用于公交公司 管理系統(tǒng)中,也可以單獨(dú)作為公交管理系統(tǒng)的一個(gè)模塊存在,并可以制作成公 交信息系統(tǒng)查詢網(wǎng),放置于城市的主要場(chǎng)所。這樣不僅可以體現(xiàn)出一個(gè)城市的 智能公交系統(tǒng)的水平,更顯示出城市的數(shù)字化,信息化水平。 目前,我國(guó)眾多大城市普遍
14、存在交通擁擠,延誤人們平時(shí)上班時(shí)間。甚至 影響了城市旅游業(yè)經(jīng)濟(jì)的可持續(xù)發(fā)展。所以為了切實(shí)的改善公交車內(nèi)擁擠狀況, 適當(dāng)增加發(fā)車次數(shù)以縮短乘客等車時(shí)間,但是能夠準(zhǔn)確為人們提供最短的乘車 線路才是得到解決的最好辦法,這樣大大的縮短了人們的乘車時(shí)間。 本項(xiàng)目研究的基于 J2EE 的公交查詢系統(tǒng),讓人們通過(guò)互聯(lián)網(wǎng)很快的查出該 城市任意兩站點(diǎn)之間的最短乘車路線。 1.21.2 項(xiàng)目的主要研究工作項(xiàng)目的主要研究工作 本系統(tǒng)是從城市交通現(xiàn)狀出發(fā),根據(jù)人們的出行規(guī)律,設(shè)計(jì)了一個(gè)完整的 第 4 頁(yè) 共 30 頁(yè) 基于 J2EE 體系的公交車查詢系統(tǒng)。該系統(tǒng)可以根據(jù)商廈名稱,公交車號(hào),日常 站點(diǎn)和站點(diǎn)之間為查詢條
15、件分別進(jìn)行查詢,解決了市民出行乘坐公交車時(shí)經(jīng)常 遇到的困難。 本系統(tǒng)模型構(gòu)架分為下面四層結(jié)構(gòu),如下。 (1)J2EE 應(yīng)用程序組件 J2EE 應(yīng)用程序是由組件構(gòu)成的。J2EE 組件是具有獨(dú)立功能的軟件單元,它 們通過(guò)相關(guān)的類和文件組裝成 J2EE 應(yīng)用程序,并與其他組件交互。本系統(tǒng)包括 如下組件: 應(yīng)用客戶端程序及 J2EE 服務(wù)器。 Java Servlet 和 JavaServer Pages(JSP)Web 組件及 JavaBean。 (2)WEB 層組件 J2EE web 層組件包含 JSP 頁(yè)面或 Servlet。按照 J2EE 規(guī)范,還包含某些 JavaBean 對(duì)象來(lái)處理用戶輸入
16、,并把輸入發(fā)送給運(yùn)行在業(yè)務(wù)邏輯層上的組件來(lái) 進(jìn)行處理。 (3)客戶層組件 基于 WEB 方式的靜態(tài) HTML 頁(yè)面或是 Applet 客戶端的小應(yīng)用程序。 (4)編寫算法 編寫最短路徑數(shù)據(jù)結(jié)構(gòu)算法,解決完成站點(diǎn)之間最短乘車路徑查詢。 1.31.3 開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境 開(kāi)發(fā)工具:Eclipse 3.2 + MyEclipse 5.0GA。 運(yùn)行環(huán)境:JSDK 1.5.0_04 虛擬機(jī)。 服務(wù)器:Tomcat 5.5。 數(shù)據(jù)庫(kù):MicroSoft SQL Server 2000。 操作系統(tǒng):Windows XP。 所需內(nèi)存:512 M。 2 2 理論基礎(chǔ)理論基礎(chǔ) 2.12.1 概念概念 2.1.12
17、.1.1 J2EEJ2EE 的概念的概念 J2EE 是一種利用 Java 2 平臺(tái)來(lái)簡(jiǎn)化企業(yè)解決方案的開(kāi)發(fā)、部署和管理相 關(guān)的復(fù)雜問(wèn)題的體系結(jié)構(gòu)。J2EE 技術(shù)的基礎(chǔ)就是核心 Java 平臺(tái)或 Java 2 標(biāo)準(zhǔn) 平臺(tái)。J2EE 不僅鞏固了標(biāo)準(zhǔn)版中的許多優(yōu)點(diǎn),例如“編寫一次、隨處運(yùn)行”的 特性、方便存取數(shù)據(jù)庫(kù)的 JDBC API、CORBA 技術(shù)以及能夠在 Internet 應(yīng)用中保 護(hù)數(shù)據(jù)的安全模式等等,同時(shí)還提供了對(duì) EJB(Enterprise JavaBeans) 、Java 第 5 頁(yè) 共 30 頁(yè) Servlet API、JSP(Java Server Pages)以及 XML 技
18、術(shù)的全面支持。其最終目 的就是成為一個(gè)能夠使企業(yè)開(kāi)發(fā)者大幅縮短投放市場(chǎng)時(shí)間的體系結(jié)構(gòu)。 2.1.22.1.2 JSPJSP 的概念的概念 JSP 程序是一個(gè)服務(wù)端頁(yè)面腳本程序,可以在這個(gè)腳本中直接編寫客戶端 瀏覽器需要顯示的 HTML 文檔內(nèi)容,當(dāng)然也可以依照 JSP 規(guī)范將 Java 程序代碼 嵌入腳本。JSP 腳本規(guī)范提供了若干內(nèi)部對(duì)象來(lái)簡(jiǎn)化 JSP 程序和瀏覽器之間的 輸入輸出處理。由于 JSP 程序是從 HTML 頁(yè)面添加 Java 動(dòng)態(tài)處理代碼而來(lái),因 此,JSP 程序又稱為動(dòng)態(tài) JSP 頁(yè)面。 2.1.32.1.3 JavaJava BeanBean 的概念的概念 JavaBean
19、 是一種 JAVA 語(yǔ)言寫成的可重用組件,用戶可以使用 JavaBean 將 功能、處理、值、數(shù)據(jù)庫(kù)訪問(wèn)和其他任何可以用 java 代碼創(chuàng)造的對(duì)象進(jìn)行打包, 并且其他的開(kāi)發(fā)者可以通過(guò)內(nèi)部的 JSP 頁(yè)面、Servlet、其他 JavaBean、applet 程序或者應(yīng)用來(lái)使用這些對(duì)象。用戶可以認(rèn)為 JavaBean 提 供了一種隨時(shí)隨地的復(fù)制和粘貼的功能,而不用關(guān)心任何改變。這個(gè)對(duì) J2EE 業(yè) 務(wù)邏輯層處理具有相當(dāng)重要的部分。 2.1.42.1.4 JavaJava ServletServlet 的概念的概念 Java Servlet 使用的是一種請(qǐng)求/響應(yīng)機(jī)制,也就是說(shuō)通過(guò)特定的 Java
20、 程 序設(shè)計(jì)技術(shù),由該 Servlet 動(dòng)態(tài)產(chǎn)生的響應(yīng)向某一特定的請(qǐng)求做出響應(yīng)。 Servlet 所能應(yīng)用的請(qǐng)求/響應(yīng)場(chǎng)合很多,但常用的還是在 Web 應(yīng)用程序中用于 產(chǎn)生超文本傳輸協(xié)議響應(yīng)(HTTP) 。據(jù)此,Servlet 可能取代其他類型的 HTTP 請(qǐng)求/響應(yīng)機(jī)制,譬如通用網(wǎng)關(guān)接口(CGI)腳本。 2.1.52.1.5 SessionSession 對(duì)象對(duì)象 Session 對(duì)象是類 javax.servlet.Httpsession 的一個(gè)對(duì)象,是用來(lái)保存 每個(gè)用戶信息(以會(huì)話的形式直接保存在 WEB 服務(wù)器端) ,以便跟蹤每個(gè)用戶的 操作狀態(tài)。 2.22.2 J2EEJ2EE 的結(jié)
21、構(gòu)的結(jié)構(gòu) J2EE 結(jié)構(gòu)具有一個(gè)很大的特點(diǎn),就是與平臺(tái)無(wú)關(guān)性的 J2EE 結(jié)構(gòu)。所開(kāi)發(fā)出 來(lái)的程序可以在任何操作系統(tǒng)下運(yùn)行。這樣就使得 J2EE 程序的編寫變得十分簡(jiǎn) 單,因?yàn)闃I(yè)務(wù)邏輯被封裝成可以復(fù)用的組件,并且 J2EE 服務(wù)器以容器的形式為 所有的組件類型提供后臺(tái)服務(wù),所以你可以集中精力解決手頭的業(yè)務(wù)邏輯。 第 6 頁(yè) 共 30 頁(yè) 2.32.3 J2EEJ2EE 的容器類型的容器類型 J2EE 容器類型可以分為 WEB 容器和 EJB 容器。 EJB 容器管理所有 J2EE 應(yīng)用程序中企業(yè)級(jí) Bean 的執(zhí)行,Enterprise Bean 和它們的容器運(yùn)行在 J2EE 服務(wù)器上。 WE
22、B 容器也是管理所有 J2EE 應(yīng)用程序中 JSP 和 Servlet 組件執(zhí)行,同理 WEB 組件和它們的容器也是運(yùn)行在 J2EE 服務(wù)器上的。 2.42.4 J2EEJ2EE 的體系與模式的體系與模式 2.2.4.1 J2EEJ2EE 的體系的體系( (分布式計(jì)算分布式計(jì)算) ) (1)表示層:Web Page| HTML | HTTP (2)控制層:JSP | Servlets (3)邏輯層:JavaBean (4)數(shù)據(jù)層:Database (5)JDBC 2.4.22.4.2 J2EEJ2EE 的模式的模式 MVC(Model View Controller) 頁(yè)面 bean 是一個(gè)模
23、型(model) ,而 JSP 是一個(gè)視圖(view), Servlet 是一 個(gè)控制器(controller)。 3 3 公交查詢系統(tǒng)功能分析公交查詢系統(tǒng)功能分析 3.13.1 公交查詢系統(tǒng)的需求公交查詢系統(tǒng)的需求 3.1.13.1.1 系統(tǒng)需求描述系統(tǒng)需求描述 公交查詢系統(tǒng)的需求最主要是通過(guò)站點(diǎn)與車次之間的關(guān)系,利用數(shù)據(jù)結(jié)構(gòu) 算法構(gòu)造一個(gè)公交查詢的網(wǎng)絡(luò)圖,然后通過(guò)最短路徑算法,為用戶準(zhǔn)確地提供 兩站點(diǎn)之間的最短乘車路線。 其次從業(yè)務(wù)實(shí)現(xiàn)上來(lái)說(shuō),需要在業(yè)務(wù)邏輯層上編寫最短路徑算法,同時(shí)還 要編寫當(dāng)用戶查詢請(qǐng)求時(shí)必須的數(shù)據(jù)庫(kù)連接,然后根據(jù)用戶提供查詢站點(diǎn)信息, 建立公交查詢網(wǎng)絡(luò)圖,最終調(diào)用算法
24、獲取兩站點(diǎn)之間的最短乘車線路。當(dāng)查詢 完成后,如果用戶需要進(jìn)行其它的操作,則釋放該連接資源。 最后,為了讓公交線路信息得到及時(shí)的更新或是信息刪除,需要做出相應(yīng) 的操作和處理。 第 7 頁(yè) 共 30 頁(yè) 3.1.23.1.2 系統(tǒng)數(shù)據(jù)流圖系統(tǒng)數(shù)據(jù)流圖 管理員 登錄 車次管 理 用戶 登錄 用戶注 冊(cè) 帳 號(hào) 線路管 理 留言 刪除用 戶 車輛信息庫(kù)線路信息 留言本 站點(diǎn)管 理 站點(diǎn)信息 公交車查詢 用戶 圖 3.1 系統(tǒng)數(shù)據(jù)流圖 3.23.2 公交查詢系統(tǒng)的功能公交查詢系統(tǒng)的功能 (1)通過(guò)選擇商廈名稱進(jìn)行相應(yīng)的信息查詢。 (2)通過(guò)選擇車號(hào)進(jìn)行相應(yīng)的信息查詢。 (3)通過(guò)選擇站點(diǎn)進(jìn)行相應(yīng)的信息
25、查詢。 (4)通過(guò)選擇任意兩個(gè)站點(diǎn),完成兩站點(diǎn)之間最短乘車路線查詢。 (5)完成車次和站點(diǎn)添加功能。 (6)完成車次和站點(diǎn)更新功能。 (7)完成車次和站點(diǎn)刪除功能。 (8)用戶登錄驗(yàn)證功能。 (9)用戶注冊(cè)信息功能。 (10)用戶注銷功能。 (11)刪除用戶信息功能。 (12)添加用戶留言,刪除用戶留言,查看用戶留言。 (13)管理員登錄驗(yàn)證功能。 (14)管理員注銷功能。 第 8 頁(yè) 共 30 頁(yè) 3.33.3 公交查詢系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)公交查詢系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì) 3.3.13.3.1 E-R 圖圖 用 戶 用戶名 密碼年齡地址 郵箱 提示問(wèn)題提示答案 證件號(hào)碼 圖 3.2 用戶實(shí)體及屬性 管理
26、員 管理員帳號(hào)密碼 圖 3.3 管理員實(shí)體及屬性 留 言 板 用戶名 留言時(shí)間留言標(biāo)題留言內(nèi)容 郵箱地址留言 ID 圖 3.4 留言板實(shí)體及屬性 第 9 頁(yè) 共 30 頁(yè) 車次信息 終點(diǎn)站票價(jià) 起點(diǎn)站 車子檔次 車號(hào) 票價(jià)檔次 站點(diǎn)信息 站點(diǎn)號(hào)站點(diǎn)名稱 經(jīng)過(guò) 車號(hào) 站點(diǎn)次序 站點(diǎn)號(hào) 圖 3.5 車次與站點(diǎn)之間關(guān)系 3.3.23.3.2 數(shù)據(jù)庫(kù)表設(shè)計(jì)數(shù)據(jù)庫(kù)表設(shè)計(jì) (1)用戶表 userInfo(如表 3.1) 表 3.1 用戶表信息 列名中文名稱數(shù)據(jù)類型長(zhǎng)度允許空 username用戶名varchar50Not null userpassword用戶密碼varchar50Not null use
27、rage用戶年齡int4null address地址varchar50null email郵箱varchar50null question問(wèn)題varchar50null answer答案varchar50null idnum證件號(hào)varchar50null 第 10 頁(yè) 共 30 頁(yè) (2)管理員表 administrator(如表 3.2) 表 3.2 管理員信息 列名中文名稱數(shù)據(jù)類型長(zhǎng)度允許空 adminiID管理員名Varchar50Not null adminipassword密碼varchar50Not null (3)車次信息表 BusInfo(如表 3.3) 表 3.3 車次信息
28、表 列名中文名稱數(shù)據(jù)類型長(zhǎng)度允許空 BusNum車號(hào)int4Not null BeginSt起點(diǎn)站varchar50Not null EndSt終點(diǎn)站varchar50Not null TicketNote票價(jià)varchar50null BusLevel車子檔次varchar50null Note票檔次varchar50null (4)站點(diǎn)信息表 StInfo(如表 3.4) 表 3.4 站點(diǎn)信息表 列名中文名稱數(shù)據(jù)類型長(zhǎng)度允許空 StID站點(diǎn)號(hào)int4Not null StName站點(diǎn)名稱varchar50Not null (5)車次與站點(diǎn)關(guān)系表 BusSt(如表 3.5) 表 3.5 車次
29、與站點(diǎn)關(guān)系表 列名中文名稱數(shù)據(jù)類型長(zhǎng)度允許空 BusNum車號(hào)Int4Not null StID站點(diǎn)號(hào)Int4Not null StOrder站點(diǎn)次序Int4Not null (6)商廈信息表 publicplace(如表 3.6) 表 3.6 商廈信息表 列名中文名稱數(shù)據(jù)類型長(zhǎng)度允許空 placesid商廈號(hào)int4Not null placesname商夏名稱varchar50null 第 11 頁(yè) 共 30 頁(yè) (7)站點(diǎn)與商廈關(guān)系表 stplace(如表 3.7) 表 3.7 站點(diǎn)與商廈關(guān)系表 列名中文名稱數(shù)據(jù)類型長(zhǎng)度允許空 StId站點(diǎn)號(hào)int4Not null placeId商廈號(hào)
30、int4Not null (8)留言信息表 message(如表 3.8) 表 3.8 留言信息表 列名中文名稱數(shù)據(jù)類型長(zhǎng)度允許空 username用戶名varchar50Not null messagedate留言日期datetime8Not null topic留言主題varchar50Not null email郵箱varchar50null messagetext留言內(nèi)容varchar250Not null id留言序號(hào)int4Not null 4 4 公交查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)公交查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 4.14.1 創(chuàng)建管理員登錄的創(chuàng)建管理員登錄的 ServletServlet (1)
31、打開(kāi) Eclipse 開(kāi)工具,新建一個(gè) ConfirmServlet 類(如圖 4.1) 圖 4.1 創(chuàng)建管理員登錄 ConfirmServlet 類 (2)在已創(chuàng)建好 ConfirmServlet 類中,生成一個(gè)具有私有屬性的 第 12 頁(yè) 共 30 頁(yè) login()方法,該方法就是對(duì)管理員請(qǐng)求過(guò)來(lái)的信息進(jìn)行驗(yàn)證。該方法首先利 用 HttpServletRequest,HttpServletResponse 進(jìn)行對(duì)象初始化。利用 HttpServletRequest 的 getParameter()來(lái)獲取管理員頁(yè)面?zhèn)鱽?lái)的兩個(gè)參數(shù), 一個(gè)是 adminname,另一個(gè)是 adminpassw
32、ord。然后調(diào)用自定義連接數(shù)據(jù)庫(kù)類進(jìn) 行數(shù)據(jù)庫(kù)對(duì)象實(shí)例化,最后在進(jìn)行驗(yàn)證的時(shí)候,獲取管理頁(yè)面驗(yàn)證碼,如果驗(yàn) 證碼無(wú)誤就對(duì)管理員賬號(hào)和管理員密碼驗(yàn)證,最終將正確的管理員賬號(hào)和管理 員密碼放入 session 會(huì)話變量中。 管理員登錄界面(如圖 4.2) 圖 4.2 管理員登錄界面 相應(yīng)代碼: private void login(HttpServletRequest request,HttpServletResponse response) Connection conn=null; Statement stmt=null; ResultSet rs=null; HttpSession sess
33、ion=request.getSession(true);/如果用戶session為空 重新分配一個(gè)新的session給用戶 DBConnection2 db=DBConnection2.getInstance(); String adminname=request.getParameter(“adminname“) =null ? “ : request.getParameter(“adminname“); adminname =exChange(adminname);/字符串亂碼處理 String password = request.getParameter(“password“) =
34、null ? “ : request.getParameter(“password“); password=exChange(password);/字符串亂碼處理 String sql=“; String rand=(String) session.getAttribute(“rand“); String input=request.getParameter(“vaild“); int n=0; try 第 13 頁(yè) 共 30 頁(yè) conn = db.getConnection(); stmt = conn.createStatement(); sql = “select * from adm
35、inistrator where adminiID = “+adminname+“ and adminipassword = “+password+“; rs=stmt.executeQuery(sql); if(rs.next() if (n 0 session.setAttribute(“adminpassword“, password); session.removeAttribute(“rand“); response.sendRedirect(“l(fā)oginSuccess.jsp“); else response.sendRedirect(“error.jsp“); catch(Exc
36、eption e) e.printStackTrace(); finally try if(stmt!=null) stmt.close(); db.freeConnection(conn); catch(Exception e e.printStackTrace(); 4.24.2 創(chuàng)建用戶登錄的創(chuàng)建用戶登錄的 ServletServlet (1)打開(kāi) Eclipse 開(kāi)工具,新建一個(gè) UserLoginServlet 類(如圖 4.3) 第 14 頁(yè) 共 30 頁(yè) 圖 4.3 創(chuàng)建用戶登錄 UserLoginServlet 類 (2)與管理員中的 ConfirmServlet 類一樣,也生
37、成一個(gè)具有私有屬性的 login()方法,該方法也同樣的繼承了 HttpServletRequest 和 HttpServletResponse 類,通過(guò)這個(gè)類來(lái)獲取用戶界面請(qǐng)求過(guò)來(lái)的參數(shù),當(dāng)通 過(guò)用戶信息驗(yàn)證后,同樣也將用戶賬號(hào)和用戶的密碼放入 session 會(huì)話變量中, 一旦用戶最終關(guān)閉瀏覽器,session 會(huì)話變量也隨即銷毀。 用戶登錄界面(如圖 4.4) 圖 4.4 用戶登錄界面 4.34.3 公交系統(tǒng)查詢模塊公交系統(tǒng)查詢模塊 4.3.14.3.1 商廈查詢商廈查詢 商廈查詢是為用戶提供按具體的名稱(如:歐尚)查詢,并顯示到這個(gè)地點(diǎn)所 有公交車車次的相關(guān)信息(如:車號(hào),站點(diǎn)名稱,票
38、價(jià),車子的檔次和這個(gè)商廈的名 稱等信息)。而查詢功能的實(shí)現(xiàn)是由系統(tǒng)的業(yè)務(wù)邏輯層中的 QueryData 類來(lái)實(shí)現(xiàn) 的。當(dāng)用戶傳來(lái)的車次提交信息,首先商廈查詢頁(yè)面先編譯成服務(wù)器上的 第 15 頁(yè) 共 30 頁(yè) Servlet,然后根據(jù)需要調(diào)用業(yè)務(wù)邏輯層中相應(yīng)類。 商廈信息查詢結(jié)果(如圖 4.5) 圖 4.5 商廈查詢 相應(yīng)代碼: public ArrayList queryPlace(String placeName,String page) ArrayList arrayList = new ArrayList(); DBConnection2 db=DBConnection2.getInst
39、ance(); Connection conn=null; Statement stmt=null; ResultSet rs=null; String sql=“; try if (placeName != null) if (!placeName.equals(“) placeName = exChange(placeName);/字符串轉(zhuǎn)碼 int m = (Integer.parseInt(page) - 1) * pageSize; int i = 0; sql=“select businfo.busnum,stinfo.stname,ticketnote,buslevel,note
40、 from stinfo,businfo,busst where busst.stid = stinfo.stid and businfo.busnum = busst.busnum and busst.stid in (select stid from stplace where placesid in (select placesid from publicplace where placesname = “+placeName+“)“; conn = db.getConnection(); stmt=conn.createStatement(ResultSet.TYPE_SCROLL_I
41、NSENSI TIVE,ResultSet.CONCUR_READ_ONLY); rs = stmt.executeQuery(sql); if (rs.first() rs.absolute(m + 1); /將游標(biāo)放到指定位置再加1(也 是開(kāi)始的第一條記錄的序號(hào)) 第 16 頁(yè) 共 30 頁(yè) while(i E-H-I 就是查詢出來(lái)最短路徑。 最短路徑算法相應(yīng)的程序(利用廣度優(yōu)先遍歷算法查找最短路徑): public Stack getShortestPath2(Object begin,Object end) this.resetVertices(); boolean done=fals
42、e; ArrayList vertexQueue=new ArrayList(); Vertex beginVertex=(Vertex) vertices.get(begin); Vertex endVertex=(Vertex) vertices.get(end); beginVertex.visit(); vertexQueue.add(beginVertex); while(!done 第 25 頁(yè) 共 30 頁(yè) vertexQueue.remove(0); Ierator edges=frontVertex.getNeighborIterator(); while(!done ver
43、tex nextNeighbor=edgeToNextNeighbor.getEndVertex(); if(!nextNeighbor.isVisited() nextNeighbor.visit(); nextNeighbor.setPredecessor(frontVertex); vertexQueue.add(nextNeighbor); if(nextNeighbor.equals(endVertex) done=true; Stack path=new Stack(); path.push(endVertex); while(endVertex.getPredecessor()!
44、=null) endVertex=endVertex.getPredecessor(); path.push(endVertex); return path; 4.44.4 公交系統(tǒng)添加模塊公交系統(tǒng)添加模塊 4.4.14.4.1 添加車次添加車次 添加車次功能主要是增加一個(gè)車次詳細(xì)信息,其中包括:車次號(hào),起點(diǎn)站, 終點(diǎn)站,票價(jià),汽車檔次,票價(jià)類型。需要注意,在添加起點(diǎn)站和終點(diǎn)站的時(shí) 候,數(shù)據(jù)都是從站點(diǎn)庫(kù)獲得然后添加到起點(diǎn)站和終點(diǎn)站中去。因?yàn)樘砑榆嚧嗡?只涉及到車次的詳細(xì)信息,如果要想添加站點(diǎn),則需要在添加站點(diǎn)功能頁(yè)面中 進(jìn)行相應(yīng)的操作。 添加車次頁(yè)面(如圖 4.12) 第 26 頁(yè) 共 30
45、頁(yè) 圖 4.12 添加車次 4.4.24.4.2 添加站點(diǎn)添加站點(diǎn) 添加站點(diǎn)功能:(1)在添加站點(diǎn)的文本框中輸入要添加的站點(diǎn)名稱。 (2) 提供了一個(gè)站點(diǎn)重名的查找功能,該功能可以對(duì)你輸入添加的站點(diǎn)名稱進(jìn)行名 稱查重,通過(guò)查詢站點(diǎn)編碼表,顯示這個(gè)站點(diǎn)是否已經(jīng)存在。如果不存在,則 將此新增站點(diǎn)名稱插入到站點(diǎn)編碼表中,如果存在,則不需將此站點(diǎn)名稱插入 到站點(diǎn)編碼表中。 (3)通過(guò)下拉選擇框選擇新增站點(diǎn)所對(duì)應(yīng)的車次號(hào)。 (4)如 果查詢站點(diǎn)總數(shù)在文本框中顯示為“0” ,則需要將起點(diǎn)站和終點(diǎn)站同新增的站 點(diǎn)一起插入車次和站點(diǎn)的關(guān)系表中。如果查詢站點(diǎn)總數(shù)在文本框中顯示不為 “0” ,則只需將新增的站點(diǎn)插
46、入車次和站點(diǎn)關(guān)系表中即可。 添加站點(diǎn)頁(yè)面(如圖 4.13) 圖 4.13 添加站點(diǎn) 4.54.5 公交系統(tǒng)刪除模塊公交系統(tǒng)刪除模塊 4.5.14.5.1 刪除車次刪除車次 刪除車次功能:分頁(yè)列出車次信息表中所有的車次信息,選擇操作中的刪 除,就可以將對(duì)應(yīng)的車次信息刪除,但是在刪除車次信息的時(shí)候需要先刪除車 次與站點(diǎn)關(guān)系表中所有對(duì)應(yīng)該車次的信息。如果不先刪除就會(huì)出現(xiàn)違反數(shù)據(jù)庫(kù) 完整性。 刪除車次頁(yè)面(如圖 4.14) 圖 4.14 刪除車次 第 27 頁(yè) 共 30 頁(yè) 4.5.24.5.2 刪除站點(diǎn)刪除站點(diǎn) 刪除站點(diǎn)功能:通過(guò)車次的下拉選擇框選擇車次,進(jìn)行查詢列出該車次的 所有站點(diǎn)信息,然后點(diǎn)擊
47、刪除操作就可以刪除該站點(diǎn)。需要注意:因?yàn)樵谲嚧?中從起點(diǎn)站到終點(diǎn)站計(jì)算,其所有的站點(diǎn)是一個(gè)有次序的排列,所以刪除一個(gè) 站點(diǎn),則它的下個(gè)站點(diǎn)次序號(hào)依次減少一位。 刪除站點(diǎn)頁(yè)面(如圖 4.15) 圖 4.15 刪除站點(diǎn) 4.64.6 公交系統(tǒng)更新模塊公交系統(tǒng)更新模塊 更新站點(diǎn)功能:通過(guò)車次的下拉選擇框選擇車次,進(jìn)行查詢列出該車次的 所有站點(diǎn)信息,然后點(diǎn)擊更新操作就可以更新該站點(diǎn)。需要注意的是,在更新 起點(diǎn)站(或是終點(diǎn)站)的時(shí)候,也要同時(shí)更新車次表中的起點(diǎn)站(或是終點(diǎn)站) 。 更新站點(diǎn)頁(yè)面(如圖 4.16) 圖 4.16 更新站點(diǎn) 第 28 頁(yè) 共 30 頁(yè) 4.74.7 公交系統(tǒng)留言板模塊公交系統(tǒng)
48、留言板模塊 4.7.14.7.1 發(fā)表留言發(fā)表留言 發(fā)表留言是公交查詢系統(tǒng)的一個(gè)新增的功能,主要是收集用戶的留言信息, 可以根據(jù)用戶提供的留言信息或是提出的建議,對(duì)系統(tǒng)進(jìn)行修改和完善。使得 系統(tǒng)更加趨于成熟完整。注冊(cè)的用戶登錄到發(fā)表留言的板塊當(dāng)中,系統(tǒng)會(huì)自動(dòng) 提取用戶名稱,用戶只需添上自己的郵箱,發(fā)表的主題和內(nèi)容即可。 發(fā)表留言頁(yè)面(如圖 4.17) 圖 4.17 發(fā)表留言 4.7.24.7.2 查看留言查看留言 查看留言很簡(jiǎn)單為用戶提供了一個(gè)查看自己的發(fā)表的留言,而其它用戶是 不能看見(jiàn)的。因?yàn)橄到y(tǒng)是一個(gè)管理方面的功能較多,所以不會(huì)將用戶留言信息 提供其它的用戶查看。 查看留言(如圖 4.18
49、) 圖 4.18 查看留言 4.7.34.7.3 刪除留言刪除留言 刪除留言功能只有管理員才能查看并操作,在刪除的顯示頁(yè)面中會(huì)將所有 的用戶留言信息及用戶名顯示出來(lái)。這樣也為管理員提供查看哪些用戶是非法 的發(fā)布留言內(nèi)容。針對(duì)這種情況刪除該用戶。 第 29 頁(yè) 共 30 頁(yè) 刪除留言頁(yè)面(如圖 4.19) 圖 4.19 刪除留言 5 5 系統(tǒng)測(cè)試與分析系統(tǒng)測(cè)試與分析 設(shè)計(jì)完成系統(tǒng)的各個(gè)模塊之后,需要對(duì)整個(gè)系統(tǒng)進(jìn)行全面的測(cè)試。目的是 讓整個(gè)系統(tǒng)能夠快速、穩(wěn)定、安全的運(yùn)行。在進(jìn)行系統(tǒng)測(cè)試過(guò)程中出現(xiàn)如下幾 種情況: (1)對(duì)頁(yè)面提交的過(guò)來(lái)的數(shù)據(jù)進(jìn)行空指針異常捕捉。凡是遇到無(wú)效或是空 值數(shù)據(jù)都需要用程序
50、進(jìn)行操作處理。 (2)及時(shí)的捕捉數(shù)據(jù)庫(kù)連接和關(guān)閉異常。以免數(shù)據(jù)庫(kù)連接資源及時(shí)釋放, 提供下一次請(qǐng)求調(diào)用。 (3)對(duì)數(shù)據(jù)庫(kù)查詢操作異常進(jìn)行捕捉。 (4)對(duì)數(shù)據(jù)庫(kù)查詢操作異常進(jìn)行捕捉。 (5)對(duì)數(shù)據(jù)庫(kù)更新操作異常進(jìn)行捕捉。 (6)對(duì)數(shù)據(jù)庫(kù)添加操作異常進(jìn)行捕捉。 (7)對(duì)數(shù)據(jù)庫(kù)刪除操作異常進(jìn)行捕捉。 (8)權(quán)限控制,通過(guò) session 會(huì)話變量對(duì)管理員和用戶的權(quán)限進(jìn)行控制。 (9)頁(yè)面的編碼方式不同,需要的對(duì)字符串進(jìn)行轉(zhuǎn)碼操作。 結(jié)結(jié) 論論 通過(guò)對(duì) J2EE 知識(shí)的認(rèn)真學(xué)習(xí),理論聯(lián)系實(shí)踐,最終完成了基于 J2EE 公交 查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。經(jīng)過(guò)多次測(cè)試,運(yùn)行效果良好。對(duì)于該系統(tǒng),加強(qiáng)后 臺(tái)管理,
51、就可以單獨(dú)作為大型公交管理系統(tǒng)的一個(gè)模塊,也可以將它的功能更 加完善后放置于城市公共場(chǎng)所,為人們提供快捷、方便的查詢。這樣不僅體現(xiàn) 出一個(gè)城市的公交查詢系統(tǒng)的發(fā)展水平,更可以顯示出城市的數(shù)字化和信息化 水平。公交查詢系統(tǒng)的開(kāi)發(fā)利用也必將促使城市公交更好的服務(wù)于人們。 在完成這次畢業(yè)設(shè)計(jì)的過(guò)程中,自己查閱了大量的書(shū)籍,并且通過(guò)互聯(lián)網(wǎng) 也查閱了許多相關(guān)資料,開(kāi)發(fā)出具有 B/S 結(jié)構(gòu)模式的公交系統(tǒng),從而使我的編 程能力和自學(xué)能力得到了很大程度的提高,對(duì)網(wǎng)站設(shè)計(jì)有了更深地了解。 但是,由于整個(gè)系統(tǒng)完全都是由個(gè)人設(shè)計(jì)的,有關(guān) J2EE 許多知識(shí)都要靠自 己去摸索,加之自己水平有限,未能完全地理解 J2E
52、E 的強(qiáng)大功能,因此,系統(tǒng) 第 30 頁(yè) 共 30 頁(yè) 還存在著許多不足之處。 參考文獻(xiàn)參考文獻(xiàn) 1 劉曉華.J2EE 企業(yè)級(jí)應(yīng)用開(kāi)發(fā)M.北京:飛思科技產(chǎn)品研發(fā)中心,2003。 2 賽奎春,陳威.JSP 工程應(yīng)用與項(xiàng)目實(shí)踐M.北京:清華大學(xué)出版社,2004。 3 Cay S.Horstmann,Gary Cornell.java 核心技術(shù)卷 2 高級(jí)特性M.北京:機(jī)械工業(yè)出 版社,2003。 4 Frank M.Carrano,Walter Savitch.數(shù)據(jù)結(jié)構(gòu)與抽象:Java 語(yǔ)言版M.北京:清華大 學(xué)出版社,2005。 5 孫衛(wèi)琴,李洪成.Tomcat 與 Java Web 開(kāi)發(fā)技術(shù)詳解M.北京:電子工業(yè)出版社,2004。 6 高鐵杠,顧巧論.智能公交查詢系統(tǒng)J.新技術(shù)應(yīng)用,2005,(7):31-32。 7 王宏.SQL Server 2000 數(shù)據(jù)庫(kù)管理M.北京:人民郵電出版社,2001。
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競(jìng)賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫(kù)試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫(kù)試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫(kù)試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測(cè)試題庫(kù)及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測(cè)工種技術(shù)比武題庫(kù)含解析
- 1 礦山應(yīng)急救援安全知識(shí)競(jìng)賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案