軟件工程畢業(yè)論文-實時路況系統(tǒng)的設(shè)計與實現(xiàn) 2_第1頁
已閱讀1頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  本科畢業(yè)論文</b></p><p><b> ?。?0 屆)</b></p><p>  實時路況系統(tǒng)的設(shè)計與實現(xiàn)</p><p><b>  摘要</b></p><p>  隨著城市化進程的進一步加快,城市的人口和機動車擁有量也在急劇增長,

2、城市交通交通壓力日益加大,但是城市的一些交通的配套設(shè)施和管理措施沒有跟上車輛增長的速度,從而交通擁擠堵塞現(xiàn)象日趨嚴重,交通事故時有發(fā)生。該系統(tǒng)在交通管理者與公眾之間架起一座信息的橋梁,使交管部門所掌握的一手路況信息,能夠準確、及時地發(fā)布給公眾,從而達到指導出行、緩解擁堵的目的,讓人們的出行能夠通暢、快捷。從查看路況上網(wǎng)站,到導航儀實時播報擁堵信息,使得我們每天不在與道路擁堵“斗智斗勇”的時候,道路交通也越來越智能了。</p>

3、<p>  實時路況系統(tǒng)在Struts2+Hibernate+Spring框架的基礎(chǔ)上,抓住MVC的思想的靈魂,用當今主流的網(wǎng)站開發(fā)技術(shù)html5,jsp語言并結(jié)合實用的javascript,ajax,servlet過濾器等技術(shù)進行開發(fā)。該系統(tǒng)采用B/S體系結(jié)構(gòu),人們通過瀏覽器進行訪問網(wǎng)站的主頁,保證的服務器的安全。數(shù)據(jù)庫采用免費,小巧,易用的mysql數(shù)據(jù)庫。該系統(tǒng)功能較齊全,用戶可以搜尋路況信息,定位,查看監(jiān)控視頻。管

4、理員可以管理各種路況、監(jiān)控信息,以及搜索定位等功能。通過管理員及時的上傳路況,監(jiān)控信息,用戶可以方便的查看自己路況的信息,選擇合適的出行路線,使出行更加智能。</p><p>  本套論壇的優(yōu)點在于發(fā)效率快 穩(wěn)定集成性能好,易于維護及擴展。</p><p>  關(guān)鍵字:實時路況,S.S.H(Struts ,Hibernate ,Spring),JAVA , MySQL ,JSP,html5

5、</p><p><b>  Abstract</b></p><p>  Along with With the further accelerate a city to change a process, the amount of city population and the vehicle is in rapid growth of city traffi

6、c, traffic pressure increasing, but some of the city's traffic facilities and management measures have not kept pace with the vehicle speed, and traffic congestion is becoming more and more serious, traffic accidents

7、 have occurred from time to time. The system sets up an information bridge between traffic managers and the public, the traffic control d</p><p>  This Real-time traffic system based on Struts2+Hibernate+Spr

8、ing framework, grab the MVC idea of the soul, with HTML5 web development technology of the current mainstream, JSP language and combining with the practical JavaScript, AJAX technology development. The system uses the B/

9、S architecture, people visit the site through the browser home page, ensure the safety of the server. Database using free, compact, easy to use MySQL database. The system function is complete, the user can search traffic

10、</p><p>  The forum is the efficiency of fast and stable integration of good performance, easy to maintain and extend.</p><p><b>  目錄</b></p><p><b>  1.緒論1</b&

11、gt;</p><p>  1.1作品構(gòu)思的創(chuàng)意與價值1</p><p><b>  1.1.1背景1</b></p><p>  1.1.2選題動機1</p><p>  1.2國內(nèi)外研究現(xiàn)狀和發(fā)展趨勢1</p><p>  2.理論技術(shù)基礎(chǔ)2</p><p>

12、  2.1開發(fā)語言綜述2</p><p>  2.2MySQL數(shù)據(jù)庫3</p><p>  2.2Jboss3</p><p>  2.3SSH框架3</p><p>  3.系統(tǒng)的分析與設(shè)計4</p><p>  3.1系統(tǒng)開發(fā)運行環(huán)境4</p><p><b>  3.

13、2需求分析4</b></p><p>  3.2.1可行性分析4</p><p>  3.2.2系統(tǒng)功能分析5</p><p><b>  3.3總體設(shè)計5</b></p><p>  3.3.1邏輯結(jié)構(gòu)設(shè)計5</p><p>  3.3.2路況維護流程圖6</p&g

14、t;<p>  3.3.3監(jiān)控維護流程圖7</p><p>  3.3.4.基礎(chǔ)設(shè)置流程圖7</p><p>  3.4系統(tǒng)詳細設(shè)計8</p><p>  3.4.1系統(tǒng)E-R圖9</p><p>  3.4.2數(shù)據(jù)字典10</p><p>  3.4.3各模塊流程圖11</p>

15、<p>  4.系統(tǒng)的實現(xiàn)14</p><p>  4.1目錄結(jié)構(gòu)14</p><p>  4.2框架配置文件15</p><p>  4.2.1Struts配置文件15</p><p>  4.2.2Spring+Hibernate配置文件16</p><p>  4.3系統(tǒng)權(quán)限管理17<

16、;/p><p>  4.4路況維護18</p><p>  4.4.1路況添加18</p><p>  4.4.2路況管理21</p><p>  4.5監(jiān)控維護23</p><p>  4.5.1監(jiān)控添加23</p><p>  4.5.2監(jiān)控管理25</p><p

17、>  4.6基礎(chǔ)設(shè)置27</p><p><b>  5.總結(jié)29</b></p><p><b>  參考文獻30</b></p><p><b>  1.緒論</b></p><p>  1.1作品構(gòu)思的創(chuàng)意與價值</p><p><

18、;b>  1.1.1背景</b></p><p>  隨著我國經(jīng)濟的快速發(fā)展,城市化、機動化的進程日益加快,交通工具的增長速度遠遠高于道路和其他交通設(shè)施的增長,隨之引起了交通堵塞、環(huán)境污染、交通事故等一系列的交通問題。</p><p>  本項目依托于河北省高速公路交警總隊保定支隊項目《高速公路智能交通管理系統(tǒng)》,是對該項目路況管理功能的擴充和延伸。實現(xiàn)由交管部門向公眾發(fā)

19、布實時路況,使公眾在出行前、特別是出行中了解準確、及時的路況信息的功能,希望在一定程度上實現(xiàn)對公眾的出行誘導,緩解交通擁堵問題。</p><p><b>  1.1.2選題動機</b></p><p>  現(xiàn)在,通過前期的調(diào)研,我們發(fā)現(xiàn),目前存在兩個問題:</p><p> ?。?)公眾在出行前、特別是出行中對于準確、及時的路況信息有著迫切的需

20、求,目前在行車中公眾主要是通過交通廣播電臺和司機手中兩種途徑獲得路況信息,但這種信息往往是片面的,零散的,沒有經(jīng)過系統(tǒng)化的整理,對于公眾出行的指導作用有限;</p><p>  (2)做為交通管理者的交警部門、路政部門掌握著大量的一手的路況信息(如事故信息、交通管制信息、治安事件信息、監(jiān)控信息等),但沒有一個有效的平臺將信息及時發(fā)布出去,以達到車輛分流、緩解擁堵的目的。</p><p> 

21、 本系統(tǒng)的目的就是要建立一個平臺,在交通管理者與公眾之間架起一座信息的橋梁,使交管部門所掌握的一手路況信息,能夠準確、及時地發(fā)布給公眾,從而達到指導出行、緩解擁堵的目的。</p><p>  1.2國內(nèi)外研究現(xiàn)狀和發(fā)展趨勢</p><p>  目前,衛(wèi)星定位導航領(lǐng)域走在世界最前沿的是美國的GPS系統(tǒng)。GPS系統(tǒng)的前身是美國軍方研制的一種子午儀衛(wèi)星定位系統(tǒng)(Transit),1958年研制,

22、1964年正式投入使用。該系統(tǒng)用5到6顆衛(wèi)星組成的星網(wǎng)工作,每天最多繞過地球13次,并且無法給出高度信息,在定位精度方面也不盡如人意。然而,子午儀系統(tǒng)使得研發(fā)部門對衛(wèi)星定位取得了初步的經(jīng)驗,并驗證了由衛(wèi)星系統(tǒng)進行定位的可行性,為GPS系統(tǒng)的研制埋下了鋪墊。由于衛(wèi)星定位顯示出在導航方面的巨大優(yōu)越性及子午儀系統(tǒng)存在對潛艇和艦船導航方面的巨大缺陷。美國海陸空三軍及民用部門都感到迫切需要一種新的衛(wèi)星導航系統(tǒng)。</p><p&

23、gt;  為此,美國海軍研究實驗室(NRL)提出了名為Tinmation的用12到18顆衛(wèi)星組成10000km高度的全球定位網(wǎng)計劃,并于67年、69年和74年各發(fā)射了一顆試驗衛(wèi)星,在這些衛(wèi)星上初步試驗了原子鐘計時系統(tǒng),這是GPS系統(tǒng)精確定位的基礎(chǔ)。而美國空軍則提出了621-B的以每星群4到5顆衛(wèi)星組成3至4個星群的計劃,這些衛(wèi)星中除1顆采用同步軌道外其余的都使用周期為24h的傾斜軌道,該計劃以偽隨機碼(PRN)為基礎(chǔ)傳播衛(wèi)星測距信號,其

24、強大的功能,當信號密度低于環(huán)境噪聲的1%時也能將其檢測出來。偽隨機碼的成功運用是GPS系統(tǒng)得以取得成功的一個重要基礎(chǔ)。海軍的計劃主要用于為艦船提供低動態(tài)的2維定位,空軍的計劃能供提供高動態(tài)服務,然而系統(tǒng)過于復雜。由于同時研制兩個系統(tǒng)會造成巨大的費用而且這里兩個計劃都是為了提供全球定位而設(shè)計的,所以1973年美國國防部將2者合二為一,并由國防部牽頭的衛(wèi)星導航定位聯(lián)合計劃局(JPO)領(lǐng)導,還將辦事機構(gòu)設(shè)立在洛杉磯的空軍航天處。該機構(gòu)成員眾多

25、,包括美國陸軍、海軍、海軍陸戰(zhàn)隊、交通部、國防制圖局、北約和澳大利亞的代表。</p><p>  由于種種原因,我國的衛(wèi)星定位導航水平遠遠落后于信息基礎(chǔ)設(shè)施的建設(shè)的水平。但通過近年來我國的大力發(fā)展,2000年,首先建成北斗導航試驗系統(tǒng),使我國成為繼美、俄之后的世界上第三個擁有自主衛(wèi)星導航系統(tǒng)的國家。該系統(tǒng)已成功應用于測繪、電信、水利、漁業(yè)、交通運輸、森林防火、減災救災和公共安全等諸多領(lǐng)域,產(chǎn)生顯著的經(jīng)濟效益和社會

26、效益。特別是在2008年北京奧運會、汶川抗震救災中發(fā)揮了重要作用。為更好地服務于國家建設(shè)與發(fā)展,滿足全球應用需求,我國啟動實施了北斗衛(wèi)星導航系統(tǒng)建設(shè)。全國政協(xié)副主席、中國科學技術(shù)部部長萬鋼日前透露,2013年將中國在東盟各國合作建設(shè)北斗系統(tǒng)地面站網(wǎng)。而根據(jù)中國衛(wèi)星導航定位協(xié)會最新預測數(shù)據(jù),到2015年,我國衛(wèi)星導航與位置服務產(chǎn)業(yè)產(chǎn)值將超過2250億元,至2020年則將超過4000億元。</p><p>  鑒于上

27、述衛(wèi)星定位導航系統(tǒng)的日趨成熟和收集信息的情況,該系統(tǒng)充分綜合應用了SSh架構(gòu)、Mysql、Html5、JSP等技術(shù),真正完好地達到服務于交通的計劃。</p><p><b>  2.理論技術(shù)基礎(chǔ)</b></p><p><b>  2.1開發(fā)語言綜述</b></p><p>  本系統(tǒng)是基于面向?qū)ο笏枷氲腏AVA語言中J2

28、EE平臺進行編寫,J2EE核心是一組技術(shù)規(guī)范與指南,其中所包含的各類組件、服務架構(gòu)及技術(shù)層次,均有共同的標準及規(guī)格,讓各種依循J2EE架構(gòu)的不同平臺之間,存在良好的兼容性,解決過去企業(yè)后端使用的信息產(chǎn)品彼此之間無法兼容,企業(yè)內(nèi)部或外部難以互通的窘境。</p><p>  J2EE組件和“標準的” Java類的不同點在于:它被裝配在一個J2EE應用中,具有固定的格式并遵守J2EE規(guī)范,由J2EE服務器對其進行管理。

29、J2EE規(guī)范是這樣定義J2EE組件的:客戶端應用程序和applet是運行在客戶端的組件;Java Servlet和Java Server Pages (JSP) 是運行在服務器端的Web組件;Enterprise Java Bean (E JB )組件是運行在服務器端的業(yè)務組件。</p><p>  J2EE為搭建具有可伸縮性、靈活性、易維護性的商務系統(tǒng)提供了良好的機制:</p><p>

30、  1. 保留現(xiàn)存的IT資產(chǎn):</p><p>  由于企業(yè)必須適應新的商業(yè)需求,利用已有的企業(yè)信息系統(tǒng)方面的投資,而不是重新制定全盤方案就變得很重要。這樣,一個以漸進的(而不是激進的,全盤否定的)方式建立在已有系統(tǒng)之上的服務器端平臺機制是公司所需求的。J2EE架構(gòu)可以充分利用用戶原有的投資,如一些公司使用的BEA Tuxedo、IBM CICS,IBM Encina,、Inprise VisiBroker 以及

31、Netscape Application Server。這之所以成為可能是因為J2EE擁有廣泛的業(yè)界支持和一些重要的'企業(yè)計算'領(lǐng)域供應商的參與。每一個供應商都對現(xiàn)有的客戶提供了不用廢棄已有投資,進入可移植的J2EE領(lǐng)域的升級途徑。由于基于J2EE平臺的產(chǎn)品幾乎能夠在任何操作系統(tǒng)和硬件配置上運行,現(xiàn)有的操作系統(tǒng)和硬件也能被保留使用。</p><p><b>  2. 高效的開發(fā):<

32、/b></p><p>  J2EE允許公司把一些通用的、很繁瑣的服務端任務交給中間供應商去完成。這樣開發(fā)人員可以集中精力在如何創(chuàng)建商業(yè)邏輯上,相應地縮短了開發(fā)時間。高級中間件供應商提供以下這些復雜的中間件服務:</p><p>  o 狀態(tài)管理服務 -- 讓開發(fā)人員寫更少的代碼,不用關(guān)心如何管理狀態(tài),這樣能夠更快地完成程序開發(fā)。</p><p>  o 持續(xù)

33、性服務 -- 讓開發(fā)人員不用對數(shù)據(jù)訪問邏輯進行編碼就能編寫應用程序,能生成更輕巧,與數(shù)據(jù)庫無關(guān)的應用程序,這種應用程序更易于開發(fā)與維護。</p><p>  o 分布式共享數(shù)據(jù)對象CACHE服務 -- 讓開發(fā)人員編制高性能的系統(tǒng),極大提高整體部署的伸縮性。</p><p>  3. 支持異構(gòu)環(huán)境:</p><p>  J2EE能夠開發(fā)部署在異構(gòu)環(huán)境中的可移植程序?;?/p>

34、于J2EE的應用程序不依賴任何特定操作系統(tǒng)、中間件、硬件。因此設(shè)計合理的基于J2EE的程序只需開發(fā)一次就可部署到各種平臺。這在典型的異構(gòu)企業(yè)計算環(huán)境中是十分關(guān)鍵的。J2EE標準也允許客戶訂購與J2EE兼容的第三方的現(xiàn)成的組件,把他們部署到異構(gòu)環(huán)境中,節(jié)省了由自己制訂整個方案所需的費用。</p><p><b>  4. 可伸縮性:</b></p><p>  企業(yè)必須

35、要選擇一種服務器端平臺,這種平臺應能提供極佳的可伸縮性去滿足那些在他們系統(tǒng)上進行商業(yè)運作的大批新客戶?;贘2EE平臺的應用程序可被部署到各種操作系統(tǒng)上。例如可被部署到高端UNIX與大型機系統(tǒng),這種系統(tǒng)單機可支持64至256個處理器。(這是NT服務器所望塵莫及的)J2EE領(lǐng)域的供應商提供了更為廣泛的負載平衡策略。能消除系統(tǒng)中的瓶頸,允許多臺服務器集成部署。這種部署可達數(shù)千個處理器,實現(xiàn)可高度伸縮的系統(tǒng),滿足未來商業(yè)應用的需要。</

36、p><p><b>  5.穩(wěn)定的可用性:</b></p><p>  一個服務器端平臺必須能全天候運轉(zhuǎn)以滿足公司客戶、合作伙伴的需要。因為INTERNET是全球化的、無處不在的,即使在夜間按計劃停機也可能造成嚴重損失。若是意外停機,那會有災難性后果。J2EE部署到可靠的操作環(huán)境中,他們支持長期的可用性。一些J2EE部署在WINDOWS環(huán)境中,客戶也可選擇魯棒性更好的操作

37、系統(tǒng)如Sun Solaris、IBM OS/390。魯棒性最好的操作系統(tǒng)可達到99.999%的可用性或每年只需5分鐘停機時間。這是實時性很強商業(yè)系統(tǒng)理想的選擇。</p><p>  2.2MySQL數(shù)據(jù)庫 </p><p>  MySQL是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),MySQL數(shù)據(jù)庫系統(tǒng)使用最常用的數(shù)據(jù)庫管理語言--結(jié)構(gòu)化查詢語言(SQL)進行數(shù)據(jù)庫管理。

38、比其它的數(shù)據(jù)庫管理系統(tǒng)(DBMS)來說,MySQL具有小巧、功能齊全、查詢迅捷等優(yōu)點,對于一般中小型,甚至大型應用都能夠勝任</p><p><b>  2.3JBoss</b></p><p>  JBoss是全世界開發(fā)者共同努力的成果,一個基于J2EE的開放源代碼的應用服務器。 因為JBoss代碼遵循LGPL許可,可以在任何商業(yè)應用中免費使用它,而不用支付費用。除

39、此之外,JBoss需要的內(nèi)存和硬盤空間比較小,支持集群。</p><p><b>  2.4SSH框架</b></p><p>  集成SSH框架的系統(tǒng)從職責上分為四層:表示層、業(yè)務邏輯層、數(shù)據(jù)持久層和域模塊層,以幫助開發(fā)人員在短期內(nèi)搭建結(jié)構(gòu)清晰、可復用性好、維護方便的Web應用程序。其中使用Struts作為系統(tǒng)的整體基礎(chǔ)架構(gòu),負責MVC的分離,在Struts框架的模

40、型部分,控制業(yè)務跳轉(zhuǎn),利用Hibernate框架對持久層提供支持,Spring做管理,管理struts和hibernate。具體做法是:用面向?qū)ο蟮姆治龇椒ǜ鶕?jù)需求提出一些模型,將這些模型實現(xiàn)為基本的Java對象,然后編寫基本的DAO(Data Access Objects)接口,并給出Hibernate的DAO實現(xiàn),采用Hibernate架構(gòu)實現(xiàn)的DAO類來實現(xiàn)Java類與數(shù)據(jù)庫之間的轉(zhuǎn)換和訪問,最后由Spring做管理,管理stru

41、ts和hibernate。</p><p>  系統(tǒng)的基本業(yè)務流程是: 在表示層中,首先通過JSP頁面實現(xiàn)交互界面,負責傳送請求(Request)和接收響應(Response),然后Struts根據(jù)配置文件(struts-config.xml)將ActionServlet接收到的Request委派給相應的Action處理。在業(yè)務層中,管理服務組件的Spring IoC容器負責向Action提供業(yè)務模型(Model

42、)組件和該組件的協(xié)作對象數(shù)據(jù)處理(DAO)組件完成業(yè)務邏輯,并提供事務處理、緩沖池等容器組件以提升系統(tǒng)性能和保證數(shù)據(jù)的完整性。而在持久層中,則依賴于Hibernate的對象化映射和數(shù)據(jù)庫交互,處理DAO組件請求的數(shù)據(jù),并返回處理結(jié)果。</p><p>  采用上述開發(fā)模型,不僅實現(xiàn)了視圖、控制器與模型的徹底分離,而且還實現(xiàn)了業(yè)務邏輯層與持久層的分離。這樣無論前端如何變化,模型層只需很少的改動,并且數(shù)據(jù)庫的變化也不

43、會對前端有所影響,大大提高了系統(tǒng)的可復用性。而且由于不同層之間耦合度小,有利于團隊成員并行工作,大大提高了開發(fā)效率。</p><p>  3.系統(tǒng)的分析與設(shè)計</p><p>  3.1系統(tǒng)開發(fā)運行環(huán)境</p><p>  鑒于系統(tǒng)的開發(fā)語言和數(shù)據(jù)庫,采用如下的開發(fā)環(huán)境</p><p><b>  系統(tǒng)模式:B/S</b>

44、;</p><p>  開發(fā)環(huán)境: Windows 2000NT JDK1.6</p><p>  WEB 服務器:Jboss</p><p>  硬件實現(xiàn): PentiumⅣ2.4G 1G內(nèi)存 80G硬盤</p><p>  開發(fā)語言: Java</p><p>  數(shù) 據(jù) 庫: MySQL</p>

45、;<p>  開發(fā)工具: MyEclipse10 </p><p>  框架:Struts2+Hibernate+Spring</p><p>  預期成果: 一個可擴展的基于MVC模式的實時路況系統(tǒng)</p><p><b>  3.2需求分析</b></p><p>  3.2.1可行性分析</p

46、><p>  在有限的時間中,完成高品質(zhì)的系統(tǒng),不得不提前考慮該系統(tǒng)的可行性。可行性的分析包括:經(jīng)濟可行性、技術(shù)可行性、操作可行性等等。</p><p> ?。?)經(jīng)濟可行性:本系統(tǒng)采用B/S系統(tǒng)模式,采用開源的服務器和數(shù)據(jù)庫,節(jié)約一定的財務支出,當系統(tǒng)建成之后,可以實現(xiàn)資源共享,節(jié)約用戶的出行時間,還帶來了經(jīng)濟效益,從經(jīng)濟上說是可行的。</p><p><b&g

47、t; ?。?) 技術(shù)可行性</b></p><p>  我們已經(jīng)系統(tǒng)的學習了mysql,java,web系統(tǒng)開發(fā)課程,并且已經(jīng)深入學習了HTML5,CSS3,js,SSH框架,ajax等相關(guān)技術(shù),為項目的完成提供了技術(shù)保障。</p><p><b> ?。?) 操作可行性</b></p><p>  本系統(tǒng)邏輯結(jié)構(gòu)清晰,操作簡單,易

48、于理解,只需通過簡單指導,系統(tǒng)管理員、以及普通用戶均能進行操作,操作可行性是完全可行的。</p><p>  綜上所述:該實時路況系統(tǒng)效率高,成本低,出錯率低,使用戶的使用,總體上來說是完全可行的。</p><p>  3.2.2系統(tǒng)功能分析</p><p>  該實時路況系統(tǒng)實現(xiàn)以下管理功能:用戶管理,路況查詢,路況維護,監(jiān)控維護,基礎(chǔ)設(shè)置等。</p>

49、<p>  用戶管理模塊:該模塊的主要功能是實現(xiàn)對用戶的管理工作,包括用戶的注冊,登陸以及用戶的修改刪除功能。用戶在注冊時,利用ajax實現(xiàn)了在本頁面內(nèi)的刷新,來判斷用戶是否已經(jīng)存在,并用session保存用戶的信息。</p><p>  路況查詢模塊:該模塊的主要是利用百度地圖API完成用戶可以定位具體的位置,查詢起始點到終止點的路線方案,以及放大縮小地圖。</p><p>

50、;  路況維護模塊:該模塊主要功能是利用SSH完成路況信息的添加,路況的搜索,以及對路況的修改和刪除操作還有定位等功能。</p><p>  監(jiān)控維護模塊:該模塊的主要功能是利用SSH實現(xiàn)視頻的上傳,監(jiān)控的搜索,以及對監(jiān)控的修改和刪除功能,這個模塊將具體位置的視頻錄像清晰的展示給用戶,使得用戶準確的了解路況情況。</p><p>  基礎(chǔ)設(shè)置模塊:該模塊的主要功能是利用SSH實現(xiàn)圖標的上傳

51、,對圖標的列表顯示,以及圖標的修改和刪除等功能。</p><p><b>  3.3總體設(shè)計</b></p><p>  3.3.1邏輯結(jié)構(gòu)設(shè)計</p><p>  該系統(tǒng)擁有管理員和普通用,邏輯結(jié)構(gòu)如圖3-1所示。</p><p>  圖3-1系統(tǒng)角色權(quán)限圖</p><p>  3.3.2路況維

52、護流程圖</p><p>  圖3-2.路況維護流程圖</p><p>  3.3.3監(jiān)控維護流程</p><p>  圖3-3.監(jiān)控流程圖</p><p>  3.3.4.基礎(chǔ)設(shè)置流程</p><p>  圖3-4.基礎(chǔ)設(shè)置流程圖</p><p><b>  3.4系統(tǒng)詳細設(shè)計<

53、;/b></p><p>  3.4.1系統(tǒng)E-R圖</p><p>  該實時路況系統(tǒng)中的管理員模塊涉及到4個數(shù)據(jù)表</p><p>  路況類型:編號,類型名稱、顯示圖標</p><p>  路況信息:編號,路況類型,發(fā)生時間、預計結(jié)束時間、地點、經(jīng)度,緯度、路況描述、狀態(tài)</p><p>  監(jiān)控信息:編號

54、、名稱、經(jīng)度,緯度、視頻信息</p><p>  用戶信息:編號、用戶名、密碼、角色類型</p><p>  系統(tǒng)各實體ER圖以及實體之間的聯(lián)系如下:</p><p><b> ?。?)用戶ER圖</b></p><p>  圖3-5.用戶實體ER圖</p><p>  (2)路況類型ER圖&l

55、t;/p><p>  圖3-6. 路況類型ER圖</p><p>  (3)路況信息ER圖</p><p>  圖3-7 .路況信息ER圖</p><p>  (4)監(jiān)控信息ER圖</p><p>  圖3-8. 監(jiān)控信息ER圖</p><p><b>  3.4.2數(shù)據(jù)字典</b&

56、gt;</p><p>  本系統(tǒng)采用的后臺數(shù)據(jù)庫是Mysql數(shù)據(jù)庫系統(tǒng),本數(shù)據(jù)庫包含四張表。各表結(jié)構(gòu)分別如以下列表所示。</p><p>  路況類型表(tb_eventtype)</p><p>  表3-1. 路況類型表</p><p> ?。?)路況信息表(tb_event)</p><p>  表3-2.路況

57、信息表</p><p> ?。?)監(jiān)控信息表(tb_monitor)</p><p>  表3-3. 監(jiān)控信息表</p><p>  (3)用戶表(tb_user)</p><p><b>  表3-4.用戶表</b></p><p>  3.4.3各模塊順序圖</p><p&

58、gt;<b> ?。?)路況維護</b></p><p><b> ?。?)監(jiān)控維護</b></p><p><b>  (4)基礎(chǔ)設(shè)置</b></p><p><b>  4.系統(tǒng)的實現(xiàn)</b></p><p><b>  4.1目錄結(jié)構(gòu)<

59、;/b></p><p><b>  4.2框架配置文件</b></p><p>  4.2.1Struts的配置文件</p><p>  Struts.xml</p><p><b>  (1)頭部配置文件</b></p><p>  <?xml version

60、="1.0" encoding="UTF-8" ?></p><p>  <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.

61、1.dtd"></p><p>  (2)action配置</p><p>  <package name="a" extends="struts-default" namespace="/admin"></p><p>  <action name="type*

62、" class="TypeAction" method="{1}"></p><p>  <param name="allowTypes"></p><p>  image/pjpeg,image/bmp,image/jpg,image/png,image/gif,image/jpeg</p>

63、;<p><b>  </param></b></p><p>  <param name="savePath">upload</param></p><p>  <result name="list" type="redirectAction">

64、typelist.action</result></p><p>  <result name="success">/admin/typeMaintenance.jsp</result></p><p>  <result name="update">/admin/updateType.jsp</

65、result></p><p>  <result name="error">/admin/typeError.jsp</result></p><p>  <interceptor-ref name="defaultStack" /></p><p><b>  </

66、action></b></p><p>  <action name="monitors*" class="MonitorAction" method="{1}"></p><p>  <param name="allowTypes"></p><p

67、>  video/x-flv,audio/mpeg,video/mp4,application/ogg</p><p><b>  </param></b></p><p>  <param name="savePath">upload</param></p><p>  <r

68、esult name="success">/admin/searchMonitor.jsp </result></p><p>  <result name="list" type="redirectAction">monitorssearch.action</result></p><p&g

69、t;  <result name="error">/admin/monitorError.jsp</result></p><p>  <result name="update">/admin/updateMonitor.jsp</result></p><p><b>  </acti

70、on></b></p><p>  <action name="road*" class="EventAction" method="{1}"></p><p>  <result name="success">/admin/searchRoad.jsp</res

71、ult></p><p>  <result name="list" type="redirectAction">roadlist.action</result></p><p>  <result name="error">/admin/roadError.jsp</result&

72、gt;</p><p>  <result name="add">/admin/addRoad.jsp</result></p><p>  <result name="update">/admin/updateRoad.jsp</result></p><p><b>

73、;  </action></b></p><p>  </package></p><p>  上面的action中的name對應前臺傳遞的名稱,class對應spring配置文件中的定義的類名。Result表示后臺執(zhí)行完后,需要跳轉(zhuǎn)到哪個頁面。</p><p>  4.2.2Spring+Hibernate的配置文件</p

74、><p><b>  (1)頭部配置文件</b></p><p>  <?xml version="1.0" encoding="UTF-8"?></p><p>  <beans xmlns="http://www.springframework.org/schema/beans

75、"</p><p>  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"</p><p>  xsi:schemaLocation="http://www.springfra

76、mework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"></p><p><b>  (2)配置數(shù)據(jù)庫</b></p><p>  <bean id="dataSource" class="or

77、g.apache.commons.dbcp.BasicDataSource"></p><p>  <property name="driverClassName" value="com.mysql.jdbc.Driver"></p><p>  </property></p><p>

78、  <property name="url" value="jdbc:mysql://localhost:3306/db_tmc"></p><p>  </property></p><p>  <property name="username" value="root">

79、</property></p><p>  <property name="password" value="root"></property></p><p><b>  </bean></b></p><p>  (3)配置數(shù)據(jù)源,hibernate屬性

80、設(shè)置</p><p>  <bean id="sessionFactory"</p><p>  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"></p><p>  <property name="dataSou

81、rce"></p><p>  <ref bean="dataSource" /></p><p>  </property></p><p>  <property name="hibernateProperties"></p><p><b&

82、gt;  <props></b></p><p>  <prop key="hibernate.dialect"></p><p>  org.hibernate.dialect.MySQLDialect</p><p><b>  </prop></b></p>

83、<p><b>  </props></b></p><p>  </property></p><p>  <property name="mappingResources"></p><p><b>  <list></b></p&g

84、t;<p>  <value>com/tmc/dao/TbEvent.hbm.xml</value></p><p>  <value>com/tmc/dao/TbEventtype.hbm.xml</value></p><p>  <value>com/tmc/dao/TbMonitor.hbm.xml</

85、value></p><p>  <value>com/tmc/dao/TbUser.hbm.xml</value></p><p><b>  </list></b></p><p>  </property></p><p><b>  </bea

86、n></b></p><p>  (4)DAO依賴注入</p><p>  <bean id="TbEventDAO" class="com.tmc.dao.TbEventDAO"></p><p>  <property name="sessionFactory">

87、;</p><p>  <ref bean="sessionFactory" /></p><p>  </property></p><p><b>  </bean></b></p><p>  (5)業(yè)務邏輯依賴注入</p><p> 

88、 <bean id="EventBiz" class="com.tmc.biz.EventBiz"></p><p>  <property name="eDao" ref="TbEventDAO"></property></p><p><b>  </be

89、an></b></p><p>  <bean id="EventAction" class="com.tmc.action.EventAction"></p><p>  <property name="tBiz" ref="TypeBiz"></propert

90、y></p><p>  <property name="eBiz" ref="EventBiz"></property></p><p><b>  </bean></b></p><p><b>  4.3系統(tǒng)權(quán)限管理</b></p

91、><p>  本系統(tǒng)的權(quán)限設(shè)置是由過濾器實現(xiàn)的,主要實現(xiàn)了非用戶登錄不能登錄入頁面內(nèi)查看信息,必須注冊,管理員進入管理員界面,普通用戶進入普通用戶界面。實現(xiàn)的主要的代碼如下:</p><p>  在web里面過濾器的設(shè)置</p><p><b>  <filter></b></p><p>  <filte

92、r-name>login</filter-name></p><p>  <filter-class>com.tmc.action.LoginServlet</filter-class></p><p><b>  </filter></b></p><p>  <filter-map

93、ping></p><p>  <filter-name>login</filter-name></p><p>  <url-pattern>*.action</url-pattern></p><p>  </filter-mapping></p><p>  <fi

94、lter-mapping></p><p>  <filter-name>login</filter-name></p><p>  <url-pattern>*.jsp</url-pattern></p><p>  </filter-mapping></p><p><

95、;b>  <filter></b></p><p>  后臺LoginServlet的書寫:</p><p>  public void doFilter(ServletRequest arg0, ServletResponse arg1,</p><p>  FilterChain arg2) throws IOException,

96、ServletException {</p><p>  HttpServletRequest req = (HttpServletRequest) arg0;</p><p>  HttpServletResponse resp = (HttpServletResponse) arg1;</p><p>  HttpSession session = req.ge

97、tSession();</p><p>  String url = req.getRequestURI();</p><p>  System.out.println("====" + req.getRequestURI());</p><p>  if (session.getAttribute("name") == nu

98、ll) {</p><p>  if (url != null && !url.equals("/tmc/")</p><p>  && (url.indexOf("usercheck") < 0 && url.indexOf("login") < 0&&

99、url.indexOf("error") < 0&&url.indexOf("regist")<0&&url.indexOf("userreg")<0)) {</p><p>  resp.sendRedirect("/tmc/error.jsp");</p><p

100、><b>  return;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  arg2.doFilter(arg0, arg1);</p><p><b>  return;</b><

101、/p><p>  // TODO Auto-generated method stub</p><p><b>  }</b></p><p><b>  4.4路況維護</b></p><p><b>  4.4.1路況添加</b></p><p>  管

102、理員可以添加準確的路況信息,用戶可以登錄瀏覽。</p><p><b>  路況添加代碼如下:</b></p><p>  <form method="get" action="roadadd"></p><p><b>  <center></b></

103、p><p>  <table border="0" cellpadding="5px"></p><p><b>  <tr></b></p><p><b>  <td></b></p><p>  <lable for

104、="type"> 路況類型: </lable></p><p>  <select id="typeId" name="typeId"></p><p>  <s:iterator id="type" value="#session.type"&g

105、t;</p><p>  <option value="<s:property value="id"/>"></p><p>  <s:property value="name"/></p><p><b>  </option></b>

106、</p><p>  </s:iterator></p><p><b>  </select></b></p><p><b>  </td></b></p><p><b>  <td></b></p><

107、p>  <lable for="status"> 狀&nbsp;&nbsp;&nbsp;&nbsp;態(tài): </lable></p><p>  <select id="status" name="status"></p><p>  <option v

108、alue="1" ></p><p><b>  已處理</b></p><p><b>  </option></b></p><p>  <option value="2"></p><p><b>  未處理<

109、;/b></p><p><b>  </option></b></p><p>  <option value="3"></p><p><b>  處理中</b></p><p><b>  </option></b&

110、gt;</p><p><b>  </select></b></p><p><b>  </td></b></p><p><b>  </tr></b></p><p><b>  <tr></b>&l

111、t;/p><p><b>  <td></b></p><p>  <lable for="start"> 發(fā)生時間: </lable></p><p>  <input type="text" name="start" id="star

112、t" onClick="SelectDate(document.getElementById('start'),'yyyy-MM-dd hh:mm:ss')"></p><p><b>  </td></b></p><p><b>  <td></b>&

113、lt;/p><p>  <lable for="end"> 預計結(jié)束時間: </lable></p><p>  <input type="text" name="end" id="end" onClick="SelectDate(document.getElementByI

114、d('end'),'yyyy-MM-dd hh:mm:ss')"></p><p><b>  </td></b></p><p><b>  </tr></b></p><p><b>  <tr></b></

115、p><p>  <td colspan="2"></p><p>  <lable for="address"> 地 &nbsp;&nbsp;&nbsp;&nbsp;點: </lable></p><p>  <input type="text&q

116、uot; name="address" id="address" size="55" onchange="position(address.value)"></p><p><b>  </td></b></p><p><b>  </tr><

117、;/b></p><p><b>  <tr></b></p><p><b>  <td></b></p><p>  <lable for="lat"> 經(jīng)&nbsp;&nbsp;&nbsp;&nbsp;度: </lab

118、le></p><p>  <input type="text" name="lat" id="lat" size="10" onclick="add()"></p><p><b>  </td></b></p><p

119、><b>  <td></b></p><p>  <lable for="lng"> 緯&nbsp;&nbsp;&nbsp;&nbsp;度: </lable></p><p>  <input type="text" name="lng&

120、quot; id="lng" size="10"></p><p><b>  </td></b></p><p><b>  </tr></b></p><p><b>  <tr></b></p>&

121、lt;p>  <td colspan="2"></p><p>  <lable for="desc"> 路況描述: </lable></p><p><b>  </td></b></p><p><b>  </tr><

122、/b></p><p><b>  <tr></b></p><p>  <td colspan="2" align="center"></p><p>  <textarea name="desc" id="desc" rows

123、="4" cols="70"</p><p>  title="路況描述"></textarea></p><p><b>  </td></b></p><p><b>  </tr></b></p>&l

124、t;p><b>  <tr></b></p><p>  <div id="bottom"></p><p>  <s:reset value="重填"></s:reset></p><p>  <s:submit value="確定&

125、quot;></s:submit></p><p><b>  </div></b></p><p><b>  </tr></b></p><p><b>  </table></b></p><p><b> 

126、 </center></b></p><p><b>  </form></b></p><p>  后臺action代碼</p><p>  public String add() {</p><p>  request=ServletActionContext.getRequest

127、();</p><p>  e=new TbEvent();</p><p><b>  try {</b></p><p>  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");</p><p>  String [

128、]t=request.getParameterValues("typeId");</p><p>  String []s=request.getParameterValues("status");</p><p>  int status=Integer.parseInt(s[0]);</p><p>  int typeI

129、d=Integer.parseInt(t[0]);</p><p>  TbEventtype type=tBiz.findById(typeId);</p><p>  String address=new String(request.getParameter("address").getBytes("ISO8859-1"),"gbk&

130、quot; );</p><p>  System.out.println("address"+address);</p><p>  Timestamp start= new Timestamp(sdf.parse(request.getParameter("start")).getTime());</p><p>  T

131、imestamp end= new Timestamp( sdf.parse(request.getParameter("end")).getTime());</p><p>  String desc=new String( request.getParameter("desc").getBytes("ISO8859-1"),"gbk&qu

132、ot;);//desc 亂碼</p><p>  double lat=Double.parseDouble(request.getParameter("lat"));</p><p>  double lng=Double.parseDouble(request.getParameter("lng"));</p><p> 

133、 e.setAddress(address);</p><p>  e.setDescription(desc);</p><p>  e.setEnd(end);</p><p>  e.setStart(start);</p><p>  e.setLat(lat);</p><p>  e.setLng(lng)

溫馨提示

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

最新文檔

評論

0/150

提交評論