實(shí)時(shí)路況系統(tǒng)設(shè)計(jì)_第1頁
實(shí)時(shí)路況系統(tǒng)設(shè)計(jì)_第2頁
實(shí)時(shí)路況系統(tǒng)設(shè)計(jì)_第3頁
實(shí)時(shí)路況系統(tǒng)設(shè)計(jì)_第4頁
實(shí)時(shí)路況系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

PAGE31本科畢業(yè)論文(設(shè)計(jì))題目: 實(shí)時(shí)路況系統(tǒng)設(shè)計(jì)學(xué)院:專業(yè)班級:學(xué)號:學(xué)生姓名:指導(dǎo)教師姓名:指導(dǎo)教師職稱:年月日摘要隨著我國經(jīng)濟(jì)建設(shè)的蓬勃發(fā)展,城市的人口和機(jī)動車擁有量也在急劇增長,交通安全問題日益突出。對干線公路運(yùn)行狀況信息進(jìn)行有效及時(shí)的監(jiān)控和發(fā)布也是交通管理的迫切需求。而對于路況的監(jiān)控和發(fā)布,需要更加流暢的視頻系統(tǒng)。Html5應(yīng)運(yùn)而生,很好的解決了這一問題,HTML5是近十年來Web標(biāo)準(zhǔn)最巨大的飛躍。HTML5并非僅僅用來表示W(wǎng)eb內(nèi)容,它也將Web帶入一個(gè)成熟的應(yīng)用平臺,在這個(gè)平臺上,視頻,音頻,動畫,以及同電腦的交互都被標(biāo)準(zhǔn)化。隨著HTML5的發(fā)展,各個(gè)瀏覽器都已經(jīng)或即將支持HTML5。在大潮流的推動下,微軟也表示將把HTML5作為IE9的核心,并將全力投入HTML5。本作品運(yùn)用html5成熟的視頻動畫標(biāo)準(zhǔn),加以SSH框架為輔助,實(shí)現(xiàn)了對實(shí)時(shí)路況信息的采集,處理,發(fā)布,為廣大用戶和管理部門提供了便捷服務(wù),具有廣闊的發(fā)展前景。關(guān)鍵字:實(shí)時(shí)路況系統(tǒng)、HTML5、SSH、JSP、JbossAbstractWiththevigorousdevelopmentofChina'seconomicconstruction,urbanpopulationandvehicleownershipisalsogrowingsharply,trafficsafetyproblemincreasinglyprominent.Forarterialhighwayrunningstatusinformationforeffectivemonitoringandtimelyreleasetheurgentneedsoftrafficmanagement.Fortrafficmonitoringandpublishing,videosystemneedtobemorefluent.Html5arisesatthehistoricmoment,verygoodtosolvetheproblem,Html5isWebstandardsthehugeleapinnearlyadecade.HTML5isnotonlyusedtorepresentWebcontent,itwillalsobetheWebintoamatureapplicationplatform,andontheplatform,video,audio,animation,andinteractionswiththecomputerhavebeenstandardized.WiththedevelopmentofHTML5,eachbrowserhasbeenorisabouttosupportHTML5.Undertheimpetusofthetrend,MicrosoftsaiditwouldputtheHTML5asthecoreofIE9,anditwouldfullyintoHTML5.Thisworkusinghtml5videoanimationofthematurestandard,triestoSSHframeworkforauxiliary,realizedthereal-timetrafficinformationcollection,processing,distribution,providesconvenientservicesforthemassesofusersandmanagementdepartment,hasabroaddevelopmentprospects.Keywords:Livetrafficsystem,HTML5,SSH,JSP,Mysql目錄1.緒論 61.1選題的背景和意義 61.2國內(nèi)外研究現(xiàn)狀和發(fā)展趨勢 62.理論技術(shù)支持 62.1實(shí)時(shí)路況系統(tǒng)簡介 62.2相關(guān)技術(shù)支持 62.2.1SSH體系結(jié)構(gòu) 62.2.2HTML5簡介 72.2.3CSS簡介 72.2.4JSP技術(shù)簡介 72.2.5Mysql數(shù)據(jù)庫 83.系統(tǒng)的分析與設(shè)計(jì) 43.1系統(tǒng)開發(fā)運(yùn)行環(huán)境 83.2需求分析 83.2.1可行性分析 83.2.2系統(tǒng)功能分析 83.3總體設(shè)計(jì) 93.3.1邏輯結(jié)構(gòu)設(shè)計(jì) 93.3.2用戶登錄流程圖 93.3.3路況查詢流程圖 103.4系統(tǒng)詳細(xì)設(shè)計(jì) 113.4.1系統(tǒng)E-R圖 113.4.2數(shù)據(jù)字典 133.4.3各模塊流程圖 144.系統(tǒng)的實(shí)現(xiàn) 164.1目錄結(jié)構(gòu) 164.2框架配置文件 174.2.1Struts配置文件 174.2.2Spring+Hibernate配置文件 184.3系統(tǒng)權(quán)限管理 194.4用戶管理 204.4.1用戶登錄 204.4.2用戶注冊 234.4.3用戶列表 254.4.4用戶信息修改 274.5路況信息顯示 285.總結(jié) 30參考文獻(xiàn) 311.緒論1.1選題背景和意義隨著我國經(jīng)濟(jì)建設(shè)的蓬勃發(fā)展,城市的人口和機(jī)動車擁有量也在急劇增長,交通流量日益加大,交通擁堵現(xiàn)象日益嚴(yán)重,交通事故時(shí)有發(fā)生,為交通管理部門帶來越來越大的壓力,也給人們的出行造成很大不便和潛在的危險(xiǎn)。因此,深入研究解決城市交通問題有著極為重要的現(xiàn)實(shí)意義。要建設(shè)城市交通問題,就必須準(zhǔn)確掌握交通信息,及時(shí)處理和發(fā)布路況信息,實(shí)現(xiàn)快速,有效,安全的交通管制。為實(shí)現(xiàn)這種需求,就要有一款集路況信息采集上傳,數(shù)據(jù)分析,交通管制,路況發(fā)布于一身的系統(tǒng)軟件。本系統(tǒng)應(yīng)用HTML5技術(shù),基于SSH框架很好的實(shí)現(xiàn)了以上功能。HTML5是用于取代1999年所制定的HTML4.01和XHTML1.0標(biāo)準(zhǔn)的HTML標(biāo)準(zhǔn)版本,現(xiàn)在仍處于發(fā)展階段,但大部分瀏覽器已經(jīng)支持某些HTML5技術(shù)。HTML5有兩大特點(diǎn):首先,強(qiáng)化了Web網(wǎng)頁的表現(xiàn)性能。其次,追加了本地?cái)?shù)據(jù)庫等Web應(yīng)用的功能。廣義論及HTML5時(shí),實(shí)際指的是包括HTML、CSS和JavaScript在內(nèi)的一套技術(shù)組合。它希望能夠減少瀏覽器對于需要插件的豐富性網(wǎng)絡(luò)應(yīng)用服務(wù)(plug-in-basedrichinternetapplication,RIA),如AdobeFlash、MicrosoftSilverlight,與OracleJavaFX的需求,并且提供更多能有效增強(qiáng)網(wǎng)絡(luò)應(yīng)用的標(biāo)準(zhǔn)。1.2國內(nèi)外研究現(xiàn)狀和發(fā)展趨勢目前世界上最先進(jìn)的衛(wèi)星定位導(dǎo)航系統(tǒng)當(dāng)屬GPS,GPS是英文GlobalPositioningSystem(全球定位系統(tǒng))的簡稱。GPS起始于1958年美國軍方的一個(gè)項(xiàng)目,1964年投入使用。20世紀(jì)70年代,美國陸??杖娐?lián)合研制了新一代衛(wèi)星定位系統(tǒng)GPS。主要目的是為陸海空三大領(lǐng)域提供實(shí)時(shí)、全天候和全球性的導(dǎo)航服務(wù),并用于情報(bào)收集、核爆監(jiān)測和應(yīng)急通訊等一些軍事目的,經(jīng)過20余年的研究實(shí)驗(yàn),耗資300億美元,到1994年,全球覆蓋率高達(dá)98%的24顆GPS衛(wèi)星星座己布設(shè)完成。近年來,我國也在衛(wèi)星定位導(dǎo)航方面投入巨大力量,北斗衛(wèi)星導(dǎo)航系統(tǒng)是中國自行研制的全球衛(wèi)星定位與通信系統(tǒng)(BDS),是繼美全球定位系統(tǒng)(GPS)和俄GLONASS之后第三個(gè)成熟的衛(wèi)星導(dǎo)航系統(tǒng)。系統(tǒng)由空間端、地面端和用戶端組成,可在全球范圍內(nèi)全天候、全天時(shí)為各類用戶提供高精度、高可靠定位、導(dǎo)航、授時(shí)服務(wù),并具短報(bào)文通信能力,已經(jīng)初步具備區(qū)域?qū)Ш?、定位和授時(shí)能力,定位精度優(yōu)于20m,授時(shí)精度優(yōu)于100ns。2012年12月27日,北斗系統(tǒng)空間信號接口控制文件正式版正式公布,北斗導(dǎo)航業(yè)務(wù)正式對亞太地區(qū)提供無源定位、導(dǎo)航、授時(shí)服務(wù)。鑒于上述衛(wèi)星定位導(dǎo)航系統(tǒng)的日趨成熟,該系統(tǒng)充分運(yùn)用HTML5標(biāo)準(zhǔn),綜合應(yīng)用了SSH、Mysql等技術(shù),并具有用戶自主上傳和獲取信息功能與管理員對系統(tǒng)進(jìn)行管理等功能,很好的解決了日益嚴(yán)重的交通問題。2.理論技術(shù)支持2.1實(shí)時(shí)路況系統(tǒng)簡介實(shí)時(shí)路況,是針對當(dāng)今城市交通道路擁堵暢通情況所提出的一個(gè)概念。實(shí)時(shí)路況也是交通信息頻道的簡稱。在歐洲,實(shí)時(shí)路況已經(jīng)是一項(xiàng)成熟的車載智能交通導(dǎo)航技術(shù)。實(shí)時(shí)路況能實(shí)時(shí)反映區(qū)域內(nèi)交通文字路況,指引最佳、最快捷的行駛路線,提高道路和車輛的使用效率。一部分GPS產(chǎn)品會在機(jī)身內(nèi)置TMC實(shí)時(shí)路況接收器,但是大部分的GPS的TMC實(shí)時(shí)路況功能都是作為GPS的選配功能,需要額外選配TMC實(shí)時(shí)路況接收器。而車載導(dǎo)航一體機(jī)則通過內(nèi)置的接收模塊或者3G網(wǎng)絡(luò)直接獲取路況信息。2.2相關(guān)技術(shù)簡介2.2.SSH體系結(jié)構(gòu)SSH為SecureShell的縮寫,由IETF的網(wǎng)絡(luò)工作小組(NetworkWorkingGroup)所制定;SSH為建立在應(yīng)用層和傳輸層基礎(chǔ)上的安全協(xié)議。SSH是目前較可靠,專為遠(yuǎn)程登錄會話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議。利用SSH協(xié)議可以有效防止遠(yuǎn)程管理過程中的信息泄露問題。SSH最初是UNIX系統(tǒng)上的一個(gè)程序,后來又迅速擴(kuò)展到其他操作平臺。SSH在正確使用時(shí)可彌補(bǔ)網(wǎng)絡(luò)中的漏洞。SSH客戶端適用于多種平臺。幾乎所有UNIX平臺—包括HP-UX、Linux、AIX、Solaris、DigitalUNIX、Irix,以及其他平臺—都可運(yùn)行SSH。2.2.2HTML5簡介HTML5是用于取代1999年所制定的HTML4.01和XHTML1.0標(biāo)準(zhǔn)的HTML標(biāo)準(zhǔn)版本,現(xiàn)在仍處于發(fā)展階段,但大部分瀏覽器已經(jīng)支持某些HTML5技術(shù)。HTML5有兩大特點(diǎn):首先,強(qiáng)化了Web網(wǎng)頁的表現(xiàn)性能。其次,追加了本地?cái)?shù)據(jù)庫等Web應(yīng)用的功能。廣義論及HTML5時(shí),實(shí)際指的是包括HTML、CSS和JavaScript在內(nèi)的一套技術(shù)組合。它希望能夠減少瀏覽器對于需要插件的豐富性網(wǎng)絡(luò)應(yīng)用服務(wù)(plug-in-basedrichinternetapplication,RIA),如AdobeFlash、MicrosoftSilverlight,與OracleJavaFX的需求,并且提供更多能有效增強(qiáng)網(wǎng)絡(luò)應(yīng)用的標(biāo)準(zhǔn)。2.2.3CSS簡介CSS是英語CascadingStyleSheets(層疊樣式表單)的縮寫,它是一種用來表現(xiàn)HTML或XML等文件式樣的計(jì)算機(jī)語言。CSS目前最新版本為CSS3,能夠真正做到網(wǎng)頁表現(xiàn)與內(nèi)容分離的一種樣式設(shè)計(jì)語言。相對于傳統(tǒng)HTML的表現(xiàn)而言,CSS能夠?qū)W(wǎng)頁中的對象的位置排版進(jìn)行像素級的精確控制,支持幾乎所有的字體字號樣式,擁有對網(wǎng)頁對象盒模型的能力,并能夠進(jìn)行初步交互設(shè)計(jì),是目前基于文本展示最優(yōu)秀的表現(xiàn)設(shè)計(jì)語言。2.2.4JSP技術(shù)簡介

javascript是一種腳本語言,可用來創(chuàng)建客戶端腳本和服務(wù)器端腳本。JSP(JavaServerPages)是由SunMicrosystems公司倡導(dǎo)、許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。用JSP開發(fā)的Web應(yīng)用是跨平臺的,既能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行

2.2.5JSP工作原理

在一個(gè)JSP文件第一次被請求時(shí),JSP引擎把該JSP文件轉(zhuǎn)換成為一個(gè)servlet。而這個(gè)引擎本身也是一個(gè)servlet,在JSWDK或WEBLOGIC中,它就是JspServlet。JSP引擎先把該JSP文件轉(zhuǎn)換成一個(gè)Java源文件,在轉(zhuǎn)換時(shí)如果發(fā)現(xiàn)jsp文件有任何語法錯(cuò)誤,轉(zhuǎn)換過程將中斷,并向服務(wù)端和客戶端輸出出錯(cuò)信息;如果轉(zhuǎn)換成功,JSP引擎用javac把該Java源文件編譯成相應(yīng)的class文件。然后創(chuàng)建一個(gè)該SERVLET的實(shí)例,該SERVLET的jspInit()方法被執(zhí)行,jspInit()方法在servlet的生命周期中只被執(zhí)行一次。然后jspService()方法被調(diào)用來處理客戶端的請求。對每一個(gè)請求,JSP引擎創(chuàng)建一個(gè)新的線程來處理該請求。如果有多個(gè)客戶端同時(shí)請求該JSP文件,則JSP引擎會創(chuàng)建多個(gè)線程。每個(gè)客戶端請求對應(yīng)一個(gè)線程。以多線程方式執(zhí)行可大大降低對系統(tǒng)的資源需求,提高系統(tǒng)的并發(fā)量及響應(yīng)時(shí)間.但應(yīng)該注意多線程的編程限制,由于該servlet始終駐于內(nèi)存,所以響應(yīng)是非??斓?。如果.jsp文件被修改了,服務(wù)器將根據(jù)設(shè)置決定是否對該文件重新編譯,如果需要重新編譯,則將編譯結(jié)果取代內(nèi)存中的servlet,并繼續(xù)上述處理過程。雖然JSP效率很高,但在第一次調(diào)用時(shí)由于需要轉(zhuǎn)換和編譯而有一些輕微的延遲。此外,如果在任何時(shí)候如果由于系統(tǒng)資源不足的原因,JSP引擎將以某種不確定的方式將servlet從內(nèi)存中移去。當(dāng)這種情況發(fā)生時(shí)jspDestroy()方法首先被調(diào)用,然后servlet實(shí)例便被標(biāo)記加入"垃圾收集"處理。jspInit()及jspDestory()格式如下:可在jspInit()中進(jìn)行一些初始化工作,如建立與數(shù)據(jù)庫的連接,或建立網(wǎng)絡(luò)連接,從配置文件中取一些參數(shù)等,在jspDestory()中釋放相應(yīng)的資源。2.3MySQL數(shù)據(jù)庫

MySQL是最受歡迎的開源SQL數(shù)據(jù)庫管理系統(tǒng),它由MySQLAB開發(fā)、發(fā)布和支持。MySQLAB是一家基于MySQL開發(fā)人員的商業(yè)公司,它是一家使用了一種成功的商業(yè)模式來結(jié)合開源價(jià)值和方法論的第二代開源公司。MySQL是MySQLAB的注冊商標(biāo)。MySQL是一個(gè)快速的、多線程、多用戶和健壯的SQL數(shù)據(jù)庫服務(wù)器。MySQL服務(wù)器支持關(guān)鍵任務(wù)、重負(fù)載生產(chǎn)系統(tǒng)的使用,也可以將它嵌入到一個(gè)大配置(mass-deployed)的軟件中去。3.系統(tǒng)的分析與設(shè)計(jì)3.1系統(tǒng)開發(fā)運(yùn)行環(huán)境鑒于系統(tǒng)的開發(fā)語言和數(shù)據(jù)庫,采用如下的開發(fā)環(huán)境系統(tǒng)模式:B/S開發(fā)環(huán)境:Windows2000NTJDK1.6WEB服務(wù)器:Jboss硬件實(shí)現(xiàn):PentiumⅣ2.4G1G內(nèi)存80G硬盤開發(fā)語言:Java數(shù)據(jù)庫:MySQL開發(fā)工具:MyEclipse10預(yù)期成果:一個(gè)可擴(kuò)展的基于MVC模式的實(shí)時(shí)路況系統(tǒng)3.2需求分析3.2.1可行性分析在有限的時(shí)間中,完成高品質(zhì)的系統(tǒng),不得不提前考慮該系統(tǒng)的可行性??尚行缘姆治霭ǎ航?jīng)濟(jì)可行性、技術(shù)可行性、操作可行性等等。(1)經(jīng)濟(jì)可行性:本系統(tǒng)采用B/S系統(tǒng)模式,采用開源的服務(wù)器和數(shù)據(jù)庫,節(jié)約一定的財(cái)務(wù)支出,當(dāng)系統(tǒng)建成之后,可以實(shí)現(xiàn)資源共享,節(jié)約用戶的出行時(shí)間,還帶來了經(jīng)濟(jì)效益,從經(jīng)濟(jì)上說是可行的。(2)技術(shù)可行性我們已經(jīng)系統(tǒng)的學(xué)習(xí)了mysql,java,web系統(tǒng)開發(fā)課程,并且已經(jīng)深入學(xué)習(xí)了HTML5,CSS3,js,SSH框架,ajax等相關(guān)技術(shù),為項(xiàng)目的完成提供了技術(shù)保障。(3)操作可行性本系統(tǒng)邏輯結(jié)構(gòu)清晰,操作簡單,易于理解,只需通過簡單指導(dǎo),系統(tǒng)管理員、以及普通用戶均能進(jìn)行操作,操作可行性是完全可行的。綜上所述:該實(shí)時(shí)路況系統(tǒng)效率高,成本低,出錯(cuò)率低,使用戶的使用,總體上來說是完全可行的。3.2.2系統(tǒng)功能分析該實(shí)時(shí)路況系統(tǒng)實(shí)現(xiàn)以下管理功能:用戶管理,路況查詢,路況維護(hù),監(jiān)控維護(hù),基礎(chǔ)設(shè)置等。用戶管理模塊:該模塊的主要功能是實(shí)現(xiàn)對用戶的管理工作,包括用戶的注冊,登陸以及用戶的修改刪除功能。用戶在注冊時(shí),利用ajax實(shí)現(xiàn)了在本頁面內(nèi)的刷新,來判斷用戶是否已經(jīng)存在,并用session保存用戶的信息。路況查詢模塊:該模塊的主要是利用百度地圖API完成用戶可以定位具體的位置,查詢起始點(diǎn)到終止點(diǎn)的路線方案,以及放大縮小地圖。路況維護(hù)模塊:該模塊主要功能是利用SSH完成路況信息的添加,路況的搜索,以及對路況的修改和刪除操作還有定位等功能。監(jiān)控維護(hù)模塊:該模塊的主要功能是利用SSH實(shí)現(xiàn)視頻的上傳,監(jiān)控的搜索,以及對監(jiān)控的修改和刪除功能,這個(gè)模塊將具體位置的視頻錄像清晰的展示給用戶,使得用戶準(zhǔn)確的了解路況情況?;A(chǔ)設(shè)置模塊:該模塊的主要功能是利用SSH實(shí)現(xiàn)圖標(biāo)的上傳,對圖標(biāo)的列表顯示,以及圖標(biāo)的修改和刪除等功能。3.2總體設(shè)計(jì)3.2.1實(shí)時(shí)路況邏輯結(jié)構(gòu)設(shè)計(jì)該系統(tǒng)擁有管理員和普通用,邏輯結(jié)構(gòu)如圖3-1所示。登陸主頁管理員普通用戶登陸主頁管理員普通用戶用戶管理路況查詢監(jiān)控維護(hù)路況維護(hù)基礎(chǔ)設(shè)置路況查詢監(jiān)控搜索圖3-1系統(tǒng)角色權(quán)限圖3.2.2用戶登錄流程圖用戶登錄 輸入用戶名用戶登錄 輸入用戶名密碼 輸入判斷是管理員是普通用戶進(jìn)入管理員頁面進(jìn)入用戶頁面不合法重新輸入圖3-2.用戶登錄流程圖3.2.4.路況查詢流程地理定位地理定位路徑搜索輸入位置在地圖上地理定位輸入起始和終止位置單擊定位單擊搜索顯示路徑信息和方案顯示路況選擇右擊選擇起始、終止位置選擇查看的路況圖標(biāo)單擊查詢在地圖上顯示路況信息是否繼續(xù)是否結(jié)束圖3-4.路況查詢流程圖3.3系統(tǒng)詳細(xì)設(shè)計(jì)3.3.1系統(tǒng)E-R圖該實(shí)時(shí)路況系統(tǒng)中的管理員模塊涉及到4個(gè)數(shù)據(jù)表路況類型:編號,類型名稱、顯示圖標(biāo)路況信息:編號,路況類型,發(fā)生時(shí)間、預(yù)計(jì)結(jié)束時(shí)間、地點(diǎn)、經(jīng)度,緯度、路況描述、狀態(tài) 監(jiān)控信息:編號、名稱、經(jīng)度,緯度、視頻信息 用戶信息:編號、用戶名、密碼、角色類型系統(tǒng)各實(shí)體ER圖以及實(shí)體之間的聯(lián)系如下:(1)用戶ER圖用戶姓名用戶姓名密碼編號角色I(xiàn)D圖3-8.用戶實(shí)體ER圖(2)路況類型ER圖 路況類型路況類型編號路況類型顯示圖標(biāo)圖3-9.路況類型ER圖(3)路況信息ER圖路況信息路況信息編號路況類型發(fā)生時(shí)間地點(diǎn)預(yù)計(jì)結(jié)束時(shí)間經(jīng)度緯度路況描述狀態(tài)圖3-10.路況信息ER圖(4)監(jiān)控信息ER圖監(jiān)控信息經(jīng)度名稱編號緯度視頻信息圖3-11.監(jiān)控信息ER圖3.3.3數(shù)據(jù)字典本系統(tǒng)采用的后臺數(shù)據(jù)庫是Mysql數(shù)據(jù)庫系統(tǒng),本數(shù)據(jù)庫包含四張表。各表結(jié)構(gòu)分別如以下列表所示。路況類型表(tb_eventtype)表3-1.路況類型表序號字段名稱字段說明字段類型寬度允許空主鍵備注1id類型編號int10是自增12name類型名稱varchar203icon顯示圖標(biāo)varchar50(2)路況信息表(tb_event)表3-2.路況信息表序號字段名稱字段說明字段類型寬度允許空主鍵備注1id路況編號int10是自增12typeId路況類型int103start發(fā)生時(shí)間timestamp04end預(yù)計(jì)結(jié)束時(shí)間timestamp05address地點(diǎn)varchar1006Lng經(jīng)度double07lat緯度double08description路況描述varchar2009status狀態(tài)varchar2(3)監(jiān)控信息表(tb_monitor)表3-3.監(jiān)控信息表序號字段名稱字段說明字段類型寬度允許空主鍵備注1id監(jiān)控編號int10是自增12name監(jiān)控名稱varchar303video視頻信息varchar504lng經(jīng)度double5lat緯度double(3)用戶表(tb_user)表3-4.用戶表序號字段名稱字段說明字段類型寬度允許空主鍵備注1id類型編號int11是自增12name類型名稱varchar503password顯示圖標(biāo)varchar504role角色tinyint23.3.3各模塊順序圖(1)路況查詢:用戶:瀏覽器端:用戶:瀏覽器端:服務(wù)器端:數(shù)據(jù)庫地理定位輸入查詢的地理位置顯示地理定位路徑搜索輸入起始和終止位置顯示路徑信息和方案顯示路況選擇要顯示的路況數(shù)據(jù)查找返回?cái)?shù)據(jù)顯示路況信息(2)查看路況監(jiān)控:用戶:用戶:瀏覽器端:服務(wù)器端:數(shù)據(jù)庫顯示路況、監(jiān)控信息選擇要顯示的信息數(shù)據(jù)查找返回?cái)?shù)據(jù)顯示路況信息更改中心坐標(biāo)添加中心坐標(biāo)地址顯示地圖(3)管理個(gè)人信息:用戶:用戶:瀏覽器端:服務(wù)器端:數(shù)據(jù)庫查看個(gè)人信息數(shù)據(jù)查找返回?cái)?shù)據(jù)顯示個(gè)人信息修改個(gè)人信息輸入新信息顯示修改的信息數(shù)據(jù)修改返回?cái)?shù)據(jù)4.系統(tǒng)的實(shí)現(xiàn)4.1目錄結(jié)構(gòu)4.2框架配置文件4.2.1Struts的配置文件Struts.xml(1)頭部配置文件<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEstrutsPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.1//EN""/dtds/struts-2.1.dtd">(2)action配置<packagename="a"extends="struts-default"namespace="/admin"> <actionname="type*"class="TypeAction"method="{1}"> <paramname="allowTypes"> image/pjpeg,image/bmp,image/jpg,image/png,image/gif,image/jpeg </param> <paramname="savePath">upload</param> <resultname="list"type="redirectAction">typelist.action</result> <resultname="success">/admin/typeMaintenance.jsp</result> <resultname="update">/admin/updateType.jsp</result> <resultname="error">/admin/typeError.jsp</result> <interceptor-refname="defaultStack"/> </action> <actionname="monitors*"class="MonitorAction"method="{1}"> <paramname="allowTypes"> video/x-flv,audio/mpeg,video/mp4,application/ogg </param> <paramname="savePath">upload</param> <resultname="success">/admin/searchMonitor.jsp</result> <resultname="list"type="redirectAction">monitorssearch.action</result> <resultname="error">/admin/monitorError.jsp</result> <resultname="update">/admin/updateMonitor.jsp</result> </action> <actionname="road*"class="EventAction"method="{1}"> <resultname="success">/admin/searchRoad.jsp</result> <resultname="list"type="redirectAction">roadlist.action</result> <resultname="error">/admin/roadError.jsp</result> <resultname="add">/admin/addRoad.jsp</result> <resultname="update">/admin/updateRoad.jsp</result> </action> </package> <packagename="b"extends="struts-default"namespace="/"> <actionname="user*"class="UserAction"method="{1}"> <resultname="login">/login.jsp</result> <resultname="error">/regist.jsp</result> </action> </package> 上面的action中的name對應(yīng)前臺傳遞的名稱,class對應(yīng)spring配置文件中的定義的類名。Result表示后臺執(zhí)行完后,需要跳轉(zhuǎn)到哪個(gè)頁面。4.2.2Spring+Hibernate的配置文件(1)頭部配置文件<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="/schema/beans" xmlns:xsi="/2001/XMLSchema-instance"xmlns:p="/schema/p" xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-3.0.xsd">(2)配置數(shù)據(jù)庫<beanid="dataSource"class="mons.dbcp.BasicDataSource"> <propertyname="driverClassName"value="com.mysql.jdbc.Driver"> </property> <propertyname="url"value="jdbc:mysql://localhost:3306/db_tmc"> </property> <propertyname="username"value="root"></property> <propertyname="password"value="root"></property> </bean>(3)配置數(shù)據(jù)源,hibernate屬性設(shè)置<beanid="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <propertyname="dataSource"> <refbean="dataSource"/> </property> <propertyname="hibernateProperties"> <props> <propkey="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> </props> </property> <propertyname="mappingResources"> <list> <value>com/tmc/dao/TbEvent.hbm.xml</value> <value>com/tmc/dao/TbEventtype.hbm.xml</value> <value>com/tmc/dao/TbMonitor.hbm.xml</value> <value>com/tmc/dao/TbUser.hbm.xml</value> </list> </property> </bean>(4)DAO依賴注入 <beanid="TbUserDAO"class="com.tmc.dao.TbUserDAO"> <propertyname="sessionFactory"> <refbean="sessionFactory"/> </property> </bean>(5)業(yè)務(wù)邏輯依賴注入 <beanid="UserBiz"class=".UserBiz"> <propertyname="uDao"ref="TbUserDAO"></property> </bean> <beanid="UserAction"class="com.tmc.action.UserAction"> <propertyname="uBiz"ref="UserBiz"></property> </bean>4.3系統(tǒng)權(quán)限管理 本系統(tǒng)的權(quán)限設(shè)置是由過濾器實(shí)現(xiàn)的,主要實(shí)現(xiàn)了非用戶登錄不能登錄入頁面內(nèi)查看信息,必須注冊,管理員進(jìn)入管理員界面,普通用戶進(jìn)入普通用戶界面。實(shí)現(xiàn)的主要的代碼如下:在web里面過濾器的設(shè)置 <filter> <filter-name>login</filter-name> <filter-class>com.tmc.action.LoginServlet</filter-class> </filter> <filter-mapping> <filter-name>login</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping> <filter-mapping> <filter-name>login</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping><filter>后臺LoginServlet的書寫:publicvoiddoFilter(ServletRequestarg0,ServletResponsearg1, FilterChainarg2)throwsIOException,ServletException{ HttpServletRequestreq=(HttpServletRequest)arg0; HttpServletResponseresp=(HttpServletResponse)arg1; HttpSessionsession=req.getSession(); Stringurl=req.getRequestURI(); System.out.println("===="+req.getRequestURI()); if(session.getAttribute("name")==null){ if(url!=null&&!url.equals("/tmc/") &&(url.indexOf("usercheck")<0&&url.indexOf("login")<0&&url.indexOf("error")<0&&url.indexOf("regist")<0&&url.indexOf("userreg")<0)){ resp.sendRedirect("/tmc/error.jsp"); return; } } arg2.doFilter(arg0,arg1); return; //TODOAuto-generatedmethodstub }4.4用戶管理4.4.1用戶登錄本系統(tǒng)有兩種角色,一種是管理員,另一個(gè)是用戶,這兩個(gè)角色又用戶表中的字段role區(qū)分,role為1的是管理員,role為0的是用戶。當(dāng)用戶登錄時(shí),會使用ajax來判斷該用戶是否存在,如果存在,則進(jìn)入對應(yīng)的角色頁面,如果不存在則請用戶注冊登陸界面如下圖4-1所示:圖4-1.登陸界面登錄頁面主要使用html5完成的,可以減少很多js的驗(yàn)證代碼,顯示效果也比較美觀,前臺實(shí)現(xiàn)的代碼如下:<divid="container"> <br> <br> <br> <divclass="label"> 實(shí)時(shí)路況系統(tǒng)登錄頁 </div> <br> <br> <divid="twitter-outer"> <divid="twitter-logo"> <imgsrc="image/3.jpg"height="150"width="595"> <divclass="content-bubble-arrow"></div> </div> <divid="twitter"> <formaction="/index.jsp"method="post"name="form1"> <divid='name'class='outerDiv'> <labelfor="name"> 姓名: </label> <%Stringname=""; if(session.getAttribute("name")!=null){ name=(String)session.getAttribute("name"); } %> <inputtype="text"name="name"requiredvalue="<%=name%>"/><spanid="msg"style="color:red;"></span> <divclass='message'id='nameDiv'> 請輸入姓名. </div> </div> <divclass='clearfix'></div> <divid='username'class='outerDiv'> <labelfor="number"> 密碼: </label> <inputtype="password"name="password"required/> <divclass='message'id='usernameDiv'> 請輸入密碼. </div> </div> <divclass='clearfix'></div> <divid='submit'class='outerDiv'> <tr> <td> <inputtype="button"value="登錄"onclick="check()"/> </td> <td> <inputtype="button"value="注冊" onclick="window.location.href=('regist.jsp')"/> </td> </tr> </div> <divclass='clearfix'></div> </form> <divclass="clearfix"></div> </div> </div> <br> <div style="margin-top:15px;color:rgb(85,85,85);text-align:center;"></div> </div>使用ajax判斷,數(shù)據(jù)庫是否存在該用戶的代碼如下: functionsend_request(url){//初始化、指定處理函數(shù)、發(fā)送請求的函數(shù) http_request=false; //開始初始化XMLHttpRequest對象 if(window.XMLHttpRequest){//Mozilla瀏覽器 http_request=newXMLHttpRequest(); if(http_request.overrideMimeType){//設(shè)置MiME類別 http_request.overrideMimeType("text/xml"); } }elseif(window.ActiveXObject){//IE瀏覽器 try{ http_request=newActiveXObject("Msxml2.XMLHTTP"); }catch(e){ try{ http_request=newActiveXObject("Microsoft.XMLHTTP"); }catch(e){} } } if(!http_request){//異常,創(chuàng)建對象實(shí)例失敗 window.alert("不能創(chuàng)建XMLHttpRequest對象實(shí)例."); returnfalse; } http_request.onreadystatechange=processRequest; //確定發(fā)送請求的方式和URL以及是否同步執(zhí)行下段代碼 http_request.open("POST",url,true); http_request.send(); }; functionprocessRequest(){ if(http_request.readyState==4){//判斷對象狀態(tài) alert(http_request.status); if(http_request.status==200){//信息已經(jīng)成功返回,開始處理信息 varresult=http_request.responseText; if(result.indexOf('1')>=0){ window.location.href="admin/index.jsp";//進(jìn)入管理員首頁 }elseif(result.indexOf('0')>=0){ window.location.href="user/index.jsp";//進(jìn)入用戶首頁 }else{ document.getElementById("msg").innerHTML="用戶名、密碼不匹配"; //后臺不存在該用戶,將錯(cuò)誤信息返回給前臺 } }else{//頁面不正常 alert("您所請求的頁面有異常。"); } } }; functioncheck(){ document.getElementById("msg").innerHTML=""; varname=document.getElementsByName("name")[0].value; varpass=document.getElementsByName("password")[0].value; send_request("userreg.action?name="+name+"&pass="+pass); }4.3.2用戶注冊圖4-2.用戶注冊用戶注冊時(shí),輸入完姓名,離開輸入框時(shí),將會利用ajax判斷該用戶是否存在,如果存在,就會將顯示“用戶名已經(jīng)存在,請重新輸入”該提示信息,讓用戶重新輸入。該注冊頁面也是通過html5完成,自動實(shí)現(xiàn)信息的校驗(yàn)。前臺代碼如下:<divid="container"> <br><br><br> <divclass="label">實(shí)時(shí)路況系統(tǒng)注冊頁</div> <br><br> <divid="twitter-outer"> <divid="twitter-logo"> <divclass="content-bubble-arrow"></div> </div> <divid="twitter"> <formaction="useradd"method="post"> <divid='name'class='outerDiv'> <labelfor="name">姓名:</label> <inputtype="text"id="name"name="name"requiredonblur="checkUserName()"/> <divclass='message'id='nameDiv'>請?zhí)砑有彰?</div> <spanid="msg"style="color:red;"></SPAN> </div> <divclass='clearfix'></div> <divid='username'class='outerDiv'> <labelfor="number">密碼:</label> <inputtype="password"name="password"required/> <divclass='message'id='usernameDiv'>請輸入密碼.</div> </div> <divclass='clearfix'></div> <divid='password'class='outerDiv'> <labelfor="password">重復(fù)密碼:</label> <inputtype="rpassword"name="rpassword"required/> <divclass='message'id='websiteDiv'>請重復(fù)密碼.</div> </div> <divclass='clearfix'></div> <divid='email'class='outerDiv'> <labelfor="email">Email:</label> <inputtype="email"name="email"required/> <divclass='message'id='emailDiv'>請輸入聯(lián)系方式(郵箱).</div> </div> <divclass='clearfix'></div> <divid='submit'class='outerDiv'> <inputtype="submit"value="注冊"/> </div> <divclass='clearfix'></div> </form> <divclass="clearfix"></div> </div> </div> <br></div>4.3.1用戶列表 圖4-3.用戶列表 管理員通過列表關(guān)系用戶的信息。該功能的前臺代碼如下:<tableborder="1"id="tableid"> <trstyle="background-color:#79B539;"> <thwidth="40"> 編號 </th> <thwidth="200"> 用戶名 </th> <thwidth="70"> 密碼 </th> <thwidth="40"> 更改 </th> <thwidth="40"> 刪除 </th> </tr> <s:iteratorid="u"value="#request.res"> <tr> <tdwidth="40"> <s:propertyvalue="id"/> </td> <tdwidth="200"> <s:propertyvalue="name"/> </td> <tdwidth="70"> <s:propertyvalue="password"/> </td> <tdwidth="40"> <ahref="userfindById?id=<s:propertyvalue="id"/>">更改</a> </td> <tdwidth="40"> <ahref="#"onclick="del(<s:propertyvalue="id"/>)">刪除 </a> </td> </tr> </s:iterator></table>該功能的后臺action層,biz層,dao層代碼如下:Action層:publicStringlist(){ request=ServletActionContext.getRequest(); List<TbUser>list=newArrayList<TbUser>(); list=uBiz.searchAll(); request.setAttribute("res",list);//把集合保存的request請求里面; if(list.size()>0) System.out.println("havaresults"); returnSUCCESS;}Biz層:publicList<TbUser>searchAll(){ returnuDao.findAll();}Dao層:publicList<TbUser>findAll(){ log.debug("findingallTbUserinstances"); try{ StringqueryString="fromTbUser"; returngetHibernateTemplate().find(queryString); }catch(RuntimeExceptionre){ log.error("findallfailed",re); throwre; }}4.3.1用戶信息修改 圖4-12.用戶信息的修改頁面對于用戶信息的修改,管理員可以所有人的信息進(jìn)行操作,而普通用戶只能修改自己的個(gè)人信息。實(shí)現(xiàn)的前臺代碼如下:<formaction="userupdate"method="post"> <s:iteratorid="u"value="#session.u"> <inputtype="hidden"name="id"value="<s:propertyvalue='id'/>"> <labelfor="name">姓名:</label> <inputtype="text"id="name"name="name"required onblur="checkUserName()"value="<s:propertyvalue='name'/>"/> <spanid="msg"style="color:red;"></SPAN> <divclass='clearfix'></div> <br/> <br/> <divid='username'class='outerDiv'> <labelfor="number">密碼:</label><inputtype="password"name="password"requiredvalue="<s:propertyvalue='password'/>"/> </div> <divclass='clearfix'></div> <br/> <br/> <br/> <br/> <divid='submit'class='outerDiv'> <inputtype="submit"value="修改"/><inputtype="button"value="返回"onclick="document.location.href='userList'"/> </div> <divclass='clearfix'></div> </s:iterator></form>后臺實(shí)現(xiàn)的主要代碼如下:publicStringupdate(){ try{ request=ServletActionContext.getRequest(); Stringname=request.getParameter("name"); intid=Integer.parseInt(request.getParameter("id")); Stringpass=request.getParameter("password"); TbUseru=uBiz.findById(id); u.setName(name); u.setPassword(pass); uBiz.update(u); return"list"; }catch(Exceptione){ returnERROR; } }4.5路況信息顯示 路況類型使用checkbox的顯示問題,先將數(shù)據(jù)存儲在session里面,在前臺顯示具體的代碼如下:顯示信息: <s:iteratorid="type"value="#session.type">

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論