旅游管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
旅游管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
旅游管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
旅游管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁
旅游管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、本科生畢業(yè)論文(設(shè)計(jì)) 家鄉(xiāng)旅游管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 姓名李慧 學(xué)號(hào) 專業(yè)計(jì)算機(jī)科學(xué)與技術(shù) 指導(dǎo)教師李潔穎 2013 年 5 月 27 日 摘要 目前,旅游業(yè)已成為全球經(jīng)濟(jì)中發(fā)展勢(shì)頭最強(qiáng)勁和規(guī)模最大的產(chǎn)業(yè)之一,互聯(lián)網(wǎng)的 興起給旅游業(yè)帶來了新的契機(jī)。旅游網(wǎng)站逐漸成為旅游信息管理的主要途徑。因此,開 發(fā)一個(gè)穩(wěn)定的適用性好的旅游管理系統(tǒng)具有非常重要的意義。在對(duì)現(xiàn)有旅游查詢網(wǎng)站的 分析和比較的基礎(chǔ)上,依循面向?qū)ο筌浖_發(fā)過程,設(shè)計(jì)出客戶端基于 Web 瀏覽器,服 務(wù)器端基于 JSP 和 Servlet,數(shù)據(jù)源基于關(guān)系型數(shù)據(jù)庫的三層框架,完成 JSP 頁面設(shè)計(jì)、 服務(wù)器端核心請(qǐng)求的處理以及對(duì)數(shù)據(jù)庫的同步

2、更新。以旅游管理系統(tǒng)的應(yīng)用實(shí)例實(shí)現(xiàn)了 這個(gè)方案。該系統(tǒng)可以實(shí)現(xiàn)游客分類查詢路線信息.路線預(yù)定,在線選購物品和結(jié)賬。 系統(tǒng)管理員查詢、修改、刪除和添加交通和線路,產(chǎn)品信息。系統(tǒng)工作穩(wěn)定、操作簡(jiǎn)單、 維護(hù)方便。 關(guān)鍵詞:旅游;安陽;管理系統(tǒng) Abstract At present , tourism is one of the most developing and the biggest large scale industry in the world. Internet brings tourism to a new turning point. Tourist information is

3、 managed mainly by tourism web site instead .As a result , it is very important to develop a flexible tourism management system. On the base of the analysis of the current tourism web sites, complied with the process of OOD, a three-layer system is designed, consisted of client based on web browser,

4、 server based on JSP and Servlet and data source based on relational database. We finish the design of the JSP pages, the core response to request from user and the synchronous update of the database, and develop a tourism management system to implement the design. The system can implement these fun

5、ctions as following: classified route information query for tourist, route reservation information for administrator, online shopping and purchase, and administrator can add, query, modify or delete the traffic、route and goods information. This system is stable, reliable and quite simple in operatio

6、n .The maintenance is also convenient. Key Words: Travel, AnYan ,Management System 目錄 1 引言 .1 2 系統(tǒng)開發(fā)的關(guān)鍵技術(shù) .2 2.1 系統(tǒng)的 MVC 結(jié)構(gòu) .2 2.2 系統(tǒng)的開發(fā)平臺(tái) .2 2.2.1 Myeclipse 簡(jiǎn)介.2 2.2.2 Sql Server 2005 簡(jiǎn)介.3 2.3 系統(tǒng)使用的技術(shù) .4 2.3.1 JAVA 語言.4 2.3.2 JSP 技術(shù).4 2.3.3 JavaScript 技術(shù).5 3 旅游管理系統(tǒng)需求分析 .6 3.1 系統(tǒng)需求分析 .6 3.1.1 游客管理模塊

7、 .6 3.1.2 購物車模塊 .6 3.1.3 交通模塊 .6 3.1.4 旅行社模塊 .7 3.1.5 新聞模塊 .7 3.1.6 當(dāng)?shù)靥厣K .7 3.2 系統(tǒng)性能指標(biāo) .7 4 系統(tǒng)設(shè)計(jì) .8 4.1 系統(tǒng)設(shè)計(jì)總體要求 .8 4.2 系統(tǒng)模塊設(shè)計(jì) .8 4.1.1 數(shù)據(jù)庫設(shè)計(jì) .9 4.3 系統(tǒng)功能設(shè)計(jì) .13 4.3.1 頁面設(shè)計(jì) .13 4.3.2 游客功能設(shè)計(jì) .13 4.3.3 系統(tǒng)管理員功能設(shè)計(jì) .13 4.3.4 旅游社管理設(shè)計(jì) .14 4.4 關(guān)鍵技術(shù)的實(shí)現(xiàn) .15 4.4.1 漢字顯示的實(shí)現(xiàn) .15 4.4.2 文件上傳功能的實(shí)現(xiàn) .17 4.4.3 頁面間參數(shù)傳遞的

8、實(shí)現(xiàn) .18 4.4.4 數(shù)據(jù)庫連接技術(shù) .19 5 系統(tǒng)的實(shí)現(xiàn) .22 5.1 系統(tǒng)環(huán)境配置 .22 5.2 主要功能模塊的實(shí)現(xiàn) .23 5.2.1 頁面登陸的設(shè)計(jì)與實(shí)現(xiàn) .23 5.2.2 購物車功能 .24 5.2.3 安陽美景模塊 .26 6 測(cè)試 .28 6.1 測(cè)試的基本概念 .28 6.2 測(cè)試的任務(wù)與目的 .28 6.2.1 測(cè)試的任務(wù) .28 6.2.2 測(cè)試的目的 .28 6.3 系統(tǒng)測(cè)試的步驟 .29 6.4 本系統(tǒng)測(cè)試 .29 6.2.1 用戶注冊(cè)登陸模塊測(cè)試 .29 6.2.2 購物車模塊測(cè)試 .30 6.2.3 后臺(tái)管理測(cè)試 .31 參考文獻(xiàn) .32 致 謝 .33

9、 1 引言 現(xiàn)代社會(huì)已經(jīng)步入了信息社會(huì)的世界。隨著互聯(lián)網(wǎng)的廣泛應(yīng)用,計(jì)算機(jī)技術(shù)、計(jì)算 機(jī)網(wǎng)絡(luò)技術(shù)、數(shù)據(jù)庫技術(shù)、管理技術(shù)的發(fā)展,對(duì)信息的處理和利用已經(jīng)深入到各行各業(yè), 已經(jīng)深入到人類生活中的各個(gè)方面。旅游是人們豐富多彩生活的重要組成部分之一,旅 游業(yè)已經(jīng)成為當(dāng)今世界上發(fā)展勢(shì)頭最強(qiáng)勁的產(chǎn)業(yè)之一,它是集吃、住、行、游、購、娛 六大要素于一身的綜合性產(chǎn)業(yè)。隨著旅游業(yè)的不斷發(fā)展,各個(gè)地方的旅游競(jìng)爭(zhēng)也越來越 激烈,為了吸引游客,越來越多的地方注重發(fā)展本地的旅游網(wǎng)路平臺(tái),通過互聯(lián)網(wǎng)這個(gè) 開放的窗口展示著自己獨(dú)特的魅力。 河南安陽是八大古都之一,著名歷史學(xué)家郭沫若先生游覽安陽時(shí)曾經(jīng)這樣贊嘆,洹 水安陽名不虛,

10、三千年前是帝都。中原文化殷創(chuàng)始,觀此勝于讀古書。這樣一座歷史文 化名城,中國優(yōu)秀旅游城市,甲骨文和周易的故鄉(xiāng),紅旗渠精神的誕生地。更應(yīng)該讓大 家所了解。 本著這樣的目的,結(jié)合本地旅游資源的實(shí)際情況和旅游發(fā)展的實(shí)際需求,開發(fā)了一 個(gè)旅游管理系統(tǒng),以此希望促進(jìn)本地旅游業(yè)的發(fā)展。本系統(tǒng)將要依循面向?qū)ο筌浖_發(fā) 過程,設(shè)計(jì)出客戶端基于 WEB 瀏覽器,服務(wù)器端基于 JSP 和 Servlet,數(shù)據(jù)源基于數(shù)據(jù) 庫的三層架構(gòu),采用 MVC 結(jié)構(gòu),完成 JSP 頁面設(shè)計(jì)、服務(wù)器端請(qǐng)求的處理以及對(duì)數(shù)據(jù)庫 的同步更新。該系統(tǒng)可以實(shí)現(xiàn)游客分類查詢安陽風(fēng)景、路線信息、路線預(yù)定,在線選購 物品和結(jié)賬。系統(tǒng)管理員查詢、

11、修改、刪除和添加交通、線路、風(fēng)景和產(chǎn)品信息。系統(tǒng) 工作穩(wěn)定、操作簡(jiǎn)單、維護(hù)方便。 通過分析了一些國內(nèi) 1用戶的注冊(cè)與登錄模塊 2旅游線路模塊外的旅游網(wǎng)站和根據(jù)國內(nèi)旅游者的習(xí)慣,設(shè)計(jì)了旅游管理系統(tǒng)的功 能模塊和業(yè)務(wù)流程。 3當(dāng)?shù)芈糜钨Y源模塊 4票務(wù)交通模塊 5旅行社模塊 6當(dāng)?shù)靥厣K 通過該旅游系統(tǒng),實(shí)現(xiàn)了旅游資源網(wǎng)絡(luò)化,可以更好的宣傳本地旅游資源。 2 系統(tǒng)開發(fā)的關(guān)鍵技術(shù) 2 2. .1 1 系系統(tǒng)統(tǒng)的的 M MV VC C 結(jié)結(jié)構(gòu)構(gòu) MVC 全名是 Model View Controller,是模型(model)視圖(view)控制器 (controller)的縮寫,一種軟件設(shè)計(jì)典范,用于

12、組織代碼用一種業(yè)務(wù)邏輯和數(shù)據(jù)顯示分 離的方法,這個(gè)方法的假設(shè)前提是如果業(yè)務(wù)邏輯被聚集到一個(gè)部件里面,而且界面和用 戶圍繞數(shù)據(jù)的交互能被改進(jìn)和個(gè)性化定制而不需要重新編寫業(yè)務(wù)邏輯 MVC 被獨(dú)特的發(fā)展 起來用于映射傳統(tǒng)的輸入、處理和輸出功能在一個(gè)邏輯的圖形化用戶界面的結(jié)構(gòu)中。 通過這種方案,我們可以迅速地實(shí)現(xiàn)整個(gè)業(yè)務(wù),其優(yōu)勢(shì)和特點(diǎn)如下: Model(模型)層:由 JavaBean 來實(shí)現(xiàn),將具體的業(yè)務(wù)封裝在 Bean 內(nèi)部,具備安 全、高性能、可重用等優(yōu)秀的特征。 View(視圖)層:由 JSP 頁和 HTML 標(biāo)簽組成。這一層次的主要特點(diǎn)是和客戶交互, 進(jìn)行動(dòng)態(tài)頁面的展示。同時(shí)可以方便地進(jìn)行客戶

13、端的個(gè)性化定制。根據(jù)每個(gè)客戶的需求 來展示不同內(nèi)容的界面。 Controller(控制器)層:這一層是將 View 和 Model 的這兩層進(jìn)行最大限度分離 的工具??梢杂?Servlet 來實(shí)現(xiàn),Servlet 和 JSP 雖然同樣都屬于頁面展示工具,但分 屬兩層。主要在于 JSP 以腳本語言的形式存在, 它的主要優(yōu)勢(shì)是進(jìn)行動(dòng)態(tài)數(shù)據(jù)的 Web 展示,而 Servlet 是一個(gè)完整的 Java 程序,進(jìn)行業(yè)務(wù)的調(diào)用和流程的處理,由于 Servlet 控制頁面跳轉(zhuǎn)速度很快,所以作為控制器可以最大限度發(fā)揮它的優(yōu)點(diǎn)。 通過這種模型的建立,我們的應(yīng)用系統(tǒng)具備了非常好的性能和可擴(kuò)展性。將業(yè)務(wù)組 件和展示

14、頁面進(jìn)行分離,并通過 Controller 來描述調(diào)用關(guān)系,一方面可以提高效率, 另一方面也可以增加系統(tǒng)擴(kuò)充的能力,使我們的系統(tǒng)可以進(jìn)行最快速度的業(yè)務(wù)擴(kuò)展,以 滿足不同用戶、不同階段、各種各樣的業(yè)務(wù)需求。 2 2. .2 2 系系統(tǒng)統(tǒng)的的開開發(fā)發(fā)平平臺(tái)臺(tái) 2.2.1 Myeclipse 簡(jiǎn)介 MyEclipse企業(yè)級(jí)工作平臺(tái)(MyEclipse Enterprise Workbench)是對(duì)EclipseIDE 的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫和JavaEE的開發(fā)、發(fā)布以及應(yīng)用程序服務(wù)器的整合方 面極大的提高工作效率。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào) 試、測(cè)試和發(fā)布功

15、能,完整支持HTML,Struts,JSP,CSS,Javascript,還有 Spring,SQL,Hibernate。MyEclipse 是一個(gè)十分優(yōu)秀的用于開發(fā)Java,J2EE的Eclipse插 件集合,MyEclipse的功能強(qiáng)大,支持廣泛,尤其是對(duì)各種開源產(chǎn)品的支持十分不錯(cuò)。 MyEclipse目前支持JavaServlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3, JDBC數(shù)據(jù)庫鏈接工具等多項(xiàng)功能。可以說MyEclipse幾乎囊括了目前所有主流開源產(chǎn)品 的專屬eclipse開發(fā)工具。 MyEclipse的實(shí)際價(jià)值來自其發(fā)布的大量的可視化

16、開發(fā)工具和實(shí)用組件。如 CCS/JS/HTML/XML的編輯器,幫助創(chuàng)建EJB和Struts項(xiàng)目的向?qū)Рa(chǎn)生項(xiàng)目的所有主要的 組件如Action/Session Bean/Form等,此外還包含編輯Hibernate配置文件和執(zhí)行SQL語 句的工具。和.NET平臺(tái)開發(fā)工具VS20003/VS2005以及以前的快速開發(fā)RAD工具 Delphi,PowerBuilder等相比,Java/JSP應(yīng)用開發(fā)的低效率一直是個(gè)缺陷。直到 Eclipse和MyEclispe等出現(xiàn)后,情況才有所改觀(尤其是MyEclispe等可視化開發(fā)插件) ,大大提高了開發(fā)效率。 新版本MyEclipse提供了AJAX、St

17、ruts Development、Hibernate Tools、Spring IDE Integration等功能。這些功能毫無疑問可以簡(jiǎn)化Web應(yīng)用開發(fā),并對(duì) Struts、Hibernate、Spring等開發(fā)框架的廣泛應(yīng)用起到了非常好的促進(jìn)作用。此外 MyEclipse還包含大量由其他組織開發(fā)的開源插件,Genuitec增強(qiáng)了這些插件的功能并 且撰寫了很多實(shí)用文檔便于開發(fā)者學(xué)習(xí)。綜上所述,MyEclipse插件對(duì)加速Eclipse的流 行起到了很重要的作用,并大大簡(jiǎn)化了復(fù)雜Java/JSP應(yīng)用的開發(fā)。 2.2.2 Sql Server 2005 簡(jiǎn)介 SQL Server 2005 是

18、一個(gè)全面的數(shù)據(jù)庫平臺(tái),使用集成的商業(yè)智能 BI 工具提供了 企業(yè)級(jí)的數(shù)據(jù)管理。SQL Server 2005 數(shù)據(jù)庫引擎為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更 安全可靠的存儲(chǔ)功能,使您可以構(gòu)建和管理用于業(yè)務(wù)的高可用和高性能的數(shù)據(jù)應(yīng)用程序。 SQL Server 2005 數(shù)據(jù)引擎是本企業(yè)數(shù)據(jù)管理解決方案的核心。此外 SQL Server 2005 結(jié)合了分析、報(bào)表、集成和通知功能。這使您的企業(yè)可以構(gòu)建和部署經(jīng)濟(jì)有效的 BI 解 決方案,幫助您的團(tuán)隊(duì)通過記分卡、Dashboard、Web services 和移動(dòng)設(shè)備將數(shù)據(jù)應(yīng)用 推向業(yè)務(wù)的各個(gè)領(lǐng)域。 與 Microsoft Visual Studio、

19、Microsoft Office System 以及新的開發(fā)工具包 (包括 Business Intelligence Development Studio)的緊密集成使 SQL Server 2005 與眾不同。無論您是開發(fā)人員、數(shù)據(jù)庫管理員、信息工作者還是決策者,SQL Server 2005 都可以為您提供創(chuàng)新的解決方案,幫助您從數(shù)據(jù)中更多地獲益。 Microsoft 仔細(xì)傾聽了您的反饋,并對(duì)行業(yè)進(jìn)行了認(rèn)真研究,全世界的 Microsoft 研究團(tuán)隊(duì)共同努力,經(jīng)過創(chuàng)造性思索才最終向您奉獻(xiàn)出這一引入了上百種新增功能或改 進(jìn)功能的 SQL Server 2005。這些功能將有助于您在以下三個(gè)

20、主要方面提高業(yè)務(wù): 1企業(yè)數(shù)據(jù)管理 SQL Server 2005 針對(duì)行業(yè)和分析應(yīng)用程序提供了一種更安全可靠和更高效的數(shù)據(jù) 平臺(tái)。SQL Server 的最新版本不僅是迄今為止 SQL Server 的最大發(fā)行版本,而且是最 為可靠安全的版本。 2開發(fā)人員生產(chǎn)效率 SQL Server 2005 提供了一種端對(duì)端的開發(fā)環(huán)境,其中涵蓋了多種新技術(shù),可幫助 開發(fā)人員大幅度提高生產(chǎn)效率。 3商業(yè)智能 SQL Server 2005 的綜合分析、集成和數(shù)據(jù)遷移功能使各個(gè)企業(yè)無論采用何種基礎(chǔ) 平臺(tái)都可以擴(kuò)展其現(xiàn)有應(yīng)用程序的價(jià)值。構(gòu)建于 SQL Server 2005 的 BI 解決方案使所 有員工可以

21、及時(shí)獲得關(guān)鍵信息,從而在更短的時(shí)間內(nèi)制定更好的決策。 2 2. .3 3 系系統(tǒng)統(tǒng)使使用用的的技技術(shù)術(shù) 2.3.1 JAVA 語言 Java語言誕生于20世紀(jì)90年代的初期,最初是以智能家電的芯片語言出現(xiàn)的。但是 很快,人們發(fā)現(xiàn)了它有更廣闊的用武之地,由于它適用于Internet環(huán)境,引起計(jì)算機(jī)界 的廣泛關(guān)注,迅速發(fā)展成計(jì)算機(jī)網(wǎng)絡(luò)編程語言。 Java語言備受推崇,因其確實(shí)可稱得上是新一代編程語言,具有眾多優(yōu)點(diǎn),它簡(jiǎn)單、 面向?qū)ο?、可移植、與硬件無關(guān)、系統(tǒng)強(qiáng)健安全、具有很高的性能,并提供了分布性、 多線程、動(dòng)態(tài)性的支持。 2.3.2 JSP 技術(shù) JSP(Java Server Pages)是由

22、Sun公司在java語言上開發(fā)出來的一種動(dòng)態(tài)網(wǎng)頁制作 技術(shù),JSP規(guī)范是Web服務(wù)器、應(yīng)用服務(wù)器、交易系統(tǒng)、以及開發(fā)工具供應(yīng)商間廣泛合作 的結(jié)果,使您可以將網(wǎng)頁中的動(dòng)態(tài)部分和靜態(tài)的HTML相分離。 1將內(nèi)容的生成和顯示進(jìn)行分離 使用JSP技術(shù),Web頁面開發(fā)人員可以使用HTML或者XML標(biāo)識(shí)來設(shè)計(jì)和格式化最終頁 面。使用JSP標(biāo)識(shí)或者小腳本來生成頁面上的動(dòng)態(tài)內(nèi)容。生成內(nèi)容的邏輯被封裝在標(biāo)識(shí) 和JavaBeans組件中,并且捆綁在小腳本中,所有的腳本在服務(wù)器端運(yùn)行。 2強(qiáng)調(diào)可重用的組件 絕大多數(shù) JSP 頁面信賴于可重用的、跨平臺(tái)的組件(JavaBeans 或者 Enterprise- Java

23、BeansTM組件)來執(zhí)行應(yīng)用程序所要求的更為復(fù)雜的處理。開發(fā)人員能夠共享和交換 執(zhí)行普通操作的組件,井使得這些組件為更多的使用者或者客戶團(tuán)體所使用6。 3采用標(biāo)識(shí)簡(jiǎn)化頁面開發(fā) Web頁面開發(fā)人員不會(huì)都是熟悉腳本語言的編程人員。JSP技術(shù)封裝了許多功能,這 些功能是在生成與JSP相關(guān)的XML標(biāo)識(shí)的動(dòng)態(tài)內(nèi)容時(shí)所需要的。標(biāo)準(zhǔn)的JSP標(biāo)識(shí)能夠訪問 和實(shí)例化JavaBeans組件、設(shè)置或者檢索組件屬性、下載Applet,以及執(zhí)行用其他方法 更難于編碼和耗時(shí)的功能。 4健壯性與安全性 由于JSP頁面的內(nèi)置腳本語言是基于Java編程語言的,且都被編譯為JavaServlet, 它就具有Java技術(shù)的所有好

24、處,包括健壯的存儲(chǔ)管理和安全性7。 5良好的移植性 作為Java平臺(tái)的一部分,JSP擁有Java編程語言“一次編寫,各處運(yùn)行”的特點(diǎn)。 隨著越來越多的供應(yīng)商將JSP支持添加到他們的產(chǎn)品中,可以使用自己所選擇的服務(wù)器 和工具,而且更改工具或服務(wù)器并不影響當(dāng)前的使用。 6企業(yè)級(jí)的擴(kuò)展性和性能 當(dāng)與 Java2 平臺(tái),企業(yè)版(J2EE)和 EnterpriseJavaBeans 技術(shù)整合時(shí),JSP 頁面將 提供企業(yè)級(jí)的擴(kuò)展性和性能,這企業(yè)中部對(duì)于虛擬署基于 Web 的應(yīng)用是必需的。 2.3.3 JavaScript 技術(shù) JavaScript是一種基于對(duì)象(Object)和事件驅(qū)動(dòng)(Event Dr

25、iven)并具有安全性 能的腳本設(shè)計(jì)語言,它可以鑲嵌在HTML代碼中的特殊類型代碼,這些代碼可以由瀏覽器 解釋執(zhí)行,它使網(wǎng)頁開發(fā)者可以更有效地控制頁面。而且JavaScript是一種面向?qū)ο蟮?語言,可以操控瀏覽器腳本對(duì)象模型所支持的各種標(biāo)準(zhǔn)對(duì)象,如當(dāng)前窗口、瀏覽器本身 信息、URL、HTML文檔等等,并能對(duì)用戶觸發(fā)事件做出即時(shí)響應(yīng),諸如單擊鼠標(biāo)、表單 操作等,而且這些都不需要客戶機(jī)與服務(wù)器的交互通信,既為用戶提供了更快速的操作, 又減小了服務(wù)器端的負(fù)擔(dān),十分適合于編制交互網(wǎng)頁和較小的編程任務(wù)。 JavaScript是一種解釋性語言,它不需要對(duì)JavaScript程序進(jìn)行預(yù)先編譯而產(chǎn)生可 執(zhí)行

26、的機(jī)器代碼,只是在程序執(zhí)行時(shí)才由一個(gè)內(nèi)置于瀏覽器中的JavaScript解釋器將源 代碼動(dòng)態(tài)地處理成可執(zhí)行代碼。目前流行的瀏覽器都具有這種解釋器。從Web發(fā)布角度 來看,它的這種特性使它比編譯性語言更加易于編程和使用。 由于JavaScript是由Java繼承而來的,因此它是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言。 JavaScript中的對(duì)象有兩個(gè)組成部分狀態(tài)和行為,或者說變量(屬性)和函數(shù)(方 法)??梢杂肑avaScript的對(duì)象來模擬現(xiàn)實(shí)生活中的各種實(shí)例,從而大大方便了程序的 設(shè)計(jì)。利用對(duì)象的繼承性,可以使很多精心設(shè)計(jì)的代碼能夠重新使用,從而減少了程序 設(shè)計(jì)人員的重復(fù)工作量而節(jié)省了時(shí)間。 3 旅游

27、管理系統(tǒng)需求分析 該系統(tǒng)作為旅游管理系統(tǒng)的 web 端實(shí)現(xiàn).,其主要功能是方便游客對(duì)安陽的風(fēng)土人情 了解,特產(chǎn)購買和旅行線路的查詢和預(yù)定,及特別提供單獨(dú)的管理員權(quán)限以方便管理員 對(duì)各個(gè)模塊進(jìn)行查添刪改操作。另外為了實(shí)現(xiàn)商務(wù)價(jià)值而設(shè)立了旅行社管理模塊,方便 旅行社查看路線預(yù)定情況。 3 3. .1 1 系系統(tǒng)統(tǒng)需需求求分分析析 為了方便游客和管理員及旅行社三方對(duì)該系統(tǒng)的操作和運(yùn)用,現(xiàn)對(duì)該系統(tǒng)針對(duì)不同 用戶的需求做一個(gè)分析。 3.1.1 游客管理模塊 為了方便信息的查詢和對(duì)安陽旅游的了解,系統(tǒng)允許非注冊(cè)用戶瀏覽。游客可以查 看到各個(gè)旅行社發(fā)布的旅游路線信息,上面有很詳細(xì)的線路介紹,酒店預(yù)定的情況行

28、程 安排情況。另外可以瀏覽整個(gè)網(wǎng)站的一些安陽風(fēng)情介紹,特產(chǎn)和特色小吃等等。但是考 慮到一些功能涉及到一些基礎(chǔ)信息,所以在其他功能如線路預(yù)定,購物車功能等需要游 客先注冊(cè)然后登陸系統(tǒng)才能使用。在設(shè)想時(shí)考慮到現(xiàn)在的網(wǎng)上購物已經(jīng)成為現(xiàn)在一種潮 流,所以在該系統(tǒng)上設(shè)計(jì)了購物車這個(gè)特別的模塊,方便游客可以預(yù)購物品。 3.1.2 購物車模塊 在這個(gè)購物車模塊中主要實(shí)現(xiàn)一個(gè)物品的預(yù)購,即實(shí)現(xiàn)在線的查詢和購買結(jié)帳。游 客必須是注冊(cè)登陸才能在安陽特產(chǎn)這個(gè)模塊中進(jìn)行購買和結(jié)帳,或者是查看購物車的功 能。為了保障游客的購買需求能夠準(zhǔn)確的被管理員搜集,這里需要游客填寫的是比較準(zhǔn) 確的聯(lián)絡(luò)信息和個(gè)人信息。 3.1.3

29、交通模塊 旅游和交通如航班、火車是密切相連的,所以在這個(gè)網(wǎng)站上必須要有一個(gè)交通信息 的發(fā)布和管理功能,以便游客的查詢和了解。交通管理員可以登陸交通管理模塊,確認(rèn) 航班,船,火車的預(yù)定情況,也可以通過管理修改和增加交通信息。游客可以瀏覽前臺(tái) 的交通信息,通過城市到城市,查詢航班、火車班次交通的票務(wù)信息,了解航班的發(fā)出 時(shí)間和到達(dá)時(shí)間,了解更為詳細(xì)的信息。 3.1.4 旅行社模塊 這個(gè)系統(tǒng)為了滿足更多的旅行社在系統(tǒng)中發(fā)布旅游路線信息,特別設(shè)置了多個(gè)旅行 社的管理方式,每個(gè)旅行社可以通過自己的ID和密碼登陸后臺(tái),查看自己旅行社的路線 預(yù)定信息??紤]到操作的簡(jiǎn)單,也為了避免操作的沖突,旅行社只有查看預(yù)

30、定情況的權(quán) 限,而不涉及旅游線路的管理功能。對(duì)于旅游線路的發(fā)布修改刪除等功能,旅行社可以 交由系統(tǒng)管理員來完成。 3.1.5 新聞模塊 旅游新聞往往是吸引游客目光的一個(gè)模塊,通過這個(gè)平臺(tái)游客可以及時(shí)的了解一些 相關(guān)有用的信息,例如:優(yōu)惠信息、天氣信息等等。所以本網(wǎng)站也需要設(shè)置一個(gè)新聞模 塊發(fā)布和管理的功能模塊來發(fā)布一些當(dāng)?shù)氐囊恍┞糜涡畔ⅲ苑奖阌慰偷臑g覽。 3.1.6 當(dāng)?shù)靥厣K 一個(gè)當(dāng)?shù)氐穆糜尉W(wǎng)站,最關(guān)鍵的一個(gè)功能就是展示當(dāng)?shù)氐囊恍┨厣?,通過自己的特 色吸引游客的目光。一個(gè)旅游網(wǎng)站只有能夠成功的展示當(dāng)?shù)氐奶厣@個(gè)網(wǎng)站才能夠說是 成功的。所以本網(wǎng)站也需要設(shè)置一個(gè)功能模塊來展示當(dāng)?shù)氐奶厣?3

31、 3. .2 2 系系統(tǒng)統(tǒng)性性能能指指標(biāo)標(biāo) 為實(shí)現(xiàn)上述需求,本系統(tǒng)采用JSP技術(shù)及web數(shù)據(jù)庫技術(shù)構(gòu)成基于web的旅游管理系 統(tǒng)。 1實(shí)用性 旅游管理系統(tǒng)的開發(fā)應(yīng)將系統(tǒng)的實(shí)用性和實(shí)時(shí)性放在首要位置。系統(tǒng)的設(shè)計(jì)應(yīng)最大 限度發(fā)揮計(jì)算機(jī)的高速處理、海量存儲(chǔ)能力。在軟件設(shè)計(jì)中,以方便用戶使用為標(biāo)準(zhǔn), 做到統(tǒng)一編碼規(guī)則、統(tǒng)一界面風(fēng)格。 2可靠性 由于系統(tǒng)性質(zhì)的要求,本系統(tǒng)的可靠性要求很高。系統(tǒng)在運(yùn)行中要不發(fā)生或極少發(fā) 生故障,在偶然事故及操作失誤時(shí),系統(tǒng)應(yīng)具有較強(qiáng)的處理能力,而不應(yīng)造成信息的丟 失和破壞。 3安全性 通過旅行社管理系統(tǒng)可以修改及刪除旅游線路和介紹的信息,和一些游客的購物清 單以及基本信息

32、,因此對(duì)系統(tǒng)的安全性要求比較高,一方面要保證旅行社用戶各項(xiàng)信息 的安全,另一方面又要在非常情況下保證數(shù)據(jù)的丟失減少到最低限度。 4 系統(tǒng)設(shè)計(jì) 4 4. .1 1 系系統(tǒng)統(tǒng)設(shè)設(shè)計(jì)計(jì)總總體體要要求求 系統(tǒng)設(shè)計(jì)是旅游管理系統(tǒng)開發(fā)過程的一個(gè)重要階段,包括兩個(gè)方面,首先是總體結(jié) 構(gòu)的設(shè)計(jì),其次是具體功能模塊的設(shè)計(jì)。其主要目的是為系統(tǒng)實(shí)現(xiàn)(如編程、調(diào)試、試 運(yùn)行等)制定藍(lán)圖。在系統(tǒng)設(shè)計(jì)階段,主要任務(wù)就是在各種技術(shù)和實(shí)施方法中權(quán)衡利弊, 精心設(shè)計(jì),合理地使用各種資源,最終勾畫出新系統(tǒng)的詳細(xì)設(shè)計(jì)方案。系統(tǒng)設(shè)計(jì)的原則 為: 1系統(tǒng)性。系統(tǒng)是作為統(tǒng)一整體而存在的,因此,在系統(tǒng)設(shè)計(jì)中,要從整個(gè)系統(tǒng)的 角度進(jìn)行考慮,

33、系統(tǒng)的代碼要統(tǒng)一,設(shè)計(jì)規(guī)范要標(biāo)準(zhǔn),傳遞語言要盡可能一致,對(duì)系統(tǒng) 的數(shù)據(jù)采集要做到數(shù)出一處、全局共享,使一次輸入得到多次利用。 2靈活性。為保持系統(tǒng)的長(zhǎng)久生命力,要求系統(tǒng)具有很強(qiáng)的環(huán)境適應(yīng)性。為此,系 統(tǒng)應(yīng)具有較好的開放性和結(jié)構(gòu)的可變性。在系統(tǒng)設(shè)計(jì)中,應(yīng)盡量采用模塊化結(jié)構(gòu),提高 各模塊的獨(dú)立性,盡可能減少模塊間的數(shù)據(jù)藕合,使各子系統(tǒng)間的數(shù)據(jù)依賴減至最低限 度。這樣,既便于模塊的修改,又便于增加新的內(nèi)容,提高系統(tǒng)適應(yīng)環(huán)境變化的能力。 3可靠性??煽啃允侵赶到y(tǒng)抵御外界干擾時(shí)的恢復(fù)能力。一個(gè)成功的管理系統(tǒng)必須 具有較高的可靠性,如安全保密性、檢錯(cuò)及糾錯(cuò)能力、抗病毒能力等。 4經(jīng)濟(jì)性。經(jīng)濟(jì)性是指在滿足系

34、統(tǒng)需求的前提下,盡可能減少系統(tǒng)的開銷。一方面, 在硬件投資上不能盲目追求技術(shù)上的先進(jìn),而應(yīng)以滿足應(yīng)用需要為前提;另一方面,系 統(tǒng)設(shè)計(jì)應(yīng)盡量避免不必要的復(fù)雜化,各模塊應(yīng)盡量簡(jiǎn)潔,以便縮短處理流程。 5美觀性。簡(jiǎn)潔的界面設(shè)計(jì),在設(shè)計(jì)過程中,以人為本,用易于理解的圖標(biāo),用有 意義的標(biāo)題,簡(jiǎn)明、一致、快捷并可靠的界面。 4 4. .2 2 系系統(tǒng)統(tǒng)模模塊塊設(shè)設(shè)計(jì)計(jì) 河南省安陽市旅游管理系統(tǒng)是真正為用戶考慮的網(wǎng)絡(luò)平臺(tái),以滿足客戶實(shí)際需要而 設(shè)計(jì)的。本系統(tǒng)參照真實(shí)的旅游網(wǎng)站所做,再結(jié)合本地旅游需求,這樣可以更直接體現(xiàn) 本網(wǎng)站的特點(diǎn)和價(jià)值所在。該系統(tǒng)屬于 B/S 模式,可以通過前臺(tái)的操作界面進(jìn)行網(wǎng)站的 訪問

35、和瀏覽,而后臺(tái)是對(duì)數(shù)據(jù)表的操作對(duì)前臺(tái)相關(guān)數(shù)據(jù)的管理,對(duì)數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的更 新和修改等操作,數(shù)據(jù)庫可以單獨(dú)存放在一個(gè)服務(wù)器上,而客戶端的模塊分別安裝在相 應(yīng)的機(jī)器上。該系統(tǒng)包括如下五個(gè)主要模塊:旅游信息管理、旅游線路、客戶信息管理、 旅行社管理、票務(wù)交通、各個(gè)模塊主要功能如下: 1旅游信息管理:管理員可以對(duì)景點(diǎn)、新聞的增加、查看、刪除、修改等操作。通 過這個(gè)模塊可以讓讓游客可以更清楚更直觀的進(jìn)行對(duì)比和選擇。 2旅游線路:管理員對(duì)旅游線路進(jìn)行管理,游客可以瀏覽旅游線路信息。 3客戶信息管理:主要包括客戶注冊(cè)與登錄模塊:客戶可以方便的進(jìn)行注冊(cè)和登錄, 還可以對(duì)自己的信息進(jìn)行修改,只有登錄之后才可以進(jìn)

36、行旅行社的預(yù)訂查看更多信息。 4旅行社管理:管理員負(fù)責(zé)對(duì)旅行社的管理。 5票務(wù)交通:管理員對(duì)票務(wù)信息進(jìn)行管理。 圖 4-1 系統(tǒng)功能圖 4.1.1 數(shù)據(jù)庫設(shè)計(jì) 數(shù)據(jù)庫的設(shè)計(jì)與整個(gè)系統(tǒng)的設(shè)計(jì)是融合在一起的,要做到動(dòng)態(tài)的查詢和顯示數(shù)據(jù), 就必須使用數(shù)據(jù)庫。本系統(tǒng)是一個(gè)以數(shù)據(jù)處理為主的信息管理系統(tǒng),因此數(shù)據(jù)庫的設(shè)計(jì) 在整個(gè)系統(tǒng)的設(shè)計(jì)中占有很大的比重。 整個(gè)系統(tǒng)的數(shù)據(jù)庫由9個(gè)表組成,分別是user、lvyouxianlu、orders、fengjing、 news、anyangfengjing、product、product_order、jiaotong。 user表保存網(wǎng)站的用戶基本信息,用戶分為普

37、通用戶和系統(tǒng)管理員。user表包含7 個(gè)字段:序列號(hào),用戶標(biāo)識(shí),用戶類型,用戶姓名,密碼,聯(lián)系電話,電子郵件。序列 號(hào)是自增不重復(fù)流水號(hào),作為user表的主鍵,同時(shí)也作為orders表和product_order的 外鍵。用戶標(biāo)識(shí)是文本類型,是用戶登錄名稱,不能重復(fù)。用戶類型是枚舉類型 (super,normal),表示用戶是系統(tǒng)管理員還是普通用戶。密碼是文本類型,用于用 戶登錄。用戶姓名,聯(lián)系電話,電子郵件是用戶的個(gè)人信息。 表4-1user表 字段名稱數(shù)據(jù)類型說明 ser 自動(dòng)編號(hào)序列號(hào) id 文本用戶標(biāo)識(shí) type 文本用戶類型 name 文本用戶姓名 password 文本用戶密碼 T

38、el 文本用戶聯(lián)系方式 email 文本用戶電子郵件 lvyouxianlu表保存旅行社提供的各條旅游線路,包含了14個(gè)字段。Id是自動(dòng)增長(zhǎng) 的流水號(hào),是lvyouxianlu表的主鍵。lxs是外鍵,關(guān)聯(lián)到旅行社表。其他字段是旅游線 路的基本信息,包括線路名稱,行程天數(shù),出發(fā)地,標(biāo)準(zhǔn)價(jià)格,豪華價(jià)格,超豪華價(jià)格, 具體行程安排,餐飲住宿條件,交通保險(xiǎn),導(dǎo)游門票,春節(jié)優(yōu)惠價(jià)格和其他內(nèi)容。具體 行程安排中將多天的安排存放在一起,中間用“-”分隔開。 表 4-2 lvyouxianlu 表 字段名稱數(shù)據(jù)類型說明 ser 自動(dòng)編號(hào)序列號(hào) xlmc 文本線路名稱 lxs 文本旅行社 xcts 文本行程天數(shù)

39、 cfd 文本出發(fā)地 bzd 文本標(biāo)準(zhǔn)等 hhd 文本豪華等 chhd 文本超豪華等 xcap 備注 行程安排(不同的日程的 內(nèi)容用 - 分隔) cyzs 文本餐飲住宿 jtbx 文本交通保險(xiǎn) dymp 文本導(dǎo)游門票 qtnr 文本其他內(nèi)容 cjjg 文本春節(jié)價(jià)格 orders表保存用戶網(wǎng)上申請(qǐng)的旅游線路的信息 表4-3orders表 字段名稱數(shù)據(jù)類型說明 id 文本用戶標(biāo)識(shí) date 文本訂購日期 type 文本產(chǎn)品類型 who 文本客戶姓名 number 文本產(chǎn)品數(shù)量 tel 文本聯(lián)系電話 no 文本用戶身份證號(hào) Fengjing表記錄了安陽各地的主要風(fēng)景,人文古跡的最新信息,并附有2張風(fēng)

40、景圖 片。Fengjing表包含了7個(gè)字段。 表4-4 Fengjing表 字段名稱數(shù)據(jù)類型說明 id 文本序列號(hào) name 文本風(fēng)景名稱 pic1 文本圖片 1 pic2 文本圖片 2 type 文本 所屬類別(因甲骨文而聞 名于世,人與自然的結(jié)合, 國家重點(diǎn)風(fēng)景名勝區(qū),國 家森林公園) Detial1 備注文字描述(段落 1) Detial2 備注文字描述(段落 2) news表存儲(chǔ)近期旅游熱點(diǎn)新聞。news表包含了4個(gè)字段。 表4-5 news表 字段名稱數(shù)據(jù)類型說明 id 文本序列號(hào) name 文本標(biāo)題 pic1 文本圖片 content 文本內(nèi)容 anyangfengqing表包含5

41、個(gè)字段。id是自增序列號(hào),主鍵。name是新聞標(biāo)題, detial1是新聞內(nèi)容,pic1是新聞圖片名稱。安陽風(fēng)情分4個(gè)類別,type是枚舉類型:安 陽美食,安陽文化,民族民俗,安陽珍奇。 表4-6anyangfengqing表 字段名稱數(shù)據(jù)類型說明 id 文本序列號(hào) name 文本標(biāo)題 pic1 文本圖片 content 文本內(nèi)容 product記錄各種安陽特產(chǎn)的相關(guān)資料。product表有7個(gè)字段:id是數(shù)字主鍵, name是產(chǎn)品名稱,content是產(chǎn)品描述,price是產(chǎn)品價(jià)格,danwei是產(chǎn)品計(jì)數(shù)單位, pic1是特產(chǎn)圖樣,from是產(chǎn)品產(chǎn)地。 表4-7 product表 字段名稱數(shù)

42、據(jù)類型說明 id 自動(dòng)編號(hào)序列號(hào) name 文本特產(chǎn)名稱 content 文本產(chǎn)品說明 price 文本價(jià)格 danwei 文本單價(jià) pic1 文本圖樣 from 文本產(chǎn)地 product_order表存儲(chǔ)用戶的訂單信息,有6個(gè)字段。name是外鍵,關(guān)聯(lián)到user表, tel,addr,product和quantity是訂單基本信息。 表4-8product_order表 字段名稱數(shù)據(jù)類型說明 id 文本產(chǎn)品 id quatity 文本數(shù)量 name 文本客戶姓名 tel 文本聯(lián)系電話 addr 文本地址 IDNumber 文本身份證號(hào) jiaotong表保存近期交通信息,包括飛機(jī),火車,輪船

43、3種交通工具的線路及時(shí)刻 信息。 表4-9jiaotong表 字段名稱數(shù)據(jù)類型說明 from 文本始發(fā)地 to 文本目的地 type 文本類型(飛機(jī)、火車、輪船) id 文本 號(hào)碼(航班號(hào)、列車車次、 輪船號(hào)) time1 文本出發(fā)時(shí)間 time2 文本到達(dá)時(shí)間 price 文本票價(jià) 4 4. .3 3 系系統(tǒng)統(tǒng)功功能能設(shè)設(shè)計(jì)計(jì) 4.3.1 頁面設(shè)計(jì) 主頁面是本網(wǎng)站的門戶,它包含了各個(gè)模塊的入口鏈接,部分熱點(diǎn)模塊的最新信息, 用戶注冊(cè),登陸,權(quán)限分配功能。 首頁通往各個(gè)子模塊的鏈接,使用http標(biāo)簽靜態(tài)實(shí)現(xiàn)。如: 旅游路線,聲明了一個(gè)到相對(duì)路徑j(luò)sp_tourist_track下 的lvyou

44、luxian.jsp鏈接。其他模塊以此類推。 4.3.2 游客功能設(shè)計(jì) 該模塊為用戶提供了安陽的旅游信息,并在此基礎(chǔ)上,為注冊(cè)會(huì)員提供在線訂購特 產(chǎn),預(yù)定旅游線路,預(yù)定航班等功能。非注冊(cè)用戶可以上網(wǎng)查看輝縣的旅游信息,用戶 能分類的了解到風(fēng)景,風(fēng)情,路線情況,交通信息,旅游新聞,等基本信息。為了避免 累贅的工作和一些惡意的欺詐,而特別設(shè)計(jì)了注冊(cè)與非注冊(cè)兩種用戶權(quán)限。 4.3.3 系統(tǒng)管理員功能設(shè)計(jì) 管理員通過注冊(cè)名被定義為super權(quán)限的用戶名登陸到系統(tǒng)后可以進(jìn)行除旅行社管 理外的其他所有模塊的管理操作。以票務(wù)交通模塊為例,管理員登陸后,在票務(wù)交通模 塊可以看到左邊有一個(gè)管理的標(biāo)簽,進(jìn)入后可以

45、進(jìn)行這個(gè)模塊的管理。管理員可以在這 里進(jìn)行對(duì)已有的交通信息修改和刪除操作,也可以通過左邊的增加按扭進(jìn)行對(duì)交通信息 增加。其他模塊的維護(hù)方式與票務(wù)交通模塊類似。通過后臺(tái)維護(hù)模塊,管理員能更直觀 的進(jìn)行操作,在對(duì)后臺(tái)數(shù)據(jù)庫進(jìn)行任何操作后,都可以立即觀察到效果,從而減少了錯(cuò) 誤發(fā)生的機(jī)率。管理員跟普通用戶的區(qū)別就在于權(quán)限不同,即是基于該網(wǎng)站的身份驗(yàn)證 和權(quán)限分配上。身份驗(yàn)證和權(quán)限分配實(shí)現(xiàn)的代碼如下: %String id = (String) request.getParameter(userName); String password = (String) request.getParameter

46、(password); try Statement stmt = dbConnection.getConnection().createStatement(); String sql1 = select * from user where id= + id + and password= + password + ; ResultSet rs1 = stmt.executeQuery(sql1); if (rs1.next() session.setAttribute(right,normal); String name = rs1.getString(name); String type =

47、 rs1.getString(type); if(type!=null session.setAttribute(userName, name); session.setAttribute(password, password); else session.setAttribute(userName, name); session.setAttribute(password, password); stmt.close(); response.sendRedirect(index.jsp); return; out.print(登陸失?。≌?qǐng)重新登陸); out.print( 返回 ); cat

48、ch (Exception e) out.println(數(shù)據(jù)庫連接錯(cuò)誤 + e); % 各個(gè)模塊的管理功能主要是對(duì)數(shù)據(jù)庫的操作,在此就不再贅述。 4.3.4 旅游社管理設(shè)計(jì) 旅行社管理員通過各個(gè)旅行社自己在這個(gè)系統(tǒng)中的ID號(hào)和密碼登陸后,可以查看預(yù) 定本旅行社的旅游路線情況,在這里由于假設(shè)旅行社與系統(tǒng)供應(yīng)商只存在著合作的關(guān)系, 旅行社可以提交自己的旅游路線信息給系統(tǒng)管理員,只能由系統(tǒng)管理員來操作旅游路線 信息,這樣提高了信息的安全性和各個(gè)旅行社競(jìng)爭(zhēng)的公平性。 4 4. .4 4 關(guān)關(guān)鍵鍵技技術(shù)術(shù)的的實(shí)實(shí)現(xiàn)現(xiàn) 4.4.1 漢字顯示的實(shí)現(xiàn) 在JSP的開發(fā)過程中,英文字符的表示一般不會(huì)出現(xiàn)問題,可

49、能出現(xiàn)的中文問題如 下: 1JSP頁面無法正確顯示中文,比如出現(xiàn)“?”或者亂碼; 2JSP頁面無法正確接收來自上一個(gè)頁面提交的中文表單; 3JSP從數(shù)據(jù)庫或者文件中讀出來的中文都是亂碼,寫進(jìn)去的中文也是亂碼。 這是跟Java中對(duì)字符的處理方式有關(guān)系的。英文字符一般都是以一個(gè)字符來表示, 編碼方式主要有: 1ASCII碼,美國國家信息交換標(biāo)準(zhǔn)碼,是7位編碼; 2ISO-8859-1碼,是8位編碼,它包含了ASCII碼,在西歐比較通用,它是Linux系 統(tǒng)的字符集,同時(shí)也是HTML的基礎(chǔ)字符集。 中文字符成千上萬,必須使用2個(gè)以上的字節(jié)來表示,不同的地區(qū)和系統(tǒng)都制定了 各自的編碼方式,這樣就產(chǎn)生了

50、很多種不同的編碼方式。常用的漢字編碼方式(字符集) 有如下幾種: 1GB2312碼,中華人民共和國國家標(biāo)準(zhǔn)漢字信息交換用編碼,是16位編碼,簡(jiǎn)稱國 標(biāo)碼; 2GBK是對(duì)GB2312的擴(kuò)展,包含GB2312的字符集; 3BIG5碼,是臺(tái)灣地區(qū)采用的編碼方式; 4UNICODE碼,是16位編碼,它是一個(gè)標(biāo)準(zhǔn),它的目標(biāo)是明白的表現(xiàn)每種人類語言 中的每種已知字符; 5UTF-8碼,是UNICODE的轉(zhuǎn)換格式,是一種不等長(zhǎng)的編碼。 多種編碼方式共存造成了漢字表示方式的不統(tǒng)一,也帶來了很多麻煩。Java對(duì)于多 語言的支持并不是很好,任何涉及Java的需要顯示漢字的軟件都會(huì)遇到漢字問題。既然 如此,在使用J

51、ava處理中文字符時(shí)就必須注意編碼問題。有以下幾點(diǎn)要特別注意: 1當(dāng)一個(gè)Java程序在運(yùn)行時(shí),所有的內(nèi)存中的字符串都是以UNICODE方式來表示的; 2Java程序接受一個(gè)字符串時(shí),程序?qū)⒃撟址畯脑淳幋a方式轉(zhuǎn)換為UNICODE編碼; 3Java程序輸出一個(gè)字符串時(shí),程序要將該字符串從UNICODE編碼轉(zhuǎn)換為目標(biāo)編碼 方式; 4Java程序輸出一個(gè)字符串時(shí),程序要將該字符串從UNICODE編碼轉(zhuǎn)換為目標(biāo)編碼 方式; 5在任何一個(gè)傳遞字符串的地方都可能出現(xiàn)編碼轉(zhuǎn)換。 在編寫涉及到中文的JSP頁面時(shí),要注意對(duì)編碼方式的考慮。主要的解決辦法是在 JSP中進(jìn)行編碼轉(zhuǎn)換。由于涉及到編碼的環(huán)節(jié)很多,因此中

52、文問題沒有一個(gè)統(tǒng)一的解決 方案,只能在出現(xiàn)問題的地方進(jìn)行具體分析,采取適當(dāng)措施。在海鮮酒樓管理系統(tǒng)中, 漢字亂碼主要分為兩種情況。 1中文表單提交字符串 當(dāng)頁面中的表單提交字符串時(shí),首先把字符串按照當(dāng)前頁面的編碼,轉(zhuǎn)化成字節(jié)串。 然后再將每個(gè)字節(jié)轉(zhuǎn)化成“%XX”的格式提交到 Web 服務(wù)器。比如,一個(gè)編碼為GB2312 的頁面,提交“中”這個(gè)字符串時(shí),提交給服務(wù)器的內(nèi)容為“%D6%D0”字節(jié)串的格式。 在服務(wù)器端,Web 服務(wù)器把收到的“%D6%D0”字節(jié)串轉(zhuǎn)化成0 xD6, 0 xD0UNICODE字符 串,然后再根據(jù) GB2312 編碼規(guī)則得到“中”字。 然而實(shí)際上,在將“字節(jié)串”轉(zhuǎn)化成“

53、UNICODE 字符串”時(shí),容易將“字節(jié)串”簡(jiǎn) 單地作為單字節(jié)字符串,采用每“一個(gè)字節(jié)”就是“一個(gè)字符”的方法進(jìn)行轉(zhuǎn)化。而在 非英文的環(huán)境中,應(yīng)該將“字節(jié)串”作為ANSI字符串,采用適當(dāng)?shù)木幋a來得到UNICODE 字符串,有可能“多個(gè)字節(jié)”才能得到“一個(gè)字符”。 在Tomcat服務(wù)器中,request.getParameter( )得到亂碼時(shí),常常是由于上述原因 造成的。默認(rèn)情況下,當(dāng)提交“%D6%D0”給Tomcat服務(wù)器時(shí),request.getParameter( )將 返回0 x00D6, 0 x00D0兩個(gè)UNICODE字符,而不是一個(gè)“中”字符。因此,我們需要使 用bytes =

54、string.getBytes (iso-8859-1) 進(jìn)行逆向操作,得到原始的字節(jié)串 “%D6%D0”,再用string = new String(bytes, GB2312) 重新得到正確的字符串 “中”。 在本系統(tǒng)中,輸出頁面按照GB2312進(jìn)行編碼,通過實(shí)現(xiàn)該設(shè)置。在實(shí)現(xiàn)添加用戶功能時(shí),從表單中獲取 用戶姓名等漢字信息后,要先用上述方法進(jìn)行編碼的轉(zhuǎn)換,以得到正確的字符形式。 2從數(shù)據(jù)庫讀取字符串 通過數(shù)據(jù)庫客戶端(JDBC)從數(shù)據(jù)庫服務(wù)器中讀取字符串時(shí),客戶端需要從服務(wù)器 獲知所使用的ANSI編碼。當(dāng)數(shù)據(jù)庫服務(wù)器發(fā)送字節(jié)流給客戶端時(shí),客戶端負(fù)責(zé)將字節(jié)流 按照正確的編碼轉(zhuǎn)化成UNICO

55、DE字符串。 本系統(tǒng)中,數(shù)據(jù)庫中的所有表均采用MyISAM類型、gb2312字符集、 Conlation:gb2312_chinese_ci。這樣保證了數(shù)據(jù)庫中字符編碼和網(wǎng)頁中字符編碼的統(tǒng) 一,數(shù)據(jù)庫中的漢字可以直接在網(wǎng)頁中顯示出來,網(wǎng)頁中具有相同編碼的漢字在數(shù)據(jù)庫 中也可以顯示為漢字。 4.4.2 文件上傳功能的實(shí)現(xiàn) 在新聞,安陽特產(chǎn),民族風(fēng)情模塊中都有圖片信息,數(shù)據(jù)庫中保存的是圖片文件所 在的相對(duì)位置和名稱信息。在管理員維護(hù)網(wǎng)站信息的時(shí)候,為了更便于操作,需要在向 數(shù)據(jù)庫增加或者修改信息的同時(shí),把圖片上傳到服務(wù)器相應(yīng)的位置。在 JSP 中,可以通 過標(biāo)簽上傳圖片。通過這種方式,文件以流的方

56、式發(fā)送到服務(wù)器端。 服務(wù)器通過將相應(yīng)的流操作,將文件重組并保存。但是這種方式的問題是,在這個(gè) form 里的其他非文件參數(shù),用普通的方式不能夠讀取正確的參數(shù)值,而將得到一個(gè) null。在這個(gè)問題上作者花了大量的時(shí)間精力進(jìn)行研究,發(fā)現(xiàn)其他參數(shù)同樣被轉(zhuǎn)化成流, 對(duì)這些參數(shù),也需要進(jìn)行流處理,才能得到原來正確的參數(shù)值。類 FileUtil 實(shí)現(xiàn)了上 述功能。 public static HashMap upLoad(HttpServletRequest request, String subpath) HashMap datamap = new HashMap(); try if (ServletF

57、ileUpload.isMultipartContent(request) DiskFileItemFactory dff = new DiskFileItemFactory(); dff.setRepository(newFile(d:/);dff.setSizeThreshold(); ServletFileUpload sfu = new ServletFileUpload(dff); sfu.setFileSizeMax();sfu.setSizeMax(); FileItemIterator fii = sfu.getItemIterator(request); while (fii

58、.hasNext() FileItemStream fis = fii.next(); if (!fis.isFormField() BufferedInputStream in = new BufferedInputStream(fis .openStream(); BufferedOutputStream out = new BufferedOutputStream( new FileOutputStream(new File( dbConnection.absolutePath + subpath+ / + fileName); Streams.copy(in, out, true);

59、datamap.put(fis.getFieldName(),fileName.substring(1); else BufferedInputStream in = new BufferedInputStream(fis.openStream(); /ByteArrayOutputStream bos = new ByteArrayOutputStream(); byte buffer = new bytein.available(); in.read(buffer); String contents = new String(buffer, UTF-8); datamap.put(fis.

60、getFieldName(),contents); catch (Exception e) return datamap; upLoad 方法是 FileUtil 類實(shí)現(xiàn) multipart/form-data 協(xié)議下文件與 form 參數(shù)上傳 的關(guān)鍵方法。HttpServletRequest request 中存放了上傳的文件流,String subpath 表示不同模塊的文件存放路徑。代碼中創(chuàng)建了一個(gè) HashMap datamap 準(zhǔn)本用于記錄所有 上傳的 form 參數(shù)。然后在 d:建立臨時(shí)文件夾,設(shè)置上傳文件大小,通過 FileItemIterator fii 分別處理上傳文件和參數(shù)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論