最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

jsp碼頭船只出行及配套貨柜碼放管理系統(tǒng)(任務(wù)書+開題報(bào)告+論文)

2023-01-05 22:31 作者:ChatGPT云炬學(xué)長(zhǎng)  | 我要投稿

畢業(yè)設(shè)計(jì)任務(wù)書

學(xué) 院:軟件學(xué)院專 業(yè):班 級(jí):學(xué)號(hào):學(xué) 生 姓 名:設(shè)計(jì)題目:碼頭船只出行及配套貨柜碼放管理系統(tǒng)起 迄 日 期:設(shè)計(jì)地點(diǎn):指 導(dǎo) 教 師:負(fù) 責(zé) 人:

發(fā)任務(wù)書日期: 2014年 1 月 9 日

任務(wù)書填寫要求

1.畢業(yè)設(shè)計(jì)任務(wù)書由指導(dǎo)教師根據(jù)各課題的具體情況填寫,經(jīng)學(xué)生所在學(xué)院的負(fù)責(zé)人審查、負(fù)責(zé)人簽字后生效。此任務(wù)書應(yīng)在畢業(yè)設(shè)計(jì)開始前一周內(nèi)填好并發(fā)給學(xué)生;

2.任務(wù)書內(nèi)容必須用黑墨水筆工整書寫或按教務(wù)處統(tǒng)一設(shè)計(jì)的電子文檔標(biāo)準(zhǔn)格式(可從教務(wù)處網(wǎng)頁上下載)打印,不得隨便涂改或潦草書寫,禁止打印在其它紙上后剪貼;

3.任務(wù)書內(nèi)填寫的內(nèi)容,必須和學(xué)生畢業(yè)設(shè)計(jì)完成的情況相一致,若有變更,應(yīng)當(dāng)經(jīng)過所在專業(yè)及學(xué)院領(lǐng)導(dǎo)審批后方可重新填寫;

4.任務(wù)書內(nèi)有關(guān)“學(xué)院”、“專業(yè)”等名稱的填寫,應(yīng)寫中文全稱,不能寫數(shù)字代碼。學(xué)生的“學(xué)號(hào)”要寫全號(hào)(如0201140102,為10位數(shù)),不能只寫最后2位或1位數(shù)字;

5.有關(guān)年月日等日期的填寫,應(yīng)當(dāng)按照國(guó)標(biāo)GB/T 7408—94《數(shù)據(jù)元和交換格式、信息交換、日期和時(shí)間表示法》規(guī)定的要求,一律用阿拉伯?dāng)?shù)字書寫。如“2004年3月15日”或“2004-03-15”。

6.紅色字體部分日期等內(nèi)容不可修改,其他時(shí)間節(jié)點(diǎn)日期指導(dǎo)老師可以調(diào)整

畢 業(yè) 設(shè) 計(jì) 任 務(wù) 書

1.畢業(yè)設(shè)計(jì)課題的任務(wù)和要求:碼頭船只出行及配套貨柜碼放管理系統(tǒng)開發(fā)的任務(wù):結(jié)合實(shí)際調(diào)研,總結(jié)分析,整理需求,利用MyEclipse和學(xué)過的數(shù)據(jù)庫(kù)知識(shí),完成一個(gè)碼頭船只出行及配套貨柜碼放管理系統(tǒng)的設(shè)計(jì),要求整個(gè)系統(tǒng)實(shí)現(xiàn)船只模塊、貨柜模塊、路線模塊、權(quán)限模塊、船只與貨柜模塊、船只與路線模塊六個(gè)模塊。2.畢業(yè)設(shè)計(jì)課題的具體工作內(nèi)容(包括原始數(shù)據(jù)、技術(shù)要求、工作要求等):(1)學(xué)習(xí)掌握數(shù)據(jù)庫(kù)及編程相關(guān)的基本知識(shí)。(2)收集、調(diào)研,了解與碼頭信息管理系統(tǒng)相關(guān)的研究與應(yīng)用情況,完成開題報(bào)告。(3)檢索相關(guān)文獻(xiàn)資料,翻譯有關(guān)基于Java web系統(tǒng)開發(fā)的2000單詞以上英文資料一篇。(4)對(duì)系統(tǒng)進(jìn)行需求分析與系統(tǒng)設(shè)計(jì),提出總體設(shè)計(jì)方案。(5)按以上設(shè)計(jì)功能要求完成軟件開發(fā)工作。建議應(yīng)用軟件工程思想進(jìn)行本系統(tǒng)的功能模塊設(shè)計(jì),對(duì)不同權(quán)限應(yīng)該有不同的功能和特殊的限制。數(shù)據(jù)庫(kù)的設(shè)計(jì)要合理,要考慮與各個(gè)模塊的兼容情況。(6)進(jìn)行軟件聯(lián)調(diào)、測(cè)試、完善該軟件系統(tǒng)。(7)完成軟件系統(tǒng)的設(shè)計(jì)說明書的寫作與編輯工作。

畢 業(yè) 設(shè) 計(jì) 任 務(wù) 書

3.對(duì)畢業(yè)設(shè)計(jì)課題成果的要求〔包括畢業(yè)設(shè)計(jì)、圖紙、實(shí)物樣品等):畢業(yè)設(shè)計(jì)說明書外文翻譯完整的軟件4.畢業(yè)設(shè)計(jì)課題工作進(jìn)度計(jì)劃:起 迄 日 期工 作 內(nèi) 容2014年 1月 09 日 ~ 2月28日 3月 01 日 ~ 3月15日3月 16日 ~ 4月30日5月 01日 ~ 5月31日6月 01日 ~ 6月17日 6月 18日 ~ 6月21日查閱相關(guān)資料,完成開題報(bào)告。系統(tǒng)需求分析。系統(tǒng)設(shè)計(jì),編碼、單元測(cè)試。系統(tǒng)聯(lián)調(diào),測(cè)試,功能修改與完善。完成設(shè)計(jì)說明書,準(zhǔn)備答辯材料。畢業(yè)設(shè)計(jì)答辯學(xué)生所在學(xué)院審查意見:負(fù)責(zé)人: 2014 年 1 月 9 日

畢業(yè)設(shè)計(jì)開題報(bào)告

班 級(jí):學(xué) 號(hào):姓 名:學(xué) 院:軟件學(xué)院專 業(yè):設(shè) 計(jì) 題 目:碼頭船只出行及配套貨柜碼放管理系統(tǒng)指導(dǎo)教師:

?業(yè)?設(shè)?計(jì)???報(bào)?

1.結(jié)合畢業(yè)設(shè)計(jì)課題情況,根據(jù)所查閱的文獻(xiàn)資料,撰寫2000字左右的文獻(xiàn)綜述:文 獻(xiàn) 綜 述一、本課題的研究背景及意義21世紀(jì)是一個(gè)全新的世紀(jì),全世界的碼頭都將面對(duì)全新的問題,面臨新的挑戰(zhàn)。全球化大潮的涌動(dòng),催促著一種新的國(guó)際體制的加速形成。國(guó)際貿(mào)易碼頭之間的合作與競(jìng)爭(zhēng)將更加頻繁和激烈。以信息技術(shù)為代表的新技術(shù)革命迅猛發(fā)展,高集成度、智能化,光纖化、數(shù)字化、綜合化、網(wǎng)絡(luò)化,為船運(yùn)和碼頭業(yè)提供了更為廣闊發(fā)展空間;國(guó)際經(jīng)濟(jì)結(jié)構(gòu)的調(diào)整,經(jīng)濟(jì)全球化的加速,必將促進(jìn)港口間國(guó)際貿(mào)易的發(fā)展與運(yùn)量的增長(zhǎng)[1]。隨著計(jì)算機(jī)管理技術(shù)高速發(fā)展,各個(gè)領(lǐng)域都應(yīng)用在計(jì)算機(jī)對(duì)相關(guān)信息進(jìn)行管理。本系統(tǒng)是一個(gè)復(fù)雜而且涉及內(nèi)容眾多的系統(tǒng),碼頭船只出行及配套貨柜碼放管理系統(tǒng)是碼頭管理系統(tǒng)中一個(gè)比較重要的部分。為了碼頭管理工作節(jié)省不必要的人力物力資源,迫切需要較好的碼頭船只出行及配套貨柜碼放管理系統(tǒng)軟件來提高工作效率和信息的準(zhǔn)確率,以降低經(jīng)濟(jì)成本。利用計(jì)算機(jī)、網(wǎng)絡(luò)、計(jì)算機(jī)應(yīng)用軟件等現(xiàn)代科技和手段,加強(qiáng)和改進(jìn)碼頭管理工作,可以降低管理工作的成本,減輕工作強(qiáng)度,提高工作效率??萍嫉陌l(fā)展就是要為生產(chǎn)服務(wù),有了碼頭船只出行及配套貨柜碼放管理系統(tǒng)一定會(huì)為碼頭工作帶來便捷。二、本課題國(guó)內(nèi)外研究現(xiàn)狀1.國(guó)外主要現(xiàn)狀 1.1 世界港口發(fā)展的重心正在加快向中國(guó)轉(zhuǎn)移 二戰(zhàn)過后,世界港口發(fā)展日新月異。隨著世界經(jīng)濟(jì)的變化更迭,傳統(tǒng)的大港地位發(fā)生變動(dòng),新的優(yōu)勢(shì)港口不斷涌現(xiàn)[2]。 20世紀(jì)90年代以來,世界港口業(yè)最大的變化莫過于其發(fā)展重心已經(jīng)向亞洲,特別是中國(guó)轉(zhuǎn)移,而且轉(zhuǎn)移的速度正在加快。全世界有許多著名的海港。據(jù)有資料,目前全世界有億噸港20個(gè);最大的是新加坡港,2000年貨物吞吐量達(dá)3.3億噸;貨物吞吐量居前20位的港口中,中國(guó)占9個(gè)(上海、寧波、廣州、天津、青島、秦皇島、大連和香港、高雄),美國(guó)占4個(gè),日本占3個(gè),歐洲占2個(gè),韓國(guó)占2個(gè)。按集裝箱吞吐量,最大的港口是香港,2002年吞吐量達(dá)1900萬標(biāo)準(zhǔn)箱;排名居前10位的港口中,中國(guó)占4個(gè)(香港、上海、高雄、深圳),歐洲占3個(gè),新加坡、韓國(guó)、美國(guó)各占1個(gè)。按照最新統(tǒng)計(jì),2003年上海港貨物吞吐量籽超過3億噸,集裝箱吐量將達(dá)到1120萬TEU左右,肯定超過韓國(guó)釜山港位居世界集裝箱港口第三位。深深圳港將跨人億噸大港行列,集裝箱吞吐量也可突破1000萬TEU達(dá)1050萬TEU,居世界集裝箱港口第四位,由此,世界排名居前4位的港口中,中國(guó)就占3個(gè),優(yōu)勢(shì)已經(jīng)十分明顯。我國(guó)已是世界名副其實(shí)的港口大國(guó)。目前,中國(guó)大陸已擁有1467個(gè)港口,其中沿海港口165個(gè);對(duì)外開放口岸134個(gè)[3]。 1.2 港口的科技含量越來越高 近年來,隨著科技進(jìn)步步伐的加快,為港口大型化、裝卸作業(yè)高速化創(chuàng)造了條件,港口科技含量越來越高,碼頭作業(yè)全過程由電子設(shè)備、計(jì)算機(jī)系統(tǒng)指揮和監(jiān)控。特別是集裝箱裝卸設(shè)備發(fā)生了一系列變化,岸橋、場(chǎng)橋的起重量,起升高度,外伸距,速度參數(shù)等均El益增大,也向大型高速高效方向發(fā)展。由于競(jìng)爭(zhēng)異常激烈,注入新的高科技內(nèi)容以提高集裝箱機(jī)械的生產(chǎn)率是各港口經(jīng)營(yíng)者和港機(jī)供貨商采取的措施和不斷追求的目標(biāo)[4]。 自20世紀(jì)70年代初新加坡港修建了該地區(qū)第1個(gè)集裝箱碼頭以來,PSA(新加坡港務(wù)局)就不斷引進(jìn)新的程序系統(tǒng)提高碼頭操作效率,完善服務(wù)標(biāo)準(zhǔn),一步到位滿足客戶的需求。過去的幾年中,PSA在其技術(shù)上的投資已經(jīng)產(chǎn)生出新的產(chǎn)品與服務(wù),使客戶擁有更大的靈活性,節(jié)省了時(shí)間與成本。這些創(chuàng)新包括無人駕駛吊車、自動(dòng)門衛(wèi)申報(bào)系統(tǒng)以及無紙化裝卸單證系統(tǒng)[5]。2.國(guó)內(nèi)主要現(xiàn)狀我國(guó)港口經(jīng)過60年的發(fā)展,成績(jī)顯著,港口基礎(chǔ)設(shè)施規(guī)模擴(kuò)大,生產(chǎn)能力增強(qiáng),港口的服務(wù)能力和水平明顯提高。近年來,伴隨我國(guó)經(jīng)濟(jì)的快速發(fā)展,港口發(fā)展速度和建設(shè)腳步加快,港口密度驟然增大。在“十一五”期間,中國(guó)經(jīng)濟(jì)尤其是對(duì)外貿(mào)易發(fā)展對(duì)運(yùn)輸?shù)男枨蟛粩嘣黾?,直接推?dòng)中國(guó)港口建設(shè)投資的增長(zhǎng),為港口擴(kuò)張?zhí)峁﹦?dòng)力[6]。中國(guó)傳統(tǒng)的港口[7],大都是綜合性的接卸碼頭,沒有具體的碼頭裝卸分工。改革開放以后,特別是加入WTO以后,傳統(tǒng)港口格局隨著國(guó)內(nèi)和國(guó)際兩種資源和兩種市場(chǎng)的雙向選擇而發(fā)生了歷史性的變化,逐漸由港口的綜合運(yùn)用而出現(xiàn)明確的分工[7]。 20世紀(jì)80年代以后至今。世界經(jīng)濟(jì)發(fā)展的背景是計(jì)算機(jī)、通訊、網(wǎng)絡(luò)現(xiàn)代高科技產(chǎn)業(yè),其在發(fā)達(dá)國(guó)家的國(guó)民經(jīng)濟(jì)中取得了主導(dǎo)地位,它要求運(yùn)輸體系適應(yīng)運(yùn)程的需要,主要貨物表現(xiàn)在集裝箱運(yùn)輸量增長(zhǎng),散貨、液體貨物呈負(fù)增長(zhǎng)[8]。三、本課題相關(guān)理論綜述碼頭是海邊、江河邊專供乘客上下、貨物裝卸的建筑物。通常見于水陸交通發(fā)達(dá)的商業(yè)城市。人類利用碼頭,作為渡輪泊岸上落乘客及貨物之用,其次還可能是吸引游人,及約會(huì)集合的地標(biāo)。在碼頭周邊常見的建筑或設(shè)施有郵輪、渡輪、貨柜船、倉(cāng)庫(kù)、海關(guān)、浮橋、海鷗、魚市場(chǎng)、海濱長(zhǎng)廊、車站、餐廳、或者商場(chǎng)等[9]。JSP是基于Java Servlet以及整個(gè)java體系的web開發(fā)技術(shù),作為J2EE體系中的重要一環(huán),JSP為創(chuàng)建高度動(dòng)態(tài)的web應(yīng)用提供了一個(gè)獨(dú)特的開發(fā)環(huán)境。JSP能夠適應(yīng)市場(chǎng)上包括Apache WebServer、IIS4.0在內(nèi)的大部分服務(wù)器產(chǎn)品,可以適應(yīng)絕大多數(shù)的事務(wù)處理,同時(shí)JSP代碼經(jīng)過服務(wù)器的解釋執(zhí)行后會(huì)直接嵌入到HTML語言中,這樣就簡(jiǎn)化了頁面的輸出,也保留了腳本語言易于使用的優(yōu)點(diǎn)[10]。 JDBC是用于執(zhí)行SQL語句的java應(yīng)用程序的接口,由一組用java語言編寫的類與接口組成,在JSP中將使用JDBC來訪問數(shù)據(jù)庫(kù)。JDBC是一種規(guī)范,它讓個(gè)數(shù)據(jù)庫(kù)廠商為java程序員提供標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)訪問類和接口,一般的java開發(fā)工具都帶有JDBC-ODBC橋驅(qū)動(dòng)程序。這樣,只要是能夠使用ODBC訪問的數(shù)據(jù)庫(kù)系統(tǒng),也就能夠使用JDBC訪問了[11]。 Struts2采用MVC模式[12],能夠很好的幫助java開發(fā)者利用J2EE開發(fā)web應(yīng)用。將MVC模式“分離顯示邏輯和業(yè)務(wù)邏輯”的能力發(fā)揮的淋漓盡致。Struts2的核心是一個(gè)彈性的控制層,基于如Java Servlets、JavaBean與XML等標(biāo)準(zhǔn)技術(shù),Struts有一組相互協(xié)作的類(組件)Servlet以及Jsp、tag、lib組成?;赟truts2架構(gòu)的web應(yīng)用程序基本上符合JSP Model2的設(shè)計(jì)標(biāo)準(zhǔn)。 Hibernate是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得java程序員能夠非常隨心所欲的使用對(duì)象編程的思想進(jìn)行數(shù)據(jù)庫(kù)的操作。Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合,既可以在java的客戶端程序使用,也可以在Servlet/JSP的web應(yīng)用中使用,完成數(shù)據(jù)庫(kù)持久化使用的重任[13]。 MySQL[14]是一個(gè)小型的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),目前MySQL被非常廣泛的應(yīng)用在Internet上的中小型網(wǎng)站上。由于其資源小、速度快,總體擁有成本低,尤其是開放源代碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有的成本而選擇了MySQL作為數(shù)據(jù)庫(kù)。 JavaScript是一種由NetSccape的LiveScript發(fā)展而來的面向?qū)ο蟮目蛻舳四_本語言,主要目的是為了解決服務(wù)器端語言,為客戶提供更加流暢的瀏覽效果。當(dāng)服務(wù)端需要對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證時(shí),由于網(wǎng)絡(luò)速度相當(dāng)緩慢時(shí),驗(yàn)證步驟浪費(fèi)的時(shí)間太多,于是NetSccape的瀏覽器Navigator加入JavaScript,提供了數(shù)據(jù)驗(yàn)證的基本功能[15]。四、作者的觀點(diǎn)和主要思路經(jīng)過調(diào)研分析得知碼頭船只出行及配套貨柜碼放管理系統(tǒng)應(yīng)該有的功能如下:本系統(tǒng)初步擬定以下兩大個(gè)模塊——船只管理和配套貨柜碼放管理。1.船只模塊該模塊實(shí)現(xiàn)對(duì)船只的管理。2.貨柜模塊該模塊實(shí)現(xiàn)對(duì)貨柜的管理。3.權(quán)限模塊該模塊實(shí)現(xiàn)對(duì)系統(tǒng)使用人員的權(quán)限管理。4.船只與貨柜模塊該模塊實(shí)現(xiàn)對(duì)船只與貨柜對(duì)應(yīng)關(guān)系的管理。參考文獻(xiàn):[1] 魯懿春 新加坡港在港口操作中的創(chuàng)新[J].集裝箱化,2004 .[2] 湯承林,楊玉東.SQL Server 數(shù)據(jù)庫(kù)實(shí)例教程[M].北京大學(xué)出版社,2010. [3] 李剛.《輕量級(jí)Java EE 企業(yè)應(yīng)用實(shí)戰(zhàn)-Struts2+Spring+Hibernate整合開發(fā)》[M](第三版).北京:電子工業(yè)出版社,2012.47 [4] 朱喜福,戴舒樽,王曉勇.Java 網(wǎng)絡(luò)編程基礎(chǔ)(第 2 版)[M].人民郵電出版社,2008. [5] 侯炳輝等.計(jì)算機(jī)信息管理專業(yè)(本科)畢業(yè)設(shè)計(jì)案例摘選[M].北京:清華大學(xué)出版社,2002.[6] 周游,趙炎主編. 網(wǎng)絡(luò)市場(chǎng)營(yíng)銷.第一版.[M]. 北京:中國(guó)物資出版社,2005.[7] 任遠(yuǎn). 基于 Web 的網(wǎng)上購(gòu)物系統(tǒng)[D]. 電子科技大學(xué), 2009. [8] 劉文全. 基于 Java 的學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)[J]. 吉林大學(xué)學(xué)報(bào), 2010. [9] 任雪蓮. B2C 電子商務(wù)網(wǎng)站的設(shè)計(jì)與構(gòu)建[J].商場(chǎng)現(xiàn)代化, 2009.[10] 余浩東.《J2EE應(yīng)用框架設(shè)計(jì)與項(xiàng)目開發(fā)》[M].北京:清華大學(xué)出版社,2008.2[11] 鄔繼成.《J2EE開源編程精要15講:整合Eclipse、Struts、Hibernate和Spring的Java Web開發(fā)》[M].北京:電子工業(yè)出版社,2008.1[12] 耿祥義,張躍平.《JSP實(shí)用教程》[M](第二版).北京:清華大學(xué)出版社,2007.10[13] 鐘德源,林國(guó),程志艷.《JSP實(shí)用簡(jiǎn)明教程》[M](第二版).北京:清華大學(xué)出版社,2009.20[14] 劉世峰.<<數(shù)據(jù)庫(kù)基礎(chǔ)與應(yīng)用>>.中央廣播電視大學(xué)出版社,2004.[15] 王紅. Java Web 應(yīng)用開發(fā)技術(shù)實(shí)用教程[M].北京.水利水電出版社,2008.

畢業(yè)設(shè)計(jì)?開 題 報(bào) 告

2.本課題要研究或解決的問題和擬采用的研究手段(途徑):一、本課題要研究或解決的問題數(shù)據(jù)庫(kù)設(shè)計(jì)是項(xiàng)目開發(fā)和系統(tǒng)設(shè)計(jì)中非常重要的一個(gè)環(huán)節(jié),是因?yàn)閿?shù)據(jù)庫(kù)設(shè)計(jì)就像建設(shè)高樓大廈的根基一樣,如果設(shè)計(jì)不好,在后來的系統(tǒng)維護(hù)、變更和功能擴(kuò)充時(shí),甚至在系統(tǒng)開發(fā)過程中都會(huì)引起比較大的問題。碼頭船只出行及配套貨柜碼放管理系統(tǒng)的用戶安全性,要設(shè)置管理工作人員登錄密碼保持網(wǎng)絡(luò)環(huán)境的安全,進(jìn)而維護(hù)好系統(tǒng)的安全性。對(duì)于自己的網(wǎng)絡(luò)編程技術(shù),盡可能多的去學(xué)習(xí)一些新的語言,拓寬網(wǎng)絡(luò)編程技術(shù),拓寬視野。碼頭船只出行及配套貨柜碼放管理系統(tǒng)采用B/S架構(gòu),用戶登錄直接可以查看碼頭的現(xiàn)狀,從而起到系統(tǒng)應(yīng)有的作用。 系統(tǒng)業(yè)務(wù)流程是一個(gè)難點(diǎn),所以我們要盡可能多的去了解碼頭船只出行及配套貨柜碼放管理的具體業(yè)務(wù)流程,從實(shí)踐中發(fā)現(xiàn)問題、解決問題,提高自己系統(tǒng)的可用性、實(shí)用性等等。二、擬采用的研究手段本系統(tǒng)要實(shí)現(xiàn)碼頭船只出行及配套貨柜碼放管理系統(tǒng)所需要的基本功能,并采用MVC三層架構(gòu)開發(fā)模式,即Struts+Spring+Hibernate三層架構(gòu),這些組件可以進(jìn)行交互和重用;數(shù)據(jù)庫(kù)連接池的統(tǒng)一管理,如果程序需要連接,則從此池中取出一個(gè)連接使用,使用完后又返回給該池,這些連接可以互用,從而提高的效率。另外,在構(gòu)建開發(fā)環(huán)境的時(shí)候,我們使用MySQL+Tomcat+MyEclipse,由于這三者的結(jié)合已經(jīng)相當(dāng)優(yōu)越,并且MySQL是一個(gè)免費(fèi)的開源數(shù)據(jù)庫(kù),Tomcat是一個(gè)免費(fèi)開源的Web服務(wù)器,MyEclipse是一個(gè)免費(fèi)開源的Java集成開發(fā)工具。在開發(fā)模式與開發(fā)環(huán)境都架構(gòu)好之后就可著手進(jìn)行系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)與系統(tǒng)原型的構(gòu)建,這些工作做完之后,就可在系統(tǒng)原型的基礎(chǔ)上對(duì)系統(tǒng)的各種功能模塊進(jìn)行擴(kuò)充以至完善,并最后完成此系統(tǒng)的開發(fā)交付用戶使用。

畢業(yè)設(shè)計(jì)?開 題 報(bào) 告

指導(dǎo)教師意見:指導(dǎo)教師: 2014 年 3 月 1 日所在學(xué)院審查意見: 負(fù)責(zé)人: 2014 年 3 月 2 日

畢業(yè)設(shè)計(jì)說明書

英文文獻(xiàn)及中文翻譯

學(xué)生姓名: 學(xué)號(hào):

軟件學(xué)院


學(xué) 院:

軟件工程


專 業(yè):

指導(dǎo)教師:

2014 年 6 月

Design and Application of Java Web Software Architecture Based on the SH Middleware

Ⅰ. INTRODUCTION

Java technology is currently a popular language for Web development. Java Web development model has been widely used in developing B/S software application. The development of Java Web technology is attributed to the development of Internet and Browsers.

There is a significant improvement in B/S structure based software in comparison with C/S structure based software. The client code and the server code of C/S structure based software must be stored in the client and the server, respectively. The client requests to the server, the server responses and then returns the result. It brings a lot of inconvenience for the application and the maintenance because each client must install the client code.

The client of B/S structure based software is Browser. The client code and the server code are stored in Web containers (Web server). The user sends a request to the server by the client Browser, the client code is downloaded to the client computer and runs in the Browser. It no longer requires the client computer to install the client code, which is different from C/S structure based software. Thus, not only the working capacity of system maintenance on the client computer is significantly simplified, but also the operation for the user is simple and consistent.

B/S structure based software on Java Web has been constantly improved. Model1 (JSP+JavaBean) and Model2 (JSP+JavaBean+Servlet) have been developed sequentially. The latter realized the MVC model (Model+View+Controller). The trend of B/S based software development becomes more and more hierarchical in structures. The objective of hierarchy is to separate the data from the program, separate the business logic from the display logic and separate the database management from the business logic. The hierarchical structure is good to the system expansion, so that the impact on the whole system caused by certain layer change can be minimized.

Presentation layer: provides user certain operation interfaces, receives the client requests, and displays the response results. It also recognizes small of amount of business logic.

Business layer: recognizes the main business logic. The business code is independent, so that there is no need to know how and where to display. In addition, it is also independent to the backend database.

Data layer: is an independent backend data resource. The data can be used by different programs. Currently, the typical data resource is the relation database.

The hierarchical Web software application has rapidly become the main stream of the Web application due to the above advantages.

Ⅱ. SH TECHNOLOGY

The author has studied the architecture and design technology of Java Web software application based on SH middleware, and applied them in developing a project.

  1. Struts

Struts2 is an open resource of presentation layer middleware in Java development platform. It recognizes the MVC pattern of presentation layer and it separates the view and control at presentation layer successfully. Struts2 consists of three parts: the core controller Filter Dispatcher, the logic controller Action and the view components. Filter Dispatcher is a Filter running in the Web application. It is responsible for intercepting all client requests, then determines which Action handles the client request through reading a configuration file “struts.xml”.

Action obtains the information, such as client request parameters and performs business processing. It also transfers the processed results to the client display components, such as JSP, FreeMarker, Velocity, and so on .

B. Hibernate

Hibernate3 is an open resource of data layer middleware in Java development platform and a mapping tool for object/relation database. It maps the entity object to a relation database very well, shields the relation database from application software, encapsulates the relation database access into the object access, and provides an unified data access interface for upper layers.

Hibernate3 not only provides the bidirectional mapping from Java class to data table, but also supplies the mechanism for data query, data alter, data repair and data recovery. Hibernate3 can be used in J2EE and J2SE application softwares in JDBC. Hibernate3 provides HQL (HibernateQuery Language), which can be used to fully access the date resources in object-oriented way.

Ⅲ.?THE SOFTWARE ARCHITECTURE BASED ON SH

The authors introduced SH (Struts2+Hibernate3) middleware during the development of their project “The Design of the System for Zhanjiang Meteorological Forecast(0910262)”. Struts2 is introduced into presentation layer and Hibernate3 into data layer.

JSP: It is the client page, using Struts2 tags and receiving the client data from POJO in the form.

Action: It is the Struts2 Action Class, its private attributes are consistent with POJO of JSP form. Action does not need to perform large amount of business process. The major amount of business process is accomplished by business layer. Action class calls the business interface methods at business layer.

Business interface: It is a facade of business layer, which defines all business methods in a module. Each module of application software should have this interface to isolate the presentation layer from the business layer. The presentation layer and the business layer are coupled through the interface, so that it can reduce the interaction between the layers and is preferred by software expansion.

Business implement: It is the implement class for business interface, implementing all kinds of business functions of the software。

DAO interface: It is the data access interface which defines all data access methods in a module. Each module of the application software should have this interface to isolate the data layer from the business layer. The business layer and the data layer are coupled through the interface. It can reduce the interaction between the layers and is preferred by software modification.

DAO implement: It is the implement class for DAO interface, which calls the methods of the Manage Hibernate class to create Hibernate Session Factory object and to achieve the CRUD (Create, Retrieve, Update, Delete) for data access.

Manage Hibernate: It is a tool class for the Hibernate management. It contacts Hibernate directly. It provides methods to initialize Hibernate and creates Hibernate SessionFactory object according to the file “hibernate.cfg.xml” and ORM mapping files. It also provides methods to create Hibernate Session object, open Session, close Session and so on. Meanwhile, in order to recover data easily, log mechanism for the data layer should be provided and can be achieved by using Hibernate3 Log4J.

Hibernate3: It is Hibernate3 framework which is used to encapsulate the database. Each Session Factory object corresponds to a database and each Session object corresponds to a database access session. The Hibernate Session objects provide all kinds of methods for database access.

Database: It is a relation database. The MySQL 5.0 that is used by author is an open resource relation database.

Ⅳ. SOME TECHNOLOGICAL PROBLEMS IN DESIGNING

For security, each request from JSP must be acted as a Action request which is received by Struts2 Filter Dispatcher in order to avoid hyperlink between pages.

Hibernate Session Factory object is used to connect database and to create connection pool. Therefore, it consumes more system resources. It is a heavyweight and thread secure object. It should be shared by multiple threads. In order to save memory and to improve operation efficiency, static way should be adopted to use this heavyweight object.

Hibernate Session object is corresponding to a data access session. It is a lightweight object. It should be created and destroyed frequently in application software.

In order to ensure the integrity of the data, the operations collection of database access must be executed completely, so that Hibernate JTA (Java Transaction API) must be used to realize the session transaction.

Session is an insecure thread. To prevent conflicts, it is best for each thread to create one Session object in application software, i.e. each session request should have its own Session object instance. A better way is to use the Thread Local class to bind its corresponding Session object respectively.

The key code of binding Session objects:

private static ThreadLocal<Session> threLocal = new

ThreLocal<Session>();

public static Session currentSession()

{

Session cSession = (Session)threLocal.get();

if(cSession == null)

{

cSession = sessionFactory.openSession();

threLocal.set(cSession);

}

return (Session) threLocal.get();

}

public static void closeSession()

{

Session cSession = (Session)threLocal.get();

if (cSession != null)

{

cSession.close();

threLocal.set(null);

}

}

Ⅴ. S CONCLUSIONS

In this software architecture, the presentation layer uses Struts2 middleware. It receives client data, transfers the client requests to the related business module. Meanwhile, it demonstrates the responding page.

The data layer maps object/relation in the relation database by using Hibernate3 middleware. Static way should be adopted to use the heavyweight Hibernate SessionFactory object for saving the system resources, ThreadLocal class should be used to bind the lightweight Hibernate Session object to ensure the security of the thread.

Coupling through the interfaces of different layers can minimize the interaction the layers. It helps to change and expand the application software.

In order to use and manage Hibernate consistently, it is necessary to design a ManageHibernate class, which provides services for DAO.

From the front stage JSP to the back stage Hibernate, POJO is always used as transfer parameter between layers and operated as data object.

POJO of presentation layer encapsulating client data can be the same class as POJO of data layer making ORM mapping.

基于SH中間件的Java Web軟件架構(gòu)設(shè)計(jì)與應(yīng)用

1. 引言

Java技術(shù)是目前流行的開發(fā)Web語言。Java Web開發(fā)模式已被廣泛用于開發(fā)B/S軟件應(yīng)用。Java Web技術(shù)的發(fā)展歸因于互聯(lián)網(wǎng)瀏覽器的發(fā)展。

基于B/S結(jié)構(gòu)的軟件與基于C/S結(jié)構(gòu)的軟件相比較有一個(gè)顯著的改進(jìn)。基于C/S結(jié)構(gòu)的軟件,客戶端代碼和服務(wù)器端代碼必須分別存儲(chǔ)在客戶端和服務(wù)器端??蛻舳苏?qǐng)求發(fā)送到服務(wù)器,然后服務(wù)器響應(yīng)請(qǐng)求并且返回結(jié)果。它在維修和應(yīng)用中帶來了很多不便,因?yàn)槊總€(gè)客戶端必須安裝客戶端代碼。

基于B / S結(jié)構(gòu)軟件的客戶端瀏覽器。客戶端代碼和服務(wù)器端代碼都存儲(chǔ)在Web容器(Web服務(wù)器)中。用戶通過客戶端瀏覽器發(fā)送一個(gè)請(qǐng)求到服務(wù)器,客戶端代碼被下載到客戶端計(jì)算機(jī),并且在瀏覽器中運(yùn)行。它不再需要客戶端計(jì)算機(jī)安裝客戶端代碼,這是不同于基于C / S結(jié)構(gòu)的軟件。因此,不僅在客戶端計(jì)算機(jī)系統(tǒng)維護(hù)的工作能方面顯著簡(jiǎn)化,同時(shí)也使用戶的操作簡(jiǎn)單和一致。

基于B/S結(jié)構(gòu)的Java Web軟件不斷改進(jìn)。模型1(JSP + JavaBean)和模型2(JSP + Servlet + JavaBean)已先后發(fā)展起來。后者實(shí)現(xiàn)了MVC模型(模型+視圖+控制器)。基于B/S的軟件在結(jié)構(gòu)發(fā)展方面變得越來越有層次。層次結(jié)構(gòu)的目的是從程序中分離出數(shù)據(jù),將業(yè)務(wù)邏輯從顯示邏輯中分離出來,將數(shù)據(jù)庫(kù)管理從業(yè)務(wù)邏輯中分離出來。層次結(jié)構(gòu)有利于系統(tǒng)擴(kuò)張,以便對(duì)整個(gè)系統(tǒng)因某層的改變所造成的影響可以最小化。

表示層:提供用戶特定的操作接口,接收客戶端請(qǐng)求,并顯示響應(yīng)結(jié)果。它也可以識(shí)別小數(shù)量的業(yè)務(wù)邏輯。

業(yè)務(wù)層:識(shí)別主要的業(yè)務(wù)邏輯。業(yè)務(wù)代碼是獨(dú)立的,不需要知道如何以及在哪里顯示。此外,它也是獨(dú)立的后端數(shù)據(jù)庫(kù)。

數(shù)據(jù)層:是一個(gè)獨(dú)立的后端數(shù)據(jù)資源。數(shù)據(jù)可以被不同的程序使用。目前,典型的數(shù)據(jù)資源是關(guān)系數(shù)據(jù)庫(kù)。

由于上述幾個(gè)優(yōu)點(diǎn),分層網(wǎng)絡(luò)軟件應(yīng)用程序已迅速成為主流的Web應(yīng)用程序。

2. SH框架技術(shù)

作者研究了基于SH中間件的Java Web軟件應(yīng)用程序的體系結(jié)構(gòu)和設(shè)計(jì)技術(shù),并應(yīng)用在開發(fā)項(xiàng)目上。

  1. Struts
    Struts2是在Java開發(fā)平臺(tái)上的一個(gè)開放資源的表示層中間件。它認(rèn)識(shí)到表示層的MVC模式,成功地在表示層分離了視圖和控制。Struts2包括三個(gè)部分:核心控制器過濾調(diào)度員,邏輯控制器動(dòng)作和視圖組件。過濾調(diào)度分配器是一個(gè)在運(yùn)行的Web應(yīng)用程序上的過濾器。它負(fù)責(zé)攔截所有客戶端請(qǐng)求,然后通過閱讀配置文件“struts.xml”確定處理客戶端請(qǐng)求的方法。
    執(zhí)行方法獲得信息,例如客戶端請(qǐng)求的參數(shù)和執(zhí)行業(yè)務(wù)處理。它還將處理結(jié)果傳輸?shù)娇蛻舳孙@示出來,如JSP,FreeMarker,速度,等[2]。

  2. Hibernate

Hibernate3是在Java開發(fā)平臺(tái)中數(shù)據(jù)層中間件的開放資源和對(duì)象/關(guān)系數(shù)據(jù)庫(kù)的映射工具。它將實(shí)體對(duì)象到關(guān)系數(shù)據(jù)庫(kù)映射的很好,屏蔽了應(yīng)用軟件的關(guān)系數(shù)據(jù)庫(kù),關(guān)系數(shù)據(jù)庫(kù)的訪問封裝到對(duì)象的訪問,并為上層提供了一個(gè)統(tǒng)一的數(shù)據(jù)訪問接口。

Hibernate3不僅提供了從Java類雙向映射到數(shù)據(jù)表,而且提供數(shù)據(jù)查詢、數(shù)據(jù)修改、數(shù)據(jù)修復(fù)、數(shù)據(jù)恢復(fù)的機(jī)制。Hibernate3可用于J2EE和J2SE應(yīng)用軟件開發(fā)的JDBC方面。Hibernate3提供HQL(Hibernate查詢語言),可以完全以面向?qū)ο蟮姆绞皆L問數(shù)據(jù)資源。

3. 基于SH框架的軟件體系結(jié)構(gòu)

作者介紹了SH中間件在氣象預(yù)報(bào)系統(tǒng)設(shè)計(jì)項(xiàng)目中的應(yīng)用。Struts2在表示層,Hibernate3在數(shù)據(jù)層。

JSP:客戶端頁面,使用Struts2標(biāo)記和在表單中從POJO接收客戶端數(shù)據(jù)的形式。

Action:Struts2 Action類,其私人屬性符合JSP表單的POJO。Action不需要執(zhí)行大量的業(yè)務(wù)流程。主要的業(yè)務(wù)流程由業(yè)務(wù)層完成。Action類在業(yè)務(wù)層調(diào)用業(yè)務(wù)接口的方法。

業(yè)務(wù)接口:它是一個(gè)正面的業(yè)務(wù)層,定義了各業(yè)務(wù)模塊中的方法。應(yīng)用軟件的各個(gè)模塊應(yīng)該有這個(gè)接口來分離表示層與業(yè)務(wù)層。表示層和業(yè)務(wù)層之間通過接口連接,這樣可以降低層與層之間的相互作用,是軟件擴(kuò)展的首選。

業(yè)務(wù)實(shí)現(xiàn):業(yè)務(wù)接口的實(shí)現(xiàn)類,實(shí)現(xiàn)軟件的各種業(yè)務(wù)功能。

DAO接口:它是數(shù)據(jù)訪問接口,它定義了所有的數(shù)據(jù)訪問模塊中的方法。應(yīng)用軟件的各個(gè)模塊應(yīng)該有這個(gè)接口來分離的數(shù)據(jù)層和業(yè)務(wù)層。業(yè)務(wù)層和數(shù)據(jù)層之間通過接口連接。它可以降低層與層之間的相互作用,且修改軟件者優(yōu)先。

DAO實(shí)現(xiàn):DAO接口的實(shí)現(xiàn)類,調(diào)用管理Hibernate類的方法來創(chuàng)建Hibernate會(huì)話對(duì)象和實(shí)現(xiàn)CRUD(創(chuàng)建、檢索、更新、刪除)數(shù)據(jù)訪問。

Manage Hibernate:它是一個(gè)Hibernate管理的工具類。它直接接觸Hibernate。它根據(jù) “hibernate.cfg. xml”文件和ORM映射文件提供了初始化Hibernate和創(chuàng)建Hibernate 會(huì)話工廠對(duì)象的方法。它還提供了創(chuàng)建Hibernate會(huì)話對(duì)象的方法,打開,關(guān)閉會(huì)話等等。與此同時(shí),為了方便的恢復(fù)數(shù)據(jù),日志數(shù)據(jù)層應(yīng)提供機(jī)制,可以通過使用Hibernate3 Log4J實(shí)現(xiàn)。

Hibernate3:Hibernate3框架用于封裝數(shù)據(jù)庫(kù)。每個(gè)Session Factory對(duì)象對(duì)應(yīng)一個(gè)數(shù)據(jù)庫(kù)和每個(gè)會(huì)話對(duì)象對(duì)應(yīng)一個(gè)數(shù)據(jù)庫(kù)訪問會(huì)話。Hibernate會(huì)話對(duì)象提供各種各樣的數(shù)據(jù)庫(kù)訪問方法。

數(shù)據(jù)庫(kù):這是一個(gè)關(guān)系數(shù)據(jù)庫(kù)。作者使用MySQL 5.0,它是一個(gè)開放的資源關(guān)系數(shù)據(jù)庫(kù)。

4. 設(shè)計(jì)中的一些技術(shù)問題

為了安全,來自JSP頁面的每個(gè)請(qǐng)求必須充當(dāng)一個(gè)Action請(qǐng)求(通過Struts2 Filter Dispatcher 接收),這樣是為了避免網(wǎng)頁之間的超鏈接。

Hibernate 會(huì)話工廠對(duì)象是用于連接數(shù)據(jù)庫(kù)并創(chuàng)建連接池。因此,它會(huì)消耗更多的系統(tǒng)資源。這是一個(gè)重量級(jí)的和線程安全對(duì)象。它應(yīng)該被多個(gè)線程共享。為了節(jié)省內(nèi)存,提高操作效率,應(yīng)該采用靜態(tài)方式使用這個(gè)重量級(jí)的對(duì)象。

Hibernate會(huì)話對(duì)象對(duì)應(yīng)一個(gè)數(shù)據(jù)訪問會(huì)話。它是一個(gè)輕量級(jí)對(duì)象。它應(yīng)該在應(yīng)用軟件中頻繁的被創(chuàng)建和銷毀。

為了確保數(shù)據(jù)的完整性,數(shù)據(jù)庫(kù)訪問的操作集合必須被完全執(zhí)行,以便Hibernate JTA(Java事務(wù)API)必須應(yīng)用到會(huì)話事務(wù)。

Session是一個(gè)不安全的線程。為了防止沖突,最好在應(yīng)用軟件中為每個(gè)線程創(chuàng)建一個(gè)會(huì)話對(duì)象,即每個(gè)會(huì)話請(qǐng)求應(yīng)該有自己的會(huì)話對(duì)象實(shí)例。一個(gè)更好的方法是使用線程本地類分別綁定相應(yīng)的會(huì)話對(duì)象。

結(jié)合會(huì)話密鑰代碼對(duì)象:

private static ThreadLocal<Session> threLocal = new

ThreLocal<Session>();

public static Session currentSession()

{

Session cSession = (Session)threLocal.get();

if(cSession == null)

{

cSession = sessionFactory.openSession();

threLocal.set(cSession);

}

return (Session) threLocal.get();

}

public static void closeSession()

{

Session cSession = (Session)threLocal.get();

if (cSession != null)

{

cSession.close();

threLocal.set(null);

}

}

5. 結(jié)論

在這個(gè)軟件體系結(jié)構(gòu)中,表示層使用Struts2中間件。它接收客戶端數(shù)據(jù),將客戶端請(qǐng)求轉(zhuǎn)移到相關(guān)業(yè)務(wù)模塊。與此同時(shí),它還響應(yīng)頁面。

數(shù)據(jù)層地圖對(duì)象/關(guān)系在關(guān)系數(shù)據(jù)庫(kù)中通過使用Hibernate3中間件實(shí)現(xiàn)。靜態(tài)方法應(yīng)采取使用重量級(jí)Hibernate Session Factory對(duì)象節(jié)省系統(tǒng)資源,應(yīng)該使用ThreadLocal類綁定輕量級(jí)Hibernate會(huì)話對(duì)象,以確保線程安全的。

通過不同層次的接口可以減少交互層。它有助于改變和擴(kuò)展應(yīng)用軟件。

為了一致的使用和管理Hibernate,有必要設(shè)計(jì)一個(gè)ManageHibernate類,對(duì)DAO提供服務(wù)。

從前臺(tái)JSP到后臺(tái)Hibernate,POJO在層和操作數(shù)據(jù)對(duì)象之間進(jìn)行參數(shù)傳遞

POJO的表示層封裝客戶端數(shù)據(jù),可以是相同的類作為數(shù)據(jù)層的POJO ORM映射。

畢業(yè)設(shè)計(jì)說明書

碼頭船只出行及配套貨柜碼放

管理系統(tǒng)

碼頭船只出行及配套貨柜碼放管理系統(tǒng)

摘要

伴隨著全球化的發(fā)展,碼頭的物流和客運(yùn)增多,碼頭業(yè)務(wù)迎來新的高峰。然而碼頭業(yè)務(wù)的增加,導(dǎo)致了人員成本和工作量的增多。為了解決這一基本問題,碼頭船只出行及配套貨柜碼放管理系統(tǒng)應(yīng)運(yùn)而生。

此次碼頭船只出行及配套貨柜碼放管理系統(tǒng)的開發(fā)與設(shè)計(jì)將使用當(dāng)前主流的編程語言Java來開發(fā),采用流行的Java三大框架(Spring + Struts +Hibernate)實(shí)現(xiàn)出一個(gè)功能相對(duì)齊全、界面簡(jiǎn)潔、使用方便、用戶體驗(yàn)度相對(duì)較高的碼頭船只出行及配套貨柜碼放管理系統(tǒng)。

該系統(tǒng)為用戶提供了一個(gè)碼頭船只出行及配套貨柜碼放管理系統(tǒng),在系統(tǒng)中可以管理用戶、管理船只、管理貨柜等等,另外設(shè)置了兩種權(quán)限(管理員和員工),不同權(quán)限的用戶登錄后操作不一樣,讓用戶體會(huì)到一個(gè)真實(shí)的碼頭船只出行及配套貨柜碼放管理系統(tǒng)。

本設(shè)計(jì)遵循碼頭業(yè)務(wù)流程,從實(shí)際出發(fā),多方調(diào)研,反復(fù)測(cè)試,實(shí)現(xiàn)一個(gè)功能穩(wěn)定、性能極佳的碼頭船只出行及配套貨柜碼放管理系統(tǒng)。

關(guān)鍵詞:系統(tǒng),Java,管理,web

Pier boats and supporting container stacking management system

Abstract

With the development of globalization, the progress of the society, increasing terminal logistics, passenger transport, port operations will usher in new heights. Increase the terminal business, lead to increased personnel costs, staff workload. In order to solve the basic problem, emerge as the times require ships travel and related container stacking management system.

Development and design of the pier boats and supporting container stacking management system will use the current mainstream programming language Java to develop, using the popular Java three framework (Spring + Struts +Hibernate) to realize the function of a relatively complete, the interface is simple, easy to use, the user experience the ships travel and related container stacking management system the relatively high.

The system provides a ferry boats and supporting container stacking management system for the user, the system can manage users, management, management of container ships and so on, in addition to set up two kinds of permissions (administrators and staff), without permission of the user login and operation are not the same, lets the user feel a real ships travel and related container stacking management system.

The design follows the wharf business process, from a practical point of view, researches, repeated testing, to achieve the ships travel and related container stacking a functional management system, excellent stability.

Key words: System, Java, management, web

目錄

1 引言11

1.1 課題研究的背景和意義11

1.2 國(guó)內(nèi)外現(xiàn)狀11

1.2.1 國(guó)外主要現(xiàn)狀11

1.2.2 國(guó)內(nèi)主要現(xiàn)狀22

1.3 課題研究的目的及主要內(nèi)容33

1.3.1 課題研究的目的33

1.3.2 課題研究的主要內(nèi)容33

1.4 可行性分析33

1.4.1 技術(shù)可行性研究33

1.4.2 經(jīng)濟(jì)可行性研究44

1.4.3 操作可行性研究44

1.5 論文內(nèi)容安排44

2 系統(tǒng)開發(fā)技術(shù)及環(huán)境55

2.1 java語言55

2.2 開發(fā)工具M(jìn)y Eclipse55

2.3 My SQL數(shù)據(jù)庫(kù)66

2.4 JSP技術(shù)66

2.5 Servlet77

2.6 系統(tǒng)開發(fā)環(huán)境88

3 系統(tǒng)需求分析88

3.1 系統(tǒng)功能需求88

3.2 系統(tǒng)性能需求99

3.3 系統(tǒng)運(yùn)行需求1010

3.4 系統(tǒng)的用例分析1010

4 系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)1212

4.1 總體設(shè)計(jì)1212

4.1.1 軟件結(jié)構(gòu)設(shè)計(jì)1212

4.1.2 數(shù)據(jù)庫(kù)設(shè)計(jì)1212

4.2 詳細(xì)設(shè)計(jì)1414

4.2.1 首頁實(shí)現(xiàn)1515

4.2.2 用戶登錄的實(shí)現(xiàn)1616

4.2.3 用戶管理的實(shí)現(xiàn)1919

4.2.4 個(gè)人信息維護(hù)的實(shí)現(xiàn)2020

4.2.5 船只管理的實(shí)現(xiàn)2121

4.2.6 貨柜管理的實(shí)現(xiàn)2323

4.2.7 路線管理的實(shí)現(xiàn)2525

4.2.8 船只分配路線的實(shí)現(xiàn)2727

4.2.9 船只分配貨柜的實(shí)現(xiàn)2929

5 系統(tǒng)測(cè)試3232

結(jié)論3434

參考文獻(xiàn)3535

致謝3636

1 引言

1.1 課題研究的背景和意義

21世紀(jì)是一個(gè)全新的具有挑戰(zhàn)性的世紀(jì),全世界的碼頭都將面對(duì)全新的問題,面臨新的挑戰(zhàn)。全球化大潮的涌動(dòng),催促著一種新的國(guó)際體制的加速形成。國(guó)際貿(mào)易港口碼頭之間的合作與競(jìng)爭(zhēng)將更加頻繁和激烈。以信息技術(shù)為代表的新技術(shù)革命迅猛發(fā)展,高集成度、智能化、光纖化、數(shù)字化、綜合化、網(wǎng)絡(luò)化,為船運(yùn)和碼頭業(yè)提供了更為廣闊的發(fā)展空間;國(guó)際經(jīng)濟(jì)結(jié)構(gòu)的調(diào)整,經(jīng)濟(jì)全球化的加速,必將促進(jìn)港口間國(guó)際貿(mào)易的發(fā)展與運(yùn)量的增長(zhǎng)[1]。

隨著計(jì)算機(jī)管理技術(shù)的高速發(fā)展,各個(gè)領(lǐng)域都應(yīng)用計(jì)算機(jī)對(duì)相關(guān)信息進(jìn)行管理。本系統(tǒng)是一個(gè)復(fù)雜而且涉及內(nèi)容眾多的系統(tǒng),碼頭船只出行及配套貨柜碼放管理系統(tǒng)是碼頭管理系統(tǒng)中一個(gè)比較重要的部分。為了碼頭管理工作節(jié)省不必要的人力、物力和資源,迫切需要較好的碼頭船只出行及配套貨柜碼放管理系統(tǒng)軟件來提高工作效率和信息的準(zhǔn)確率,以降低經(jīng)濟(jì)成本。利用計(jì)算機(jī)、網(wǎng)絡(luò)、計(jì)算機(jī)應(yīng)用軟件等現(xiàn)代科技和手段,加強(qiáng)和改進(jìn)碼頭管理工作,可以降低管理工作的成本,減輕工作強(qiáng)度,提高工作效率??萍嫉陌l(fā)展就是要為生產(chǎn)服務(wù),有了碼頭船只出行及配套貨柜碼放管理系統(tǒng)一定會(huì)為碼頭工作帶來便捷。

1.2 國(guó)內(nèi)外現(xiàn)狀

1.2.1 國(guó)外主要現(xiàn)狀

(1)世界港口碼頭發(fā)展的重心正在加快向中國(guó)轉(zhuǎn)移,二戰(zhàn)過后,世界港口碼頭發(fā)展日新月異。隨著世界經(jīng)濟(jì)的變化更迭,傳統(tǒng)的大港地位發(fā)生變動(dòng),新的優(yōu)勢(shì)港口碼頭不斷涌現(xiàn)。

20世紀(jì)90年代以來,世界港口碼頭業(yè)最大的變化莫過于其發(fā)展重心已經(jīng)向亞洲,特別是中國(guó)轉(zhuǎn)移,而且轉(zhuǎn)移的速度正在加快。全世界有許多著名的海港碼頭。據(jù)有資料記載,目前全世界有億噸港20個(gè);最大的是新加坡港,2000年貨物吞吐量達(dá)3.3億噸;貨物吞吐量居前20位的港口中,中國(guó)占9個(gè)(上海、寧波、廣州、天津、青島、秦皇島、大連和香港、高雄),美國(guó)占4個(gè),日本占3個(gè),歐洲占2個(gè),韓國(guó)占2個(gè)。按集裝箱吞吐量,最大的港口是香港,2002年吞吐量達(dá)1900萬標(biāo)準(zhǔn)箱;排名居前10位的港口中,中國(guó)占4個(gè)(香港、上海、高雄、深圳),歐洲占3個(gè),新加坡、韓國(guó)、美國(guó)各占1個(gè)。按照最新統(tǒng)計(jì),2003年上海港貨物吞吐量超過3億噸,集裝箱吐量將達(dá)到1120萬TEU左右,超過韓國(guó)釜山港位居世界集裝箱港口第三位。深圳港將跨人億噸大港行列,集裝箱吞吐量也可突破1000萬TEU達(dá)1050萬TEU,居世界集裝箱港口第四位,由此,世界排名居前4位的港口中,中國(guó)就占3個(gè),優(yōu)勢(shì)已經(jīng)十分明顯。我國(guó)已是世界名副其實(shí)的港口大國(guó)。目前,中國(guó)大陸已擁有1467個(gè)港口,其中沿海港口165個(gè);對(duì)外開放口岸134個(gè)[2]。

(2)港口碼頭的科技含量越來越高,近年來,隨著科技進(jìn)步步伐的加快,為碼頭大型化、裝卸作業(yè)高速化創(chuàng)造了條件,碼頭科技含量越來越高,碼頭作業(yè)全過程由電子設(shè)備、計(jì)算機(jī)系統(tǒng)指揮和監(jiān)控。特別是集裝箱裝卸設(shè)備發(fā)生了一系列變化,岸橋、場(chǎng)橋的起重量,起升高度,外伸距,速度參數(shù)等均日益增大,向大型高速高效方向發(fā)展。由于競(jìng)爭(zhēng)異常激烈,注入新的高科技內(nèi)容以提高港口碼頭作業(yè)率是各港口經(jīng)營(yíng)者和港機(jī)供貨商采取的措施和不斷追求的目標(biāo)[2]。

自20世紀(jì)70年代初新加坡港修建了該地區(qū)第1個(gè)集裝箱碼頭以來,PSA(新加坡港務(wù)局)就不斷引進(jìn)新的程序系統(tǒng)提高碼頭操作效率,完善服務(wù)標(biāo)準(zhǔn),一步到位滿足客戶的需求。過去的幾年中,PSA在其技術(shù)上的投資已經(jīng)產(chǎn)生出新的產(chǎn)品與服務(wù),使客戶擁有更大的靈活性,節(jié)省了時(shí)間與成本。這些創(chuàng)新包括無人駕駛吊車、自動(dòng)門衛(wèi)申報(bào)系統(tǒng)以及無紙化裝卸單證系統(tǒng)[3] ,高效方便的管理碼頭的系統(tǒng)也勢(shì)在必行。

1.2.2 國(guó)內(nèi)主要現(xiàn)狀

我國(guó)港口經(jīng)過60年的發(fā)展,碼頭成績(jī)顯著,基礎(chǔ)設(shè)施規(guī)模擴(kuò)大,生產(chǎn)能力增強(qiáng),港口碼頭的服務(wù)能力和水平明顯提高。近年來,伴隨我國(guó)經(jīng)濟(jì)的快速發(fā)展,港口發(fā)展速度和建設(shè)腳步加快,港口密度驟然增大。在“十一五”期間,中國(guó)經(jīng)濟(jì)尤其是對(duì)外貿(mào)易發(fā)展對(duì)運(yùn)輸?shù)男枨蟛粩嘣黾樱苯油苿?dòng)中國(guó)港口碼頭建設(shè)投資的增長(zhǎng),為港口碼頭擴(kuò)張?zhí)峁﹦?dòng)力[4]。

中國(guó)傳統(tǒng)的港口,大都是綜合性的接卸碼頭,沒有具體的碼頭裝卸分工。改革開放以后,特別是加入WTO以后,傳統(tǒng)港口格局隨著國(guó)內(nèi)和國(guó)際兩種資源和兩種市場(chǎng)的雙向選擇而發(fā)生了歷史性的變化,逐漸由港口的綜合運(yùn)用而出現(xiàn)明確的分工[5]。

20世紀(jì)80年代以后至今。世界經(jīng)濟(jì)發(fā)展的背景是計(jì)算機(jī)、通訊、網(wǎng)絡(luò)現(xiàn)代高科技產(chǎn)業(yè),其在發(fā)達(dá)國(guó)家的國(guó)民經(jīng)濟(jì)中取得了主導(dǎo)地位,它要求運(yùn)輸體系適應(yīng)運(yùn)程的需要,主要貨物表現(xiàn)在集裝箱運(yùn)輸量增長(zhǎng),散貨、液體貨物呈負(fù)增長(zhǎng)。碼頭的功能戰(zhàn)略為運(yùn)輸方式的交換點(diǎn)、散貨、雜貨的集散中心,運(yùn)輸、金融、信息、工業(yè)與商業(yè)中心、現(xiàn)代物流的集散中心、全程運(yùn)輸中心的貿(mào)易后勤基地。組織特點(diǎn)為港口與用戶關(guān)系密切,實(shí)現(xiàn)資金流、信息流與物流的同步發(fā)展。隨著國(guó)際市場(chǎng)更加開放,海洋運(yùn)輸體系將提高到更加重要的位置[6]。

1.3 課題研究的目的及主要內(nèi)容

1.3.1 課題研究的目的

為了方便港口碼頭的管理,船只的管理,提高工作人員的工作效率并且能更好更準(zhǔn)確的為碼頭服務(wù),開發(fā)一個(gè)完善的碼頭船只出行及配套貨柜碼放管理系統(tǒng)十分必要。

本課題的主要目的就是開發(fā)一個(gè)實(shí)用的完善的碼頭船只出行及配套貨柜碼放管理系統(tǒng),以方便港口碼頭工作人員更好的去管理船只出行,并且能夠更高效的分配貨柜,提高港口運(yùn)輸業(yè)效率。

1.3.2 課題研究的主要內(nèi)容

隨著社會(huì)的進(jìn)步和計(jì)算機(jī)的不斷普及,各行各業(yè)的管理、控制都越來越離不開計(jì)算機(jī)的輔助。該課題就是要以港口碼頭發(fā)展為背景,研究碼頭船只出行及貨柜分配的最佳管理方式。

本系統(tǒng)從用戶來看分為三部分:管理員、一般(看)用戶、一般(操作)用戶;

(1)管理員有對(duì)船只、貨柜等的操作功能(增刪改等)以及對(duì)一般用戶的管理功能;

(2)一般(看)用戶有對(duì)各類信息的查看功能以及個(gè)人信息維護(hù)功能;

(3)一般(操作)用戶對(duì)新聞公告、船只、貨柜、路線等有增刪改功能以及個(gè)人信息維護(hù)功能。

1.4 可行性分析

開發(fā)任何一個(gè)基于計(jì)算機(jī)的系統(tǒng)都會(huì)受到時(shí)間和資源的限制。因此在開發(fā)軟件項(xiàng)目之前,必須根據(jù)可利用的時(shí)間和資源等條件進(jìn)行可行性研究。可行性研究工作的主要任務(wù)不是研究如何解決問題,而是要用最小的代價(jià)在最短的時(shí)間內(nèi)確定該項(xiàng)目是否具有開發(fā)的可行性。

該文的可行性研究主要包括技術(shù)可行性研究,經(jīng)濟(jì)可行性研究,操作可行性研究,等等。

1.4.1 技術(shù)可行性研究

技術(shù)上的可行性分析要考慮將來要采用的硬件和軟件技術(shù)能否滿足用戶提出的要求(如計(jì)算機(jī)的容量、速度等)。此外,還要考慮開發(fā)人員的水平,作為軟件工程專業(yè)的學(xué)生,數(shù)據(jù)庫(kù)設(shè)計(jì)方面理論上還算扎實(shí),在學(xué)校里生活了4年,對(duì)這個(gè)管理模式應(yīng)該比較熟悉。我掌握了數(shù)據(jù)庫(kù)原理、計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)等課程,對(duì)數(shù)據(jù)庫(kù)的設(shè)計(jì)、應(yīng)用、維護(hù)及局域網(wǎng)的組成有了深刻的認(rèn)識(shí)與一定的動(dòng)手實(shí)踐能力,從一定程度上具備了開發(fā)一個(gè)小型系統(tǒng)的能力,再加上參考一些技術(shù)性文檔,查詢相關(guān)資料等,因此總體上該項(xiàng)目在技術(shù)上是可行的[7]。

在IT行業(yè)中從業(yè)的工作人員一般都要求掌握計(jì)算機(jī)技術(shù),具有一定的軟硬件基礎(chǔ),會(huì)使用各種管理軟件,熟悉IT產(chǎn)品。因此,有的碼頭對(duì)員工的素質(zhì)要求比較高,從管理層到下面的前臺(tái)操作人員,都要求具有一定的計(jì)算機(jī)基礎(chǔ),所以在新系統(tǒng)投入使用時(shí),只要對(duì)員工進(jìn)行少量的培訓(xùn),系統(tǒng)的功能和使用方法就基本上能夠使系統(tǒng)順利運(yùn)行。

1.4.2 經(jīng)濟(jì)可行性研究

軟件就其它產(chǎn)品來說,屬于高端行業(yè),無論是產(chǎn)品的價(jià)格還是質(zhì)量都比較高,而碼頭都要求有雄厚的資金支持。所以,在系統(tǒng)的開發(fā)過程中,碼頭完全有能力承擔(dān)開發(fā)費(fèi)用。因?yàn)橥ㄟ^軟件系統(tǒng)的管理可以減少碼頭管理工作不必要的開支,同時(shí)該系統(tǒng)可以提高碼頭的管理效率,即提高了碼頭的經(jīng)濟(jì)效益,所以從經(jīng)濟(jì)上完全是可行的。

1.4.3 操作可行性研究

本系統(tǒng)采用基于B/S結(jié)構(gòu)實(shí)現(xiàn)系統(tǒng),系統(tǒng)采用最友好的交互界面,簡(jiǎn)潔明了。開發(fā)工具使用了具有可視化界面的Myeclipse,它不需要配置JDK,并且有自帶的Tomcat。數(shù)據(jù)庫(kù)方面采用了MYSQL。這些開發(fā)工具的使用,使得開發(fā)方便快捷,具有操作可行性。

綜合以上三方面,無論是從技術(shù)上或者經(jīng)濟(jì)上還是操作上該系統(tǒng)具有很高的開發(fā)可行性。

1.5 論文內(nèi)容安排

該碼頭船只出行及配套貨柜碼放管理系統(tǒng),我計(jì)劃完成對(duì)碼頭船只分配貨柜和路線的管理問題。論文內(nèi)容分為六大部分。

第一部分是引言,簡(jiǎn)要描述課題的背景、課題的意義以及研究目的等。從而得到開發(fā)一個(gè)針對(duì)碼頭工作者的碼頭船只出行和貨柜碼放管理系統(tǒng)的可行性與必要性。

第二部分則是系統(tǒng)開發(fā)工具及環(huán)境分析,對(duì)系統(tǒng)中用到的的關(guān)鍵語言和技術(shù)進(jìn)行大致的解釋。

第三部分對(duì)碼頭船只出行及配套貨柜碼放管理系統(tǒng)的需求進(jìn)行了分析,列出了詳細(xì)的需求列表,對(duì)系統(tǒng)的功能、性能、運(yùn)行等方面進(jìn)行有效的分析。

第四部分對(duì)該系統(tǒng)進(jìn)行詳細(xì)的設(shè)計(jì)與實(shí)現(xiàn),針對(duì)各個(gè)模塊的流程與類進(jìn)行了詳細(xì)設(shè)計(jì),最后對(duì)系統(tǒng)的數(shù)據(jù)庫(kù)進(jìn)行了設(shè)計(jì)。通過該章,為之后的編碼提供了基礎(chǔ)。

第五部分則主要描述了對(duì)系統(tǒng)核心功能的測(cè)試。

第六部分進(jìn)行結(jié)論的總結(jié),總結(jié)論文的研究方法與成果,并且說明系統(tǒng)目前存在的問題,并展望今后的擴(kuò)展方向。

2 系統(tǒng)開發(fā)技術(shù)及環(huán)境

2.1 java語言

本次開發(fā)中我使用了java語言進(jìn)行實(shí)現(xiàn)。采用該語言的原因主要是它在跨平臺(tái)、動(dòng)態(tài)的Web、Internet計(jì)算等方面很出色。并且常用的瀏覽器現(xiàn)在均支持Java applet。另一方面,Java技術(shù)在不斷更新。Java是一種簡(jiǎn)單的,面向?qū)ο蟮?,分布式的,解釋型的,健壯安全的,結(jié)構(gòu)中立的,可移植的,性能優(yōu)異、多線程的動(dòng)態(tài)語言,是一種非常實(shí)用的語言[8][9] 。

Java平臺(tái)由Java虛擬機(jī)(Java Virtual Machine)和Java 應(yīng)用編程接口(Application Programming Interface,簡(jiǎn)稱API)構(gòu)成。Java 應(yīng)用編程接口為Java應(yīng)用提供了一個(gè)獨(dú)立于操作系統(tǒng)的標(biāo)準(zhǔn)接口,可以分為基本部分和擴(kuò)展部分。在硬件或操作系統(tǒng)平臺(tái)上安裝一個(gè)Java平臺(tái)之后,Java應(yīng)用程序就可運(yùn)行?,F(xiàn)在Java平臺(tái)已經(jīng)嵌入了幾乎所有的操作系統(tǒng)。這樣Java程序可以只編譯一次,就可以在各種系統(tǒng)中運(yùn)行。

2.2 開發(fā)工具M(jìn)y Eclipse

MyEclipse 是一個(gè)開放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。對(duì)于編程人員來說,MyEclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括Java開發(fā)工具(Java Development Kit,JDK)會(huì)提供很大的便利。由于My Eclipse 中的每樣?xùn)|西都是插件,對(duì)于給 MyEclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場(chǎng)所。這種平等和一致性并不僅限于 Java 開發(fā)工具。盡管 MyEclipse 是使用 Java 語言開發(fā)的,但它的用途并不限于 Java 語言;例如,支持諸如 C/C++ 、 COBOL、PHP 等編程語言的插件已經(jīng)可用。

2.3 My SQL數(shù)據(jù)庫(kù)

MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),是最流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),這樣就增加了速度并提高了靈活性。MySQL軟件采用了雙授權(quán)政策(本詞條“授權(quán)政策”),它分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),一般中小型網(wǎng)站的開發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。MySQL所使用的SQL語言是用于訪問數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn)化語言。SQL語句可以用來執(zhí)行各種各樣的操作,例如更新數(shù)據(jù)庫(kù)中的數(shù)據(jù),從數(shù)據(jù)庫(kù)中提取數(shù)據(jù)等。目前,絕大多數(shù)流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),如Oracle,Sybase,Microsoft SQL Server,Access等都采用了SQL語言標(biāo)準(zhǔn)。雖然很多數(shù)據(jù)庫(kù)都對(duì)SQL語句進(jìn)行了再開發(fā)和擴(kuò)展,但是包括Select,Insert,Update,Delete,Create,以及Drop在內(nèi)的標(biāo)準(zhǔn)的SQL命令仍然可以被用來完成幾乎所有的數(shù)據(jù)庫(kù)操作[10] 。

2.4 JSP技術(shù)

JSP是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)技術(shù)標(biāo)準(zhǔn)。在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP標(biāo)簽,就構(gòu)成了JSP網(wǎng)頁java程序片段可以操縱數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁以及發(fā)送E-mail等,實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)站所需要的功能。所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,這樣大大降低了對(duì)客戶瀏覽器的要求,即使客戶瀏覽器端不支持Java,也可以訪問JSP網(wǎng)頁。

JSP全名為java server page,其根本是一個(gè)簡(jiǎn)化的Servlet設(shè)計(jì),他實(shí)現(xiàn)了HTML語法中的java擴(kuò)張(以 <%, %>形式)。JSP與Servlet一樣,是在服務(wù)器端執(zhí)行的,通常返回給客戶端的就是一個(gè)HTML文本,因此客戶端只要有瀏覽器就能瀏覽。Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶端。插入的Java程序段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁所需要的功能[11] 。

JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計(jì)的顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。 JSP(JavaServer Pages)是一種動(dòng)態(tài)頁面技術(shù),它的主要目的是將表示邏輯從Servlet中分離出來。

JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁面被客戶端請(qǐng)求以后對(duì)這些Java代碼進(jìn)行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。Java Servlet是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開發(fā)需要Java Servlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡(jiǎn)單易用,完全的面向?qū)ο螅哂衅脚_(tái)無關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點(diǎn)。

2.5 Servlet

Servlet是在服務(wù)器上運(yùn)行的小程序。這個(gè)詞是在Java?applet的環(huán)境中創(chuàng)造的,Java applet是一種當(dāng)作單獨(dú)文件跟網(wǎng)頁一起發(fā)送的小程序,它通常用于在服務(wù)器端運(yùn)行,結(jié)果得到為用戶進(jìn)行運(yùn)算或者根據(jù)用戶互作用定位圖形等服務(wù)[11]。

服務(wù)器上需要一些程序,常常是根據(jù)用戶輸入訪問數(shù)據(jù)庫(kù)的程序。這些通常是使用公共網(wǎng)關(guān)接口(CGI(Common Gateway Interface))應(yīng)用程序完成的。然而,在服務(wù)器上運(yùn)行Java,這種程序可使用Java編程語言實(shí)現(xiàn)。在通信量大的服務(wù)器上,Java servlet的優(yōu)點(diǎn)在于它們的執(zhí)行速度更快于CGI程序。各個(gè)用戶請(qǐng)求被激活成單個(gè)程序中的一個(gè)線程,而無需創(chuàng)建單獨(dú)的進(jìn)程,這意味著服務(wù)器端處理請(qǐng)求的系統(tǒng)開銷將明顯降低。

最早支持Servlet技術(shù)的是JavaSoft的Java Web Server。此后,一些其它的基于Java的WebServer開始支持標(biāo)準(zhǔn)的ServletAPI。Servlet的主要功能在于交互式地瀏覽和修改數(shù)據(jù),生成動(dòng)態(tài)Web內(nèi)容。這個(gè)過程為:

①客戶端發(fā)送請(qǐng)求至服務(wù)器端。

②服務(wù)器將請(qǐng)求信息發(fā)送至Servlet。

③Servlet生成響應(yīng)內(nèi)容并將其傳給服務(wù)器。響應(yīng)內(nèi)容動(dòng)態(tài)生成,通常取決于客戶端的請(qǐng)求。

④服務(wù)器將響應(yīng)返回給客戶端。

Servlet看起來像是通常的Java程序。Servlet導(dǎo)入特定的屬于Java ServletAPI的包。因?yàn)槭菍?duì)象字節(jié)碼,可動(dòng)態(tài)地從網(wǎng)絡(luò)加載,可以說Servlet對(duì)Server就如同Applet對(duì)Client一樣,但是,由于Servlet運(yùn)行于Server中,它們并不需要一個(gè)圖形用戶界面。從這個(gè)角度講,Servlet也被稱為FacelessObject。

一個(gè)Servlet就是Java編程語言中的一個(gè)類,它被用來擴(kuò)展服務(wù)器的性能,服務(wù)器上駐留著可以通過“請(qǐng)求-響應(yīng)”編程模型來訪問的應(yīng)用程序。雖然Servlet可以對(duì)任何類型的請(qǐng)求產(chǎn)生響應(yīng),但通常只用來擴(kuò)展Web服務(wù)器的應(yīng)用程序。

2.6 系統(tǒng)開發(fā)環(huán)境

J2EE的開發(fā)平臺(tái)是一個(gè)開放的平臺(tái),可以選用Sun公司的開發(fā)平臺(tái)NetBeans、也可以使用最為流行的開發(fā)平臺(tái)Eclipse等。在這個(gè)課題里我選用現(xiàn)在最為通用的,也是開發(fā)效率最高的開發(fā)平臺(tái)My eclipse。由于本課題采用的SSH架構(gòu)在開發(fā)和使用階段對(duì)硬件沒有特殊要求,所以在設(shè)計(jì)開發(fā)過程中,出于性能和效率的考慮,我們采用了較為簡(jiǎn)單的Tomcat作為Web服務(wù)器。如下是該碼頭船只出行及其配套貨柜碼放管理系統(tǒng)的開發(fā)環(huán)境:

操作系統(tǒng):Windows 7

數(shù)據(jù)庫(kù):MySQL 5.0

Web服務(wù)器:Tomcat 6.0

Java編譯器:JDK 1.6

開發(fā)框架:Struts 2 + Spring 2.5+ Hibernate 3.1

開發(fā)工具:My eclipse

3 系統(tǒng)需求分析

一款實(shí)用的軟件就是要能夠讓用戶得到很好的體驗(yàn),本系統(tǒng)開發(fā)就是本著這樣的目標(biāo),首先必須了解用戶真正的需要。做好一個(gè)強(qiáng)大的市場(chǎng)調(diào)查和合理的需求分析,在開發(fā)過程中多問自己一些“用戶需要什么”的問題。

3.1 系統(tǒng)功能需求

軟件開發(fā)前的需求分析[12]是軟件最終成敗的關(guān)鍵,如果沒有進(jìn)行詳細(xì)的需求分析,沒有充分理解系統(tǒng)中各類用戶的實(shí)際需求,那么最終的軟件成品充其量只能說是軟件開發(fā)者的作品而已,而沒有任何實(shí)用價(jià)值可言。所以,在開發(fā)碼頭船只出行及其配套貨柜碼放管理系統(tǒng)之初 ,要對(duì)系統(tǒng)需求進(jìn)行詳細(xì)的分析,本系統(tǒng)所實(shí)現(xiàn)的最終目標(biāo):就是要使碼頭管理實(shí)現(xiàn)全面的規(guī)范化、科學(xué)化、自動(dòng)化、高效化和流程化。對(duì)于碼頭日常管理來說,主要是碼頭船只的管理,碼頭信息的發(fā)布,碼頭船只配套貨柜的管理,碼頭出行路線的管理等等。該系統(tǒng)為基于web開發(fā)的碼頭船只出行及配套貨柜碼放管理系統(tǒng),通過ssh框架實(shí)現(xiàn)的。擁有的功能有:用戶登錄、修改個(gè)人信息、查看碼頭信息;增加、刪除、修改系統(tǒng)管理人員;增加、刪除、修改船只信息;刪除、增加、修改船只路線信息;增加、修改、刪除貨柜信息。因此,該系統(tǒng)應(yīng)具有如下的功能,如圖3.1.1。

a.用戶登錄:該模塊分為三種用戶的登錄,一是一般(查看)用戶,他的權(quán)限只有修改個(gè)人信息和查看功能;二是一般(操作)用戶登錄,他可以修改自己的信息,還可以對(duì)系統(tǒng)內(nèi)容進(jìn)行增加、刪除和修改;三是具有最大權(quán)限的系統(tǒng)管理員,他可以修改自己的信息,并且不僅有查看、增刪改的基本權(quán)限,還有對(duì)用戶的管理和注冊(cè)權(quán)限。

b.用戶管理:該模塊實(shí)現(xiàn)對(duì)用戶的增加,刪除和修改

c.個(gè)人信息維護(hù):該模塊實(shí)現(xiàn)用戶對(duì)自己的名字和密碼等個(gè)人信息的修改

d.新聞公告管理:該模塊實(shí)現(xiàn)新聞公告的增加,刪除和修改

e.船只管理:該模塊實(shí)現(xiàn)船只的增加,刪除和修改

f.路線管理:該模塊實(shí)現(xiàn)路線的增加,刪除和修改,以及船只與路線關(guān)系的管理

g.貨柜管理:該模塊實(shí)現(xiàn)貨柜的增加,刪除和修改,以及船只與貨柜關(guān)系的管理

圖3.1.1 系統(tǒng)功能圖

3.2 系統(tǒng)性能需求

系統(tǒng)必須滿足的一些使用過程中要做到的技術(shù)目標(biāo),通常包括速度,安全性等方面的需求。

3.3 系統(tǒng)運(yùn)行需求

軟件方面:系統(tǒng)使用Windows 7操作系統(tǒng)和Tomcat6.0以上版本,MyEclipse8.5 為開發(fā)和測(cè)試平臺(tái),前臺(tái)以JSP為前端界面編輯環(huán)境,后臺(tái)用MySQL5.5來管理數(shù)據(jù)庫(kù)。運(yùn)行時(shí)對(duì)JDK的版本要求為1.6。

硬件方面:PIII500 CPU 或更高配置,256M內(nèi)存或更高,20G以上硬盤,更好有10M共享帶寬或更高。

3.4 系統(tǒng)的用例分析

碼頭船只出行及配套貨柜碼放管理系統(tǒng)主要是面對(duì)三類用戶,即一般(看)用戶、一般(操作)用戶、系統(tǒng)管理員,不同的角色有不同功能.。因此,在設(shè)計(jì)系統(tǒng)的時(shí)候,將系統(tǒng)的整體功能劃分為三個(gè)子系統(tǒng),為一般(看)用戶子系統(tǒng)、一般(操作)用戶子系統(tǒng)和系統(tǒng)管理員子系統(tǒng)。 這三個(gè)系統(tǒng)因?yàn)槠涿鎸?duì)的用戶不同,其功能也不相同,具有相對(duì)獨(dú)立性。但它們又是緊密聯(lián)系和相互關(guān)聯(lián)的,各用例設(shè)計(jì)如圖3.4.1-圖3.4.3所示。

圖3.4.1 管理員用例圖

圖3.4.2 一般(看)用戶用例圖

圖3.4.3 一般(操作)用戶用例圖

4 系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

4.1 總體設(shè)計(jì)

4.1.1 軟件結(jié)構(gòu)設(shè)計(jì)

系統(tǒng)的功能結(jié)構(gòu)圖,如圖4.1.1.1所示。該系統(tǒng)從總體功能結(jié)構(gòu)上分為四大塊。第一塊是用戶管理,包括對(duì)用戶的增加、刪除和修改。第二塊是船只管理,包括對(duì)船只信息的增加、刪除和修改。第三塊是貨柜管理,包括對(duì)貨柜信息的增加、刪除和修改。第四塊是對(duì)應(yīng)關(guān)系管理,包括為船只分配路線的管理和為船只分配貨柜的管理。

圖4.1.1.1 系統(tǒng)功能模塊圖

4.1.2 數(shù)據(jù)庫(kù)設(shè)計(jì)

數(shù)據(jù)庫(kù)設(shè)計(jì)在軟件開發(fā)的過程中起著極其重要的作用[13][14]。數(shù)據(jù)庫(kù)設(shè)計(jì)是否合理對(duì)整個(gè)軟件的開發(fā)是至關(guān)重要的。數(shù)據(jù)庫(kù)的設(shè)計(jì)通常包括下述四個(gè)步驟:

(1)模式設(shè)計(jì)。模式設(shè)計(jì)的目的是確定物理數(shù)據(jù)結(jié)構(gòu)。一般用第三范式,第三范式形式的實(shí)體及關(guān)系數(shù)據(jù)模型是模式設(shè)計(jì)過程的輸入,模式設(shè)計(jì)的主要問題是處理具體的數(shù)據(jù)庫(kù)管理系統(tǒng)的結(jié)構(gòu)約束。

(2)子模式設(shè)計(jì)。子模式是用戶使用的數(shù)據(jù)視圖。

(3)完整性和安全性的設(shè)計(jì)。

(4)優(yōu)化。主要目的是通過改進(jìn)模式和子模式,來優(yōu)化數(shù)據(jù)的存取。

對(duì)于該碼頭管理系統(tǒng),我從分析的資料和設(shè)計(jì)的功能模塊出發(fā),設(shè)計(jì)出7張數(shù)據(jù)庫(kù)表機(jī)構(gòu),分別是新聞信息表、用戶信息表、船只信息表、貨柜信息表、船只貨柜對(duì)應(yīng)關(guān)系信息表、路線信息表和船只路線對(duì)應(yīng)關(guān)系信息表。具體內(nèi)容如表4.1.2.1-4.1.2.7所示。

表4.1.2.1 新聞信息表

表4.1.2.2 用戶信息表

表4.1.2.3 船只信息表

表4.1.2.4 貨柜信息表

表4.1.2.5 船只貨柜對(duì)應(yīng)關(guān)系信息表

表4.1.2.6 路線信息表

表4.1.2.7 船只對(duì)應(yīng)路線信息表

4.2 詳細(xì)設(shè)計(jì)

詳細(xì)設(shè)計(jì)階段的根本目的是確定應(yīng)怎樣具體地實(shí)現(xiàn)所要求的系統(tǒng),也就是在這個(gè)階段的設(shè)計(jì)工作,應(yīng)該是對(duì)針對(duì)目標(biāo)系統(tǒng)的精確描述,從而在編碼階段能夠把這個(gè)描述直接翻譯成可用某種程序設(shè)計(jì)語言書寫的程序。詳細(xì)設(shè)計(jì)階段的任務(wù)是設(shè)計(jì)出程序的“藍(lán)圖”,程序員以后根據(jù)這個(gè)藍(lán)圖寫出實(shí)際的程序代碼[15]。

詳細(xì)設(shè)計(jì)的目標(biāo)不只是在邏輯上正確地實(shí)現(xiàn)每個(gè)模塊的功能,更重要的是設(shè)計(jì)出的處理過程應(yīng)該盡可能簡(jiǎn)明易懂。在每個(gè)模塊中都應(yīng)有相應(yīng)的功能界面。

結(jié)構(gòu)程序設(shè)計(jì)是實(shí)現(xiàn)上述目標(biāo)的關(guān)鍵技術(shù),是詳細(xì)設(shè)計(jì)的邏輯基礎(chǔ)。下面是系統(tǒng)中主要的功能模塊及其子功能模塊具體的實(shí)現(xiàn)方法(僅對(duì)一些典型基礎(chǔ)模塊進(jìn)行說明)

4.2.1 首頁實(shí)現(xiàn)

首頁主要分為Banner信息欄,導(dǎo)航欄,和版權(quán)信息欄。如圖4.2.1.1所示。點(diǎn)擊導(dǎo)航欄的任意某一內(nèi)容,屏幕會(huì)列出想要查看的信息。如圖4.2.1.2所示,點(diǎn)擊出行船只,就會(huì)以分頁顯示的方式列出最新碼頭船只出行的情況。

圖4.1.1.1 首頁界面

圖4.2.1.2 點(diǎn)擊出行船只后顯示界面

實(shí)現(xiàn)船只出行信息羅列的核心代碼如下:

public String getAll() {

HttpServletRequest request = ServletActionContext.getRequest();

request.setAttribute("newsmodel",chuxingEbi.getAll(0, 6));

request.setAttribute("newsnum",chuxingEbi.getAllCount());

return "newsall";

}

public String getAllqt() {

HttpServletRequest request = ServletActionContext.getRequest();

request.setAttribute("newsmodel",chuxingEbi.getAll());

request.setAttribute("newsnum",chuxingEbi.getAllCount());

return "qtall";

}

4.2.2 用戶登錄的實(shí)現(xiàn)

登錄界面分為管理員登錄與一般用戶(操作、看)登錄。登錄頁面設(shè)計(jì)相對(duì)比較簡(jiǎn)單,界面清晰,背景配以黑灰漸變色,首頁運(yùn)行效果,如圖4.2.2.1。

用戶的登錄分為三種情況,第一種是管理員登錄,如圖4.2.2.2是管理員登錄后的界面。管理員可以進(jìn)行用戶管理,個(gè)人信息維護(hù),新聞公告管理,船只管理,貨柜管理,當(dāng)然還可以查看新聞信息。

第二種是一般(操作)用戶,如圖4.2.2.3顯示的是一般用戶登錄后的界面,與管理員操作大體相同,只是功能相對(duì)較少些。一般用戶登錄代碼與管理員代碼大致相似,只是功能少一些。

第三種是一般(看)用戶,該圖4.2.2.4是一般用戶(看)登錄后的界面,只有查看權(quán)限,包括新聞,船只,貨柜及其路線的查看。該用戶的登錄實(shí)現(xiàn)代碼亦同上。

圖4.2.2.1 首頁登錄界面

圖4.2.2.2 管理員登錄界面

圖4.2.2.3 一般用戶(操作)登錄界面

圖4.2.2.4 一般用戶(看)登錄界面

用戶登錄后主要是對(duì)各模塊進(jìn)行權(quán)限內(nèi)的合法操作,其實(shí)現(xiàn)登錄的核心代碼如下:

public String login()

{

HttpServletRequest request = ServletActionContext.getRequest();

HttpSession session = request.getSession();

String username = request.getParameter("username");

String password = request.getParameter("password");

//System.out.println(username+";"+password);

UserQueryModel qm = new UserQueryModel();

qm.setUsername(username);

qm.setPassword(password);

int num = userEbi.getByConditionCount(qm);

//System.out.println("數(shù)量:+"+num);

if(num>0){

int sta = userEbi.getByCondition(qm, 0, 100).get(0).getState();

switch (sta) {

case 0:

session.setAttribute("useradmin", username);

return "admin";

case 1:

session.setAttribute("useradmin", username);

return "admin1";

case 2:

session.setAttribute("useradmin", username);

return "admin2";

default:

request.setAttribute("error", "用戶名或密碼不對(duì)");

return "loginf";

}

}else{

request.setAttribute("error", "用戶名或密碼不對(duì)");

return "loginf";

}

}

4.2.3 用戶管理的實(shí)現(xiàn)

只有管理員才有用戶管理的權(quán)限,該功能模塊可以實(shí)現(xiàn)管理員對(duì)用戶密碼以及權(quán)限的初始設(shè)置和修改。用戶的權(quán)限有看和操作兩種。管理員還可以通過點(diǎn)擊刪除按鈕來實(shí)現(xiàn)對(duì)用戶的刪除。如圖4.2.3.1所示。

圖4.2.3.1 用戶管理界面

圖4.2.3.1顯示的是管理員的用戶管理界面,其核心代碼如下:

//根據(jù)Id得到用戶信息去修改

public String getUserById(){

HttpServletRequest request = ServletActionContext.getRequest();

int id = Integer.parseInt(request.getParameter("id"));

UserQueryModel qm = new UserQueryModel();

qm.setId(id);

request.setAttribute("userupdate", userEbi.getByCondition(qm, 0, 20));

return "byid";

}

//刪除

public String deletedById() {

HttpServletRequest request = ServletActionContext.getRequest();

int id = Integer.parseInt(request.getParameter("id"));

userEbi.delete(id);

return "delete";

}

//修改

public String update() {

userEbi.update(userModel);

return "update";

}

public String create() {

HttpServletRequest request = ServletActionContext.getRequest();

userEbi.create(userModel);

return SUCCESS;

}

4.2.4 個(gè)人信息維護(hù)的實(shí)現(xiàn)

個(gè)人信息的維護(hù)功能模塊的實(shí)現(xiàn),方便了用戶對(duì)自己的個(gè)人信息的修改,比如名字和密碼。用戶登錄該系統(tǒng)之后,通過個(gè)人信息維護(hù)模塊,重新輸入自己的名字和密碼來修改個(gè)人信息。其界面如圖4.2.4.1所示。

圖4.2.4.1 個(gè)人信息維護(hù)界面

實(shí)現(xiàn)個(gè)人信息維護(hù)的核心代碼如下:

public String getxiugai(){

HttpServletRequest request = ServletActionContext.getRequest();

int id = Integer.parseInt(request.getParameter("id"));

UserQueryModel qm = new UserQueryModel();

qm.setId(id);

request.setAttribute("userupdate", userEbi.getByCondition(qm, 0, 20));

return "byid";

}

4.2.5 船只管理的實(shí)現(xiàn)

該功能模塊實(shí)現(xiàn)了可操作人員對(duì)船只的增加、刪除和修改功能。用戶通過添加船只編號(hào)、名稱、體積和詳細(xì)信息來增加船只,實(shí)現(xiàn)船只的增加功能。如圖4.2.5.1。通過船只管理模塊,點(diǎn)擊想要修改或者刪除的船只信息后方的修改或者刪除按鈕,實(shí)現(xiàn)對(duì)船只的修改和刪除功能。如圖4.2.5.2所示。

圖4.2.5.1 船只增加界面

圖4.2.5.2 船只管理界面

上圖4.2.5.1和4.2.5.2顯示的是船只的增加和管理界面,其核心代碼:

public String create() {

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設(shè)置日期格式

String ttime = df.format(new Date());// new Date()為獲取當(dāng)前系統(tǒng)時(shí)間

chuanzhiModel.setTtime(ttime);

chuanzhiEbi.create(chuanzhiModel);

return?SUCCESS;

}

//根據(jù)Id得到船只信息去修改

public String getUserById(){

HttpServletRequest request = ServletActionContext.getRequest();

int id = Integer.parseInt(request.getParameter("id"));

ChuanzhiQueryModel qm = new ChuanzhiQueryModel();

qm.setId(id);

request.setAttribute("newsupdate", chuanzhiEbi.getByCondition(qm, 0, 20));

return "byid";

}

//刪除

public String deletedById() {

HttpServletRequest request = ServletActionContext.getRequest();

int id = Integer.parseInt(request.getParameter("id"));

chuanzhiEbi.delete(id);

return "delete";

}

4.2.6 貨柜管理的實(shí)現(xiàn)

碼頭船只的配套貨柜碼放管理功能模塊,實(shí)現(xiàn)了對(duì)貨柜的增加、刪除和修改。用戶通過對(duì)貨柜編號(hào)、名稱、體積和詳細(xì)信息的輸入,來完成貨柜的增加功能。如圖4.2.6.1。在貨柜管理中,通過貨柜的刪除按鈕和修改按鈕實(shí)現(xiàn)目標(biāo)貨柜的刪除和修改。如圖4.2.6.2所示。

圖4.2.6.1 貨柜增加界面

圖4.2.6.2 貨柜管理界面

圖4.2.6.1和圖4.2.6.2顯示的是貨柜增加和管理功能,其核心代碼如下:

public String create() {

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設(shè)置日期格式

String ttime = df.format(new Date());// new Date()為獲取當(dāng)前系統(tǒng)時(shí)間

huoguiModel.setTtime(ttime);

huoguiEbi.create(huoguiModel);

return?SUCCESS;

}

//根據(jù)Id得到貨柜信息去修改

public String getUserById(){

HttpServletRequest request = ServletActionContext.getRequest();

int id = Integer.parseInt(request.getParameter("id"));

HuoguiQueryModel qm = new HuoguiQueryModel();

qm.setId(id);

request.setAttribute("newsupdate", huoguiEbi.getByCondition(qm, 0, 20));

return "byid";

}

//刪除

public String deletedById() {

HttpServletRequest request = ServletActionContext.getRequest();

int id = Integer.parseInt(request.getParameter("id"));

huoguiEbi.delete(id);

return "delete";

}

public String update() {

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設(shè)置日期格式

String ttime = df.format(new Date());// new Date()為獲取當(dāng)前系統(tǒng)時(shí)間

huoguiModel.setTtime(ttime);

huoguiEbi.update(huoguiModel);

return "update";

}

}

4.2.7 路線管理的實(shí)現(xiàn)

路線管理功能模塊實(shí)現(xiàn)了可操作人員對(duì)線路的增加、刪除和修改。使得路線的管理方便快捷。用戶可以通過對(duì)路線編號(hào)、名稱、具體路線以及詳細(xì)信息的添加來實(shí)現(xiàn)增加路線功能。如圖4.2.7.1。用戶通過點(diǎn)擊出行路線管理界面上的修改和刪除按鈕來修改和刪除目標(biāo)路線,如圖4.2.7.2所示。

圖4.2.7.1 出行路線增加界面

圖4.2.7.2 出行路線管理界面

核心代碼為:

public String create() {

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設(shè)置日期格式

String ttime = df.format(new Date());// new Date()為獲取當(dāng)前系統(tǒng)時(shí)間

luxianModel.setTtime(ttime);

luxianEbi.create(luxianModel);

return?SUCCESS;

}

//根據(jù)Id得到信息去修改

public String getUserById(){

HttpServletRequest request = ServletActionContext.getRequest();

int id = Integer.parseInt(request.getParameter("id"));

LuxianQueryModel qm = new LuxianQueryModel();

qm.setId(id);

request.setAttribute("newsupdate", luxianEbi.getByCondition(qm, 0, 20));

return "byid";

}

//刪除

public String deletedById() {

HttpServletRequest request = ServletActionContext.getRequest();

int id = Integer.parseInt(request.getParameter("id"));

luxianEbi.delete(id);

return "delete";

}

public String update() {

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設(shè)置日期格式

String ttime = df.format(new Date());// new Date()為獲取當(dāng)前系統(tǒng)時(shí)間

luxianModel.setTtime(ttime);

luxianEbi.update(luxianModel);

return "update";

}

}

4.2.8 船只分配路線的實(shí)現(xiàn)

該模塊實(shí)現(xiàn)了用戶對(duì)船只出行路線的設(shè)置。用戶通過船只的選擇和路線的選擇、以及說明信息的填寫,實(shí)現(xiàn)為船只分配路線的功能,如圖4.2.8.1所示。還可以通過對(duì)刪除和修改按鈕的點(diǎn)擊,來刪除或者修改分配好的船只路線組合,如圖4.2.8.2所示。

圖4.2.8.1 船只分配出行路線界面

圖4.2.8.2 船只出行路線管理界面

其核心代碼如下:

public String create() {

//System.out.println("????????????????????");

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設(shè)置日期格式

String ttime = df.format(new Date());// new Date()為獲取當(dāng)前系統(tǒng)時(shí)間

chuxingModel.setTtime(ttime);

//System.out.println(chuxingModel.toString());

chuxingEbi.create(chuxingModel);

return SUCCESS;

}

//根據(jù)Id得到信息去修改

public String getUserById(){

HttpServletRequest request = ServletActionContext.getRequest();

int id = Integer.parseInt(request.getParameter("id"));

ChuxingQueryModel qm = new ChuxingQueryModel();

qm.setId(id);

request.setAttribute("newsupdate", chuxingEbi.getByCondition(qm, 0, 20));

return "byid";

}

//刪除

public String deletedById() {

HttpServletRequest request = ServletActionContext.getRequest();

int id = Integer.parseInt(request.getParameter("id"));

chuxingEbi.delete(id);

return SUCCESS;

}

public String update() {

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設(shè)置日期格式

String ttime = df.format(new Date());// new Date()為獲取當(dāng)前系統(tǒng)時(shí)間

chuxingModel.setTtime(ttime);

chuxingEbi.update(chuxingModel);

return "update";

}

//去獲取船只,線路的信息

public String getCL(){

HttpServletRequest request = ServletActionContext.getRequest();

List<ChuanzhiModel> czlist = chuanzhiEbi.getAll();

List<LuxianModel> lxlist = luxianEbi.getAll();

System.out.println(czlist+"//"+lxlist);

request.setAttribute("czmodel",czlist);

request.setAttribute("lxmodel",lxlist);

return "addcl";

}

}

4.2.9 船只分配貨柜的實(shí)現(xiàn)

船只分配貨柜這一功能模塊主要是為每一艘輪船進(jìn)行貨柜的分配,還有對(duì)已分配貨柜的船只進(jìn)行信息的修改和刪除。用戶可以通過船只的選擇、貨柜的選擇和說明信息(該輪船可以放置多少個(gè)貨柜等等信息)的填寫來實(shí)現(xiàn)分配貨柜功能,如圖4.2.9.1所示。用戶還可以通過點(diǎn)擊刪除和修改按鈕來實(shí)現(xiàn)對(duì)已分配貨柜船只組合的刪除和修改,如圖4.2.9.2所示。

圖4.2.9.1 船只分配貨柜界面

圖4.2.9.2船只對(duì)應(yīng)配套貨柜管理界面

該功能模塊實(shí)現(xiàn)了用戶對(duì)船只進(jìn)行貨柜碼放的管理。其核心代碼如下:

public String create() {

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設(shè)置日期格式

String ttime = df.format(new Date());// new Date()為獲取當(dāng)前系統(tǒng)時(shí)間

peitaohgModel.setTtime(ttime);

peitaohgEbi.create(peitaohgModel);

return?SUCCESS;

}

//根據(jù)Id得到用戶信息去修改

public String getUserById(){

HttpServletRequest request = ServletActionContext.getRequest();

int id = Integer.parseInt(request.getParameter("id"));

PeitaohgQueryModel qm = new PeitaohgQueryModel();

qm.setId(id);

request.setAttribute("newsupdate", peitaohgEbi.getByCondition(qm, 0, 20));

return "byid";

}

//刪除

public String deletedById() {

HttpServletRequest request = ServletActionContext.getRequest();

int id = Integer.parseInt(request.getParameter("id"));

peitaohgEbi.delete(id);

return?SUCCESS;

}


public String update() {

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設(shè)置日期格式

String ttime = df.format(new Date());// new Date()為獲取當(dāng)前系統(tǒng)時(shí)間

peitaohgModel.setTtime(ttime);

peitaohgEbi.update(peitaohgModel);

return "update";

}

public String getczhg(){

HttpServletRequest request = ServletActionContext.getRequest();

}

}

5 系統(tǒng)測(cè)試

一個(gè)完善的系統(tǒng),是要經(jīng)得起“考驗(yàn)”的,所謂的“考驗(yàn)”就是在系統(tǒng)真正上線之前進(jìn)行各種測(cè)試,主要大的方面是白盒和黑盒測(cè)試[16],包括上線之后用戶的使用的測(cè)試,比如用戶體驗(yàn)度的反饋,系統(tǒng)壓力的測(cè)試反饋等。在這里主要進(jìn)行的是上線之前的測(cè)試工作。

測(cè)試一:用戶登錄時(shí),用戶名或密碼有一項(xiàng)為空或者填寫錯(cuò)誤,系統(tǒng)是否出現(xiàn)預(yù)先設(shè)定的操作提示。

具體操作:用戶名、密碼、任意一項(xiàng)為空或者填寫有誤。

結(jié)果:都出現(xiàn)相應(yīng)的錯(cuò)誤原因的信息提示。

結(jié)論:要求用戶必須填寫正確的用戶名和密碼,才能進(jìn)入管理系統(tǒng)。

測(cè)試二:管理員對(duì)用戶的管理方面,即對(duì)用戶進(jìn)行增加,修改,刪除時(shí)看用戶管理界面是否產(chǎn)生相應(yīng)變化。

具體操作:對(duì)用戶進(jìn)行增刪改查。

結(jié)果:都相應(yīng)出現(xiàn)正確的改變。

結(jié)論:管理員可以直接在用戶管理界面修改用戶信息。

測(cè)試三:用戶對(duì)船只信息的管理,即用戶對(duì)船只信息的增加,刪除和修改,是否可以實(shí)現(xiàn)。

具體操作:用戶修改船只信息,通過船只管理界面查看船只信息是否已按相應(yīng)要求修改。

結(jié)果:都出現(xiàn)相應(yīng)的變化,用戶修改船只信息,在船只管理以及其他相關(guān)頁面都可以看到。

結(jié)論:用戶可以在船只增加和船只管理界面進(jìn)行船只信息的修改。

測(cè)試四:用戶登錄時(shí),是否區(qū)分一般看用戶和一般操作用戶。

具體操作:以管理員身份登陸系統(tǒng),進(jìn)行兩種用戶的設(shè)置,然后以設(shè)置好的不同用戶身份登陸,查看其各自擁有的權(quán)限。

結(jié)果:一般看用戶只有查看權(quán)限。一般操作用戶則既有查看權(quán)限,還有增刪改權(quán)限。

結(jié)論:要求管理員必須正確設(shè)置用戶的權(quán)限。

測(cè)試五:修改系統(tǒng)的新聞公告﹑返回前臺(tái),看其是否更新成功。

具體操作:通過新聞公告管理頁面中的修改功能修改新聞公告的內(nèi)容,看其是否修改成功。

結(jié)果:新聞公告內(nèi)容更新為修改后的信息。

結(jié)論:修改新聞公告功能正常。

測(cè)試六:管理員刪除某一原有用戶后,并讓其登陸,看是否登陸成功。

具體操作:管理員刪除用戶表中的某一用戶后,該用戶在前臺(tái)登陸。

結(jié)果:該用戶無法登錄。

結(jié)論:用戶數(shù)據(jù)刪除功能正常。

參考文獻(xiàn)

[1] Li Wei. Problem studies of international container port competition in Shanghai.Master scientific dissertation ,2006.

[2] 屠德銘.港口行業(yè)發(fā)展現(xiàn)狀及前景[A].中國(guó)港口協(xié)會(huì)[C].上海:200000;

[3] 魯懿春.新加坡港在港口操作中的創(chuàng)新[J].集裝箱化,2004,12:20.

[4] 中國(guó)港口現(xiàn)狀[J].中國(guó)電子雜志出版社.2010,4,5.

[5]史博臻,任荃.海洋時(shí)代,上海的“遠(yuǎn)”與“近”[N].文匯報(bào),2010-12—1l(2).

[6] 張明齊,張永峰,劉萬峰.中國(guó)世界級(jí)_強(qiáng)港_建設(shè)分析與探討[J].中國(guó)港灣建設(shè),2011,3:77.

[7] 韓萬江,姜立新.軟件項(xiàng)目管理案例教程.機(jī)械工業(yè)出版社,2007,12

[8] Ken Arnold,James Gosling.Java程序設(shè)計(jì)語言.人民郵電出版社,2006,11

[9] (美)艾克爾.布魯斯.JAVA編程思想[M].出版地:機(jī)械工業(yè)出版社,2007.6.

[10] 王珊,薩師煊.?dāng)?shù)據(jù)庫(kù)系統(tǒng)概論(第四版).高等教育出版社,2007,7

[11] Mary Hall,Larry Brown.Servlet和JSP核心編程.清華大學(xué)出版社,2007,1

[12] 張海藩. 軟件工程導(dǎo)論. 北京:清華大學(xué)出版社,2008.2

[13] 李紅. 數(shù)據(jù)庫(kù)原理及應(yīng)用[M]. 高等教育出版社,2003.3

[14] 劉世峰.數(shù)據(jù)庫(kù)基礎(chǔ)與應(yīng)用.中央廣播電視大學(xué)出版社,2004.

[15] 樊?,|,呂進(jìn),杜瑾等. 軟件詳細(xì)設(shè)計(jì)教程[M]. 西安電子科技大學(xué)出版社,2010.12

[16] 朱少民. 軟件測(cè)試方法和技術(shù)[M]. 清華大學(xué)出版社,2010.7



jsp碼頭船只出行及配套貨柜碼放管理系統(tǒng)(任務(wù)書+開題報(bào)告+論文)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
丹东市| 宣武区| 龙岩市| 吉木乃县| 天水市| 陇西县| 南乐县| 邵武市| 定边县| 蓬莱市| 陆丰市| 怀宁县| 南丰县| 当阳市| 康平县| 凌源市| 奉新县| 明溪县| 宿州市| 泗洪县| 寻乌县| 穆棱市| 阜新市| 阜阳市| 武城县| 阿克苏市| 商河县| 舞钢市| 广东省| 垣曲县| 红桥区| 滦南县| 余庆县| 高清| 周至县| 吴桥县| 腾冲县| 阿克陶县| 秦安县| 涟源市| 弥勒县|