【正文】
agement system has bee a new application software system of logistics enterprise. For this reason, the logistics management system based on JSP is designed. The design of logistics information management platform based on JSP+JavaBean+Servlet technology and MVC design pattern. Through the connection to the database, this system realizes perfect information interaction from front page and backstage database. It not only provides logistics information data in order to make the choice, but also provide a convenient property operation for the logistics operation personnel, so as to realize the information management of logistics enterprise efficiency. In order to improve the economic benefit and efficiency, the development of this system can help the enterprise to realize the optimal operation of the logistics of the entire process and effective control, and effective integration of enterprise logistics business. So it is of great practical value.Key words:Logistics Management;JSP;JavaBean;MVC Design Pattern;Database1 緒論 研究背景及意義當(dāng)今物流行業(yè)發(fā)展迅速,現(xiàn)在的物流行業(yè)發(fā)展水平已經(jīng)遠(yuǎn)遠(yuǎn)超過(guò)傳統(tǒng)的物流行業(yè)發(fā)展水平。傳統(tǒng)的物流行業(yè)大多只是停留在運(yùn)輸和存儲(chǔ)的集成上,從而使得企業(yè)喪失了重要的高端市場(chǎng)。隨著現(xiàn)代經(jīng)濟(jì)的快速發(fā)展,各種各樣的產(chǎn)品應(yīng)運(yùn)而生。時(shí)下,大多數(shù)物流企業(yè)的科技含量低,這將直接導(dǎo)致了物流信息化的程度低。迂回運(yùn)輸、車輛空載行駛的物流資源浪費(fèi)現(xiàn)象屢見(jiàn)不鮮,市場(chǎng)缺乏一個(gè)有序的、統(tǒng)一的物流信息管理系統(tǒng)信息交換機(jī)制和溝通平臺(tái)。而數(shù)據(jù)共享在運(yùn)輸和制造企業(yè)物流方面一直是重要的[4]。本次開(kāi)發(fā)的系統(tǒng)就是針對(duì)這些問(wèn)題根據(jù)中小型企業(yè)的實(shí)際需求而開(kāi)發(fā)出來(lái)的一套物流管理系統(tǒng)。因此運(yùn)用現(xiàn)代Web技術(shù)對(duì)物流過(guò)程中的全部或部分信息進(jìn)行采集、分類、傳遞、匯總、識(shí)別、跟蹤、查詢等一系列處理活動(dòng),對(duì)于降低成本、提高經(jīng)濟(jì)效益具有重要的作用[6]。系統(tǒng)的開(kāi)發(fā)能夠幫助企業(yè)實(shí)現(xiàn)對(duì)物流管理全過(guò)程的優(yōu)化調(diào)度和動(dòng)態(tài)控制,高效率的整合企業(yè)的物流管理業(yè)務(wù)和全過(guò)程的調(diào)度,以便企業(yè)能夠全面提高企業(yè)經(jīng)濟(jì)效益,提供實(shí)用、高效、科學(xué)的物流管理方法和運(yùn)營(yíng)手段。因此,設(shè)計(jì)這樣一個(gè)完善的物流管理系統(tǒng)以適應(yīng)現(xiàn)代物流的發(fā)展是非常有這個(gè)必要的。結(jié)合系統(tǒng)開(kāi)發(fā)的需要,本系統(tǒng)所需要用到的軟件開(kāi)發(fā)環(huán)境如下: 操作系統(tǒng):windows 7 系統(tǒng)開(kāi)發(fā)工具:Eclipse 系統(tǒng)開(kāi)發(fā)語(yǔ)言:HTML + JavaScript + CSS + Java 運(yùn)行環(huán)境:Windows、Linux 數(shù)據(jù)庫(kù):SQL Server 2005 服務(wù)器:Tomcat 開(kāi)發(fā)工具及相關(guān)技術(shù)概述 Eclipse簡(jiǎn)介Eclipse 是一個(gè)開(kāi)放源代碼的、基于Java的可擴(kuò)展開(kāi)發(fā)環(huán)境。Eclipse的優(yōu)勢(shì)在于它是一個(gè)可以跨平臺(tái)的集成開(kāi)發(fā)環(huán)境。通過(guò)集成大量的插件,Eclipse的功能不斷擴(kuò)展以支持各種不同的應(yīng)用[8]。但是于此同時(shí),Eclipse也失去了它的靈活性。在Eclipse環(huán)境中開(kāi)發(fā)基于JSP的動(dòng)態(tài)網(wǎng)頁(yè)項(xiàng)目是非常方便的,在Eclipse中通過(guò)內(nèi)置的Web瀏覽器可以運(yùn)行web程序,看到界面的效果。包括新建、刪除數(shù)據(jù)庫(kù)、新建表、刪除表、對(duì)表中的記錄進(jìn)行增刪查改等操作。而且可以安裝到任何能夠存放普通web頁(yè)面的地方。當(dāng)出現(xiàn)第一次頁(yè)面請(qǐng)求時(shí)JSP轉(zhuǎn)換成Servlet。JSP設(shè)計(jì)的目的在于簡(jiǎn)化表示層的表示。嵌入JSP頁(yè)面的有:普通的HTML代碼、腳本元素、指令、動(dòng)作。JSP頁(yè)面為服務(wù)器端的Java庫(kù)單元提供了一個(gè)接口,用來(lái)服務(wù)于HTTP的應(yīng)用程序。HTML頁(yè)面中插入的Java程序段可以操作數(shù)據(jù)庫(kù)、重定向頁(yè)面等,以便用來(lái)實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁(yè)所需要的功能。JSP和數(shù)據(jù)庫(kù)的連接通常使用通過(guò)JDBC直接連接數(shù)據(jù)庫(kù)和連接池技術(shù)[12]。 SQL Server 2005 概述 Microsoft SQL Server 2005 是一個(gè)全面的數(shù)據(jù)庫(kù)平臺(tái),該數(shù)據(jù)庫(kù)引擎為結(jié)構(gòu)化數(shù)據(jù)和關(guān)系型數(shù)據(jù)提供了安全而可靠的存儲(chǔ)功能,它可以構(gòu)建和管理高性能的數(shù)據(jù)應(yīng)用程序。SQL被稱為是關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)的標(biāo)準(zhǔn)語(yǔ)言。SQL語(yǔ)言用來(lái)執(zhí)行各種各樣的操作,比如:對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行更新、保存數(shù)據(jù)到數(shù)據(jù)庫(kù)以及從數(shù)據(jù)看中提取數(shù)據(jù)到用戶界面以便用戶查看。而在系統(tǒng)的開(kāi)發(fā)過(guò)程中數(shù)據(jù)庫(kù)的連接是非常占用系統(tǒng)資源的,這一點(diǎn)在多用戶的網(wǎng)頁(yè)應(yīng)用程序中體現(xiàn)得尤為突出[13]。 瀏覽器/服務(wù)器(Browser/Server)結(jié)構(gòu) B/S結(jié)構(gòu)(Browser/Server,瀏覽器/服務(wù)器模式),是Web興起后的一種網(wǎng)絡(luò)結(jié)構(gòu)模式,Web瀏覽器是客戶端所能用到的最主要的應(yīng)用軟件??蛻魴C(jī)上只要安裝一個(gè)瀏覽器,服務(wù)器安裝SQL Server等數(shù)據(jù)庫(kù),就可基本實(shí)現(xiàn)該結(jié)構(gòu)。B/S結(jié)構(gòu)最大的優(yōu)點(diǎn)就是在任何地方都可以進(jìn)行操作而不需要安裝任何專業(yè)性的軟件,只要有一臺(tái)能上網(wǎng)的電腦就能使用,客戶端不需要安裝和維護(hù),系統(tǒng)的擴(kuò)展非常容易。B/S結(jié)構(gòu)的用戶比較廣泛,而C/S結(jié)構(gòu)的用戶相對(duì)來(lái)說(shuō)比較單一。在這種結(jié)構(gòu)下,用戶界面完全通過(guò)WWW瀏覽器實(shí)現(xiàn),一部分事務(wù)邏輯在前端實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn)[15]。由于它運(yùn)行時(shí)占用系統(tǒng)資源很少,擴(kuò)展性也比較好,所以已經(jīng)成為開(kāi)發(fā)和調(diào)試JSP應(yīng)用程序的首選。Tomcat服務(wù)器和IIS等Web服務(wù)器一樣,具有處理HTML頁(yè)面的功能,另外它還是一個(gè)Servlet和JSP容器,獨(dú)立的Servlet容器是Tomcat的默認(rèn)模式。解析完了之后就把結(jié)果返回給用戶所能看到的界面。然而Tomcat環(huán)境下JSP亂碼是一個(gè)比較常見(jiàn)的問(wèn)題,它的根源就是編碼的轉(zhuǎn)換過(guò)程,通過(guò)對(duì)各種出錯(cuò)情況進(jìn)行分析,不難找出這類問(wèn)題的解決方法[17]。為此,對(duì)企業(yè)生產(chǎn)經(jīng)營(yíng)活動(dòng)過(guò)程的物流需求進(jìn)行科學(xué)分析,就成為了現(xiàn)代物流企業(yè)強(qiáng)化物流管理的關(guān)鍵一步[18]。用例分析是把系統(tǒng)需要完成的行為交給分析類,然后讓分析類來(lái)實(shí)現(xiàn)系統(tǒng)的行為。物流管理系統(tǒng)的開(kāi)發(fā)主要是實(shí)現(xiàn)客戶服務(wù)、倉(cāng)庫(kù)信息的管理、用戶信息的管理以及用戶信息的檢索、車輛信息管理等功能的數(shù)據(jù)管理。(1) 登錄系統(tǒng)模塊不同的用戶在登陸界面輸入自己的用戶名和密碼,根據(jù)用戶的身份不同進(jìn)入不同的主頁(yè)面,若用戶還沒(méi)有賬號(hào)則登錄界面提示用戶進(jìn)行注冊(cè)。圖21 系統(tǒng)用例圖(3) 倉(cāng)庫(kù)管理模塊包括采購(gòu)商品以及配送商品。管理員首先根據(jù)客戶提交的商品訂單,判斷倉(cāng)庫(kù)中的商品是否滿足客戶的需求,即進(jìn)行訂單的審核(包括商品的編號(hào)和數(shù)量)。(4) 車輛信息管理模塊包括對(duì)車輛信息的查詢以及對(duì)車輛信息的增刪查改。隨著物流管理規(guī)模的增大,對(duì)車輛信息的變動(dòng)也是必然的,因此需要對(duì)車輛信息做出相應(yīng)的操作。信息管理主要就是對(duì)用戶信息的增刪查改。(6) 用戶管理模塊管理員針對(duì)用戶和供應(yīng)商信息的增刪改。(7) 退出系統(tǒng)模塊用戶若想退出該系統(tǒng),則可以點(diǎn)擊退出系統(tǒng)鏈接,使用戶退出到登錄界面。由于B/S架構(gòu)的管理軟件之安裝在服務(wù)器端,管理員只需要對(duì)服務(wù)器進(jìn)行管理就可以了。因此運(yùn)算式的服務(wù)器整體性能要求較高,在硬件方面要求系統(tǒng)環(huán)境P4以上CPU、512MB、80GB的配置。在時(shí)間特性方面,系統(tǒng)搜索時(shí)間最大不超過(guò)5秒,平均時(shí)間在1至3秒,此外對(duì)數(shù)據(jù)庫(kù)中信息的檢索也不應(yīng)查過(guò)一秒;在系統(tǒng)容量要求方面,系統(tǒng)的靜態(tài)用戶在3000以上、動(dòng)態(tài)用戶在1000以上、并發(fā)數(shù)在500左右?;贐/S結(jié)構(gòu)的系統(tǒng)與操作系統(tǒng)平臺(tái)關(guān)系很小。 安全性需求安全性是與系統(tǒng)的安全性相關(guān)的需求,將會(huì)影響到用戶對(duì)系統(tǒng)的使用和對(duì)數(shù)據(jù)的保護(hù)。另外系統(tǒng)的管理軟件是安裝在服務(wù)器上的,數(shù)據(jù)的存儲(chǔ)和運(yùn)行也是在服務(wù)器中。一旦有不可知的用戶對(duì)系統(tǒng)進(jìn)行破壞,那么系統(tǒng)就會(huì)很容易崩潰。因此用戶身份的審核需求是系統(tǒng)必須要滿足的安全性或保密性策略。確認(rèn)用戶身份的方式有很多種,比如:口令系統(tǒng)、智能卡和生物統(tǒng)計(jì)學(xué)等等。只要用戶輸入正確的用戶名和密碼,那么身份得到驗(yàn)證后用戶就可以進(jìn)行相應(yīng)的操作;若未能通過(guò)驗(yàn)證,則系統(tǒng)不允許用戶進(jìn)入該系統(tǒng)。而MVC模式的使用可以大大減少項(xiàng)目開(kāi)發(fā)的時(shí)間,它可以有效地分離視圖層和業(yè)務(wù)邏輯層,進(jìn)而使得程序員能夠集中到業(yè)務(wù)邏輯層上,界面程序員可以集中精力于界面的實(shí)現(xiàn)上。因此本系統(tǒng)選擇了MVC設(shè)計(jì)模式。MVC是一個(gè)經(jīng)典的軟件設(shè)計(jì)模式,已經(jīng)得到廣泛的應(yīng)用。它是用一種業(yè)務(wù)邏輯和數(shù)據(jù)分離的方法來(lái)組織代碼,并將業(yè)務(wù)邏輯模塊聚集到一個(gè)部件里面,控制層確保業(yè)務(wù)邏輯層和界面的同步,若業(yè)務(wù)邏輯層發(fā)生了變化,那么視圖層也應(yīng)該進(jìn)行同步的更新。圖31 MVC組件類型的管理與功能M—Model,模型層是應(yīng)用程序的核心,該層次主要實(shí)現(xiàn)的是處理應(yīng)用程序的數(shù)據(jù)邏輯部分,負(fù)責(zé)數(shù)據(jù)的錄入和業(yè)務(wù)邏輯的實(shí)現(xiàn),具有最多的處理任務(wù)。C—Controller,控制器是是連接業(yè)務(wù)邏輯和視圖層的橋梁,是應(yīng)用程序中處理用戶交互的部分,它獲取視圖層傳來(lái)的數(shù)據(jù),控制用戶的輸入,并且調(diào)用業(yè)務(wù)邏輯類向模型層發(fā)送數(shù)據(jù)。視圖層和業(yè)務(wù)層的分離使得我們?cè)诟囊晥D層代碼的同時(shí)可以不用重新編譯模型和控制器代碼。正是由于MVC的這種特點(diǎn)使得改變其中的一個(gè)層次的功能也不會(huì)影響另外兩個(gè)層次的功能,所以根據(jù)這種思想MVC就能夠?qū)崿F(xiàn)良好的松耦合構(gòu)件。因?yàn)槟P头祷氐臄?shù)據(jù)沒(méi)有格式化,所以同一個(gè)構(gòu)件能夠被不同的JSP頁(yè)面所使用。MVC使得項(xiàng)目開(kāi)發(fā)和維護(hù)用戶接口的技術(shù)含量降低了。MVC使得視圖層和業(yè)務(wù)邏輯層分離,這樣更加方便了Web項(xiàng)目的維護(hù)和修改。本系統(tǒng)在實(shí)現(xiàn)之前經(jīng)過(guò)查閱資料以及實(shí)踐調(diào)研,對(duì)物流企業(yè)中存在的問(wèn)題,以及缺陷進(jìn)行勘察,把物流企業(yè)中需要實(shí)現(xiàn)的基本功能總結(jié)并歸類,具體包含以下七個(gè)功能模塊:用戶登錄、客戶服務(wù)、倉(cāng)庫(kù)管理、車輛管理、信息查詢、用戶管理、退出系統(tǒng)。據(jù)此,在進(jìn)入該系統(tǒng)之前,物流管理系統(tǒng)給每個(gè)相關(guān)人員分配了相應(yīng)的權(quán)限:客戶和職員。對(duì)于不能成功登錄進(jìn)去的用戶,登錄界面可以給出相應(yīng)的錯(cuò)誤提示。由于權(quán)限的限制使得客戶只能操作該模塊中的功能,在此模塊中客戶可以進(jìn)行的操作有提交訂單、修改個(gè)人信息、查看個(gè)人訂單的歷史記錄。管理員通過(guò)定時(shí)的查看倉(cāng)庫(kù)中商品的信息以及用戶的訂單對(duì)倉(cāng)庫(kù)中的商品做一下操作:對(duì)數(shù)量不足商品的采購(gòu)以及根據(jù)客戶訂單進(jìn)行商品的配送。那么管理員對(duì)車輛信息的管理就很有必要了,大致包括車輛信息的增加以及車輛信息的更改、刪除等。該模塊主要包括四個(gè)方面的查詢:商品信息查詢、職工信息查詢、客戶信息查詢、訂單信息查詢。(7) 退出系統(tǒng)模塊若用戶對(duì)該系統(tǒng)的操作已經(jīng)完成,想要退出系統(tǒng)的話,則用戶點(diǎn)擊退出系統(tǒng)功能即可退出該系統(tǒng),隨后返回到登錄界面。整個(gè)系統(tǒng)的功能模塊如圖32所示。若能夠成功登錄,則系統(tǒng)會(huì)根據(jù)用戶的權(quán)限類型,使用戶進(jìn)入不同的界面。本模塊的功能包括:(1) 判斷用戶輸入的用戶名和密碼是否合法以及兩者是否匹配,對(duì)于正確與否,會(huì)給出相應(yīng)的提示。登錄功能模塊流程圖如圖33所示。這樣就保證了客戶與管理員操作模塊的分離,客戶與管理員功能模塊的分離不僅有利于整個(gè)物流系統(tǒng)相關(guān)信息的管理,而且有利于系統(tǒng)的維護(hù),本模塊的功能包括以下三個(gè)。然后管理員就會(huì)對(duì)訂單進(jìn)行審核。個(gè)人信息中用戶的編號(hào)是不能修改的,因?yàn)樗诳蛻粜畔⒈碇惺侵麈I,它唯一標(biāo)示該用戶。(3) 顯示個(gè)人訂單的歷史記錄每個(gè)客戶根據(jù)自己的需求可以對(duì)該物流系統(tǒng)提交多個(gè)訂單,每次提交的訂單都會(huì)保存在后臺(tái)數(shù)據(jù)庫(kù)中。訂單的歷史記錄不僅包括通過(guò)審核的訂單,還包括未通過(guò)審核的訂單。圖34 客戶服務(wù)模塊流程圖 倉(cāng)庫(kù)管理模塊倉(cāng)庫(kù)管理模塊就是對(duì)倉(cāng)庫(kù)中的商品進(jìn)行日常的管理,管理員登陸進(jìn)入該系統(tǒng)之后,就可以對(duì)商品進(jìn)行管理。該模塊包括以下幾個(gè)功能:(1) 采購(gòu)商品管理員進(jìn)入該界面以后,系統(tǒng)對(duì)倉(cāng)庫(kù)中的商品進(jìn)行審核,對(duì)數(shù)目較少的商品系統(tǒng)會(huì)把它們的詳細(xì)信息從數(shù)據(jù)庫(kù)中提取出來(lái)顯示在界面上供管理員查看,管理員根據(jù)情況采購(gòu)這些商品。點(diǎn)擊確定后采購(gòu)員即可對(duì)根據(jù)采購(gòu)單對(duì)商品進(jìn)行采購(gòu)。比如,若客戶訂購(gòu)商品的數(shù)量超出商品的庫(kù)存量,那么該訂單最終審核的狀態(tài)就是“未通過(guò)”;若訂單中商品的編號(hào)在數(shù)據(jù)庫(kù)商品信息表中不存在,則說(shuō)明倉(cāng)庫(kù)中沒(méi)有這種商品,那么系統(tǒng)訂單也是未通過(guò)審核的狀態(tài)。倉(cāng)庫(kù)管理模塊流程圖如圖35所示。該模塊具體包括以下兩個(gè)功能。增加車輛的時(shí)候,會(huì)對(duì)以下信息進(jìn)行添加:車輛編號(hào)、駕駛員編號(hào)等。(2) 車輛更改/刪除由于車輛本身各種信息的變動(dòng)、車輛駕駛員的更換使得管理員需要對(duì)車輛的信息進(jìn)行更改,的內(nèi)容包括:車輛的車牌號(hào)、車輛駕駛員的具體信息等。車輛管理模塊流程圖如圖36所示。信息查詢主要包括以下幾個(gè)方面:商品信息查詢、職工信息查詢、客戶信息查詢、訂單信息查詢。(2) 職工信息查詢通過(guò)輸入職工的編號(hào),系統(tǒng)根據(jù)職工編號(hào)到數(shù)據(jù)庫(kù)中查找該編號(hào)的職工信息,若存在,則從數(shù)據(jù)庫(kù)中取出該條記錄并顯示在界面上以便供管理員查看;若不存在,則返回空。(4) 訂單信息查詢通過(guò)輸入訂單的編號(hào),系統(tǒng)根據(jù)