基于Java web 航空訂票系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)──用戶信息,用戶訂票_第1頁
基于Java web 航空訂票系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)──用戶信息,用戶訂票_第2頁
基于Java web 航空訂票系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)──用戶信息,用戶訂票_第3頁
基于Java web 航空訂票系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)──用戶信息,用戶訂票_第4頁
基于Java web 航空訂票系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)──用戶信息,用戶訂票_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

題目基于Javaweb航空訂票系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)系別數(shù)學(xué)與信息工程系專業(yè)年級2012級計(jì)算機(jī)科學(xué)與技術(shù)(移動互聯(lián)網(wǎng)方向)ii基于Javaweb航空訂票系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)──用戶信息,用戶訂票摘要:隨著社會發(fā)展的不斷進(jìn)步,民航事業(yè)的壯大,飛機(jī)票預(yù)定查詢系統(tǒng)在各機(jī)票預(yù)定網(wǎng)點(diǎn)中的作用也越顯重要。機(jī)票預(yù)定系統(tǒng)是為機(jī)場工作人員和客戶提供訂票退票等與機(jī)票相關(guān)內(nèi)容和管理的系統(tǒng),它具有開放體系結(jié)構(gòu)的、易擴(kuò)充的、易維護(hù)的、具有良好人機(jī)界面的優(yōu)點(diǎn).基于JAVAWEB的航空訂票系統(tǒng)采用MySQL來設(shè)計(jì)數(shù)據(jù)庫,并使常用的開發(fā)工具M(jìn)yeclipse,采用技術(shù)jsp、ajax、easyui以及主流J2EE架構(gòu)-SSH來實(shí)現(xiàn)系統(tǒng)。關(guān)鍵詞:機(jī)票訂購系統(tǒng);JavaWeb系統(tǒng);管理系統(tǒng);jsp;ajaxAbstract:Alongwiththeadvanceofsocialdevelopment,civilaviation,airticketreservationquerysystemintheroleoftheticketbookingoutletsaremoreimportant.Ticketreservationsystemisfortheairportstaffandcustomersbookingticketandticketrelatedcontentsandmanagementsystem,suchasithasopenarchitecture,easyexpansion,easymaintenance,andpossessestheadvantagesofgoodman-machineinterface.TheairlinereservationsystembasedonJAVAWEBuseMySQLtodesigndatabase,AndmakecommondevelopmenttoolsMyeclipse,JSP,AJAX,thetechniquesusedbyeasyUIandJ2EE-SSHtorealizethesystemarchitectureofthemainstream.Keywords:Ticketorderingsystem;JavaWebsystem;Managementsystem;JSP;AJAX目錄第1章概論 頁(共33頁)概論1.1JavaWeb簡介我們所謂的JavaWeb其實(shí)就是用Java的技術(shù)來解決一些web上的需要。Web是由web服務(wù)器和web客戶兩個部分組成。JavaWeb有很多的框架,但基本路數(shù)都是使用Servlet或者Filter攔截請求,然后根據(jù)通過了的請求做其相應(yīng)的事物。然后實(shí)現(xiàn)系統(tǒng)的完整性和和諧性。JavaWeb層框架的優(yōu)缺點(diǎn):JSP優(yōu)點(diǎn):客戶端的接口沒有那么復(fù)雜,對于各種應(yīng)用易于維護(hù)和修改;上手快速并且相對容易;有大量可用的組件庫。JSP缺點(diǎn):大量的JSP標(biāo)簽;對REST和安全支持不好;沒有一個統(tǒng)一的實(shí)現(xiàn)。既有SUN的實(shí)現(xiàn),又有Apache的實(shí)現(xiàn)——MyFaces。SpringMVC優(yōu)點(diǎn):對SpringMVC覆蓋綁定(overridingbinding)、驗(yàn)證(validation)等提供生命周期管理;便于測試——?dú)w功于IoC。SpringMVC缺點(diǎn):大量的XML配置文件;運(yùn)用著太過靈活,沒有公共的父控制器;沒有內(nèi)置的Ajax支持。Stripes優(yōu)點(diǎn):不需要書寫XML配置文件;良好的學(xué)習(xí)文檔;社區(qū)成員很熱心。Stripes缺點(diǎn):社區(qū)比較?。徊蝗缙渌捻?xiàng)目活躍;ActionBean里面的URL是硬編碼的。Struts2優(yōu)點(diǎn):架構(gòu)簡單——易于擴(kuò)展;標(biāo)記庫很簡單的通過FreeMarker或者Velocity來定制;基于控制器或者基于頁面的導(dǎo)航。Struts2缺點(diǎn):文檔組織得很差;對新特征過分關(guān)注。Tapestry優(yōu)點(diǎn):它能提高生產(chǎn)率;HTML模板讓頁面設(shè)計(jì)師能更好的設(shè)計(jì)頁面;每更新一個版本,就會有很多的創(chuàng)新。Tapestry缺點(diǎn):文檔太概念化,不怎么實(shí)用;學(xué)習(xí)曲線陡峭;發(fā)行周期也比較長,每年都會有升級。Wicket優(yōu)點(diǎn):有利于Java開發(fā)者;頁面和顯示綁定緊密;社區(qū)活躍——有來自創(chuàng)建者的支持。Wicket缺點(diǎn):HTML模板和Java代碼緊挨著;需要對OO有較好的理解;Wicket邏輯——什么都用Java搞定。1.2JavaWeb常用框架使用MVC的思想設(shè)計(jì)架構(gòu),使用約定,XML或Annotation來配置,JavaWeb四大常用框架如下:1.2.1Struts框架Struts是一個MVC框架,它主要是采用Servlet和JSP技術(shù)來實(shí)現(xiàn)的。Struts框架可分為以下四個主要部分,其中三個都和MVC模式相關(guān):模型

(Model)、視圖(View)、控制器(Controller)和一堆用來做XML文件解析的工具包。Struts框架為程序員節(jié)省了很多的工作量,讓程序員能把更多的時間放到代碼的邏輯上面。1.2.2Spring框架Spring是輕量級的Java

EE應(yīng)用程序框架。它的核心是個輕量級容器(container),實(shí)現(xiàn)了IoC模式的容器,Spring的目的是實(shí)現(xiàn)一個全方位的整合框架,在Spring框架下實(shí)現(xiàn)多個獨(dú)立的子框架組合,也可以用其它的框架來代替其功能,Spring希望提供one-stop

shop的框架整合方案

。Spring在沒有提出的更好的框架下,是不會特別去提出其它的子框架來與現(xiàn)有的OpenSource框架競爭,Spring的框架性能有效地對你的中間層對象進(jìn)行組織,而且Spring會關(guān)注很多遺留下的問題。它會消除在很多系統(tǒng)中對Singleton的過多使用。1.2.3Hibernate框架Hibernate是一個開放源代碼的對象關(guān)系映射框架,它對JDBC進(jìn)行了非常輕量級的對象封裝,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。Hibernate的核心類和接口一共有6個,分別為:Session、SessionFactory、Transaction、Query、Criteria和Configuration。Hibernate版本更新快,現(xiàn)已有多個版本:Hibernate3,Hibernate4和Hibernate5,這一點(diǎn)程序員從其Jar文件名便可以看出來。目前最新發(fā)布的版本是HibernateORM5.0.1.FinalReleased。Hibernate2系列的最高版本是Hibernate2.1.8,Hibernate3系列的最高版本是hibernate-distribution-3.6.10.Final-dist版,但使用較多且較穩(wěn)定的版本是Hibernate3.1.3或Hibernate3.1.2。1.2.4Swing框架圖形用戶接口(GUI)庫最初的設(shè)計(jì)目的是讓程序員構(gòu)建一個通用的GUI,使其在所有的平臺上都能夠正常的顯示。Swing是第二代GUI開發(fā)工具集,AWT采用了與特定平臺相關(guān)的實(shí)現(xiàn),而絕大部分Swing組件卻不是。Swing是構(gòu)筑在AWT上層的一組GUI組件的集合,為了保證可移植性,它完全用Java語言編寫,與AWT比較,Swing提供了更完整的組件,引入了許多新的特性和能力。Swing提供了更多的組件庫,如:JTable,JTree,Jcombox。Swing也增強(qiáng)了AWT中組件的功能。就因?yàn)镾wing的這些優(yōu)勢,所以很多程序員在開發(fā)的時候都選擇Swing。JComponent類是Swing組件的基類,而JComponent繼承自Container類,因此,所有的Swing組件都是AWT的容器。Swing采用了MVC設(shè)計(jì)模式。1.3JavaWeb的優(yōu)勢與特點(diǎn)JavaWeb的優(yōu)勢在于:1、Java語言是一門不會“死掉”的語言。世界上有很多的Java開發(fā)者,由某軟件開發(fā)者去年的調(diào)查顯示,Java背后的開發(fā)者都占有很高的比例;2、對于公司來說,很高比例的開發(fā)者就意味著能很快的找到一個程序員來對現(xiàn)有的程序進(jìn)行維護(hù)和升級;3、JAVA/J2EE體系的強(qiáng)大能夠構(gòu)建出一個很好的系統(tǒng);4、很多的工具都是免費(fèi)提供給開發(fā)者使用的,例如Apache/Tomcat/JBoss,這些都是一個網(wǎng)站系統(tǒng)必不可少的開發(fā)工具;5、能夠很容易的引用第三方庫快快速的構(gòu)建一個系統(tǒng),這些第三方庫為開發(fā)人員提供了優(yōu)秀的支持;JavaWeb的特點(diǎn):用Java技術(shù)對Web領(lǐng)域的發(fā)展注入了強(qiáng)大的動力。使得從事Web系統(tǒng)編寫的開發(fā)人員能夠利用第三方庫和其它免費(fèi)的開發(fā)工具,讓其工作變得十分的輕松,第2章開發(fā)環(huán)境和工具2.1數(shù)據(jù)庫開發(fā)環(huán)境本系統(tǒng)用到的開發(fā)數(shù)據(jù)庫是MySQL數(shù)據(jù)庫。MySQL是一個由瑞典MySQLAB公司開發(fā)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),目前屬于Oracle旗下公司。MySQL因?yàn)槠涑杀拘?,體積小,速度太等優(yōu)點(diǎn),受到了很多人的青睞。所以很多小型的網(wǎng)站所選的數(shù)據(jù)庫都是它,程序員可以利用SQL語句或者第三方工具對數(shù)據(jù)庫進(jìn)行管理,實(shí)現(xiàn)其增、刪、改、查等功能。在WEB中用MySQL也是最好的RDBMS(RelationalDatabaseManagementSystem,關(guān)系數(shù)據(jù)庫管理系統(tǒng))一款軟件。一個良好的開發(fā)環(huán)境可以利用MySQL搭配PHP和Apache組成。2.2開發(fā)環(huán)境系統(tǒng)的開發(fā),我們選用MyEclipse進(jìn)行開發(fā),因?yàn)镸yEclipse可以支持JavaServlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC數(shù)據(jù)庫鏈接工具等多項(xiàng)功能。在開發(fā)方面可以通過MyEclipse對第三方框架進(jìn)行利用,實(shí)現(xiàn)系統(tǒng)的完整性和功能多樣性。方便了我們對系統(tǒng)的管理,和對代碼的編寫。MyEclipse作為一款編程軟件,對程序員的幫助也是很大的,讓我們脫離了純代碼的枯燥,更關(guān)注系統(tǒng)的邏輯層。2.3JDK安裝與環(huán)境變量配置1、安裝JDK中。首先jdk,然后安裝jre。建議在安裝過程中把他們放到同一個java文件夾中不同的位置。(jdk和jre不能安裝在一起,會有錯)。2、安裝完JDK后要對其環(huán)境變量進(jìn)行配置,順序:計(jì)算機(jī)→屬性→高級系統(tǒng)設(shè)置→高級→環(huán)境變量。3、兩個都安裝并且配置完畢以后,可以在cmd下輸入java-version來檢測是否安裝成功,如果顯示了它的版本信息就說明安裝和配置都是成功的。2.4tomcat安裝1、下載apache-tomcat的安裝包,雙擊運(yùn)行一直點(diǎn)擊next即可安裝完畢,其中也可以配置一下安裝路徑,我這保持默認(rèn)路徑,端口也是默認(rèn)8080。2、驗(yàn)證安裝:打開瀏覽器,鍵入http://localhost:8080/,如果出現(xiàn)一下頁面即安裝成功:圖2-1驗(yàn)證tomcat安裝2.5運(yùn)行環(huán)境1、系統(tǒng):WindowsXP及其以上版本。2、Web服務(wù)器:Tomcat6及其以上版本。3、數(shù)據(jù)庫服務(wù)器:MySql。4、瀏覽器:IE7,8,9、火狐、Chrome。第3章需求分析和技術(shù)設(shè)計(jì)3.1可行性分析網(wǎng)站的建立,從銷售方面來講,不僅給航空公司增加了一個新的銷售渠道,而且方便了客戶購買與了解航空訂票的大致方向。從產(chǎn)品企業(yè)宣傳方面來講,不僅擴(kuò)大了公司知名度,還更直觀地展示出公司的運(yùn)行效率。擁有一個航空訂票系統(tǒng),已經(jīng)成為銷售機(jī)票進(jìn)程中的一個重要環(huán)節(jié)。所以設(shè)計(jì)一個網(wǎng)上機(jī)票訂購系統(tǒng)是什么的必要的,隨著大數(shù)據(jù)的來臨,對客戶來講,足不出戶就能買到自己所需要的機(jī)票是十分的貼心和趨勢的。3.2技術(shù)可行性對于航空訂票系統(tǒng)的實(shí)現(xiàn)在技術(shù)上來已經(jīng)十分的成熟了,我們利用客戶和管理員兩個角色來對系統(tǒng)進(jìn)行設(shè)計(jì),就像做購物網(wǎng)站一樣,只是將物品換成了機(jī)票,這在技術(shù)上是可行的。

3.3擬采取的研究方法:主要采用調(diào)研法、文獻(xiàn)研究法、比較法、經(jīng)驗(yàn)總結(jié)法等方法。采用調(diào)研方法,通過對收集到的、與調(diào)查航空訂票相關(guān)的各種信息和情報(bào)資料等,分析、研究完成需求分析;采用文獻(xiàn)研究法研究Mysql數(shù)據(jù)庫,ORM(ObjectRelationMapping對象關(guān)系映射)框架,Javaweb和JSP的書籍,從中學(xué)習(xí)先進(jìn)的編程知識和結(jié)構(gòu)設(shè)計(jì)理念,對相關(guān)外文網(wǎng)站的最新動態(tài)進(jìn)行跟蹤;采用比較法,通過對其它現(xiàn)有的航空訂票系統(tǒng)的觀察和比較分析,找出相同點(diǎn)和不同點(diǎn),分析其結(jié)構(gòu)和特點(diǎn),總結(jié)其優(yōu)缺點(diǎn),在本系統(tǒng)的設(shè)計(jì)中加以運(yùn)用;采用經(jīng)驗(yàn)總結(jié)法,在完成系統(tǒng)設(shè)計(jì)后,對其進(jìn)行大量測試、總結(jié),然后找出錯誤并加以修正,提高它的容錯能力。3.4系統(tǒng)基本功能需求系統(tǒng)中涉及系統(tǒng)普通用戶和管理員兩種角色權(quán)限,其兩種權(quán)限功能結(jié)構(gòu)如下;3.4.1系統(tǒng)結(jié)構(gòu)主要功能有:普通用戶:用戶注冊;用戶登錄;查詢機(jī)票信息;購買機(jī)票;個人信息管理;訂購管理(退票,改簽);系統(tǒng)管理員:管理員登錄;用戶管理;客機(jī)管理;航班管理;機(jī)票管理;系統(tǒng)管理(修改密碼,安全推出);實(shí)現(xiàn)的模塊有:1.用戶信息(1)注冊與注銷;(2)登陸;(3)修改個人密碼;2.用戶訂票(1)航班顯示信息;(2)航班搜索與根據(jù)出發(fā)地和目的地搜索航班;(3)座位的余量查詢;(4)訂單查詢;3.4.2系統(tǒng)業(yè)務(wù)流程圖普通用戶:圖3-1普通用戶業(yè)務(wù)流程圖(1)圖3-2普通用戶業(yè)務(wù)流程圖(2)管理員:圖3-3管理員業(yè)務(wù)流程圖(1)圖3-4管理員業(yè)務(wù)流程圖(2)3.4.3數(shù)據(jù)庫需求分析由上述業(yè)務(wù)流程圖所需要的數(shù)據(jù),我們需要設(shè)計(jì)的數(shù)據(jù)庫表有:用戶表,管理員表,客機(jī)表,航班表,機(jī)票訂單表。3.5系統(tǒng)目標(biāo)本系統(tǒng)的設(shè)計(jì),是為了實(shí)現(xiàn)以下的目標(biāo):人性化設(shè)計(jì):系統(tǒng)界面友好,操作簡單;前臺實(shí)現(xiàn)用戶登錄,用戶注冊,航班查詢,機(jī)票訂購,個人信息管理,機(jī)票訂購管理;后臺實(shí)現(xiàn)管理員登錄,用戶管理,客機(jī)管理,航班管理,訂購管理,系統(tǒng)管理;第4章系統(tǒng)總體設(shè)計(jì)4.1總體設(shè)計(jì)4.1.1處理流程一,普通用戶(1).可任意不登陸,查看所的航班和最近航班的動態(tài);(2).用后登錄,可以選擇所需的機(jī)票;(3).用戶進(jìn)入個人中心,可以修改個人信息以及對機(jī)票進(jìn)行退票和改簽;(4).退出系統(tǒng)。二,管理員(1).打開系統(tǒng),進(jìn)入系統(tǒng)登錄界面;(2).通過驗(yàn)證后,進(jìn)入系統(tǒng)管理主界面,對航班和用戶進(jìn)行管理;(3).用戶操作,執(zhí)行相應(yīng)的功能;(4).退出系統(tǒng)。4.1.2系統(tǒng)的數(shù)據(jù)流圖圖4-1系統(tǒng)的數(shù)據(jù)流圖4.2系統(tǒng)結(jié)構(gòu)圖圖4-2系統(tǒng)結(jié)構(gòu)圖針對該系統(tǒng)的數(shù)據(jù)需求,我們設(shè)計(jì)出如下所示的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):用戶表:編號,用戶名,密碼,真實(shí)姓名,性別,身份證,聯(lián)系電話;管理員表:編號,用戶名,密碼,真實(shí)姓名,聯(lián)系電話;客機(jī)表:編號,客機(jī)名稱,購買日期,服役日期,備注;航班表:編號,航班名稱,航班類型,出發(fā)城市,目的城市,出發(fā)時間,到點(diǎn)時間,使用客機(jī),經(jīng)濟(jì)艙票價以及座位數(shù),頭等艙票價以及座位數(shù);訂單表:編號,訂單號,訂購時間,票價,座艙類別,航班,用戶,訂購數(shù)量,總價;4.3系統(tǒng)結(jié)構(gòu)圖.用戶信息E-R圖圖4-3用戶信息E-R圖.客機(jī)信息E-R圖圖4-4客機(jī)信息E-R圖.航班信息E-R圖圖4-5航班信息E-R圖.訂單信息E-R圖圖4-6訂單信息E-R圖.實(shí)體之間的關(guān)系圖圖4-7實(shí)體之間的關(guān)系圖4.4邏輯結(jié)構(gòu)設(shè)計(jì)1,航班和客機(jī)實(shí)體的關(guān)系是多對一;2,訂單實(shí)體和航班實(shí)體的關(guān)系是多對一;3,用戶和訂單是一對多;4.5數(shù)據(jù)庫表的設(shè)計(jì)表一4.1用戶信息表字段名數(shù)據(jù)類型長度約束描述idInt11NOTNULLAUTO_INCREMENT自動編號Usernamevarchar20DEFAULTNULL用戶名Passwordvarchar20DEFAULTNULL密碼trueNameVarchar20DEFAULTNULL用戶姓名sexVarchar5DEFAULTNULL性別sfzVarchar20DEFAULTNULL身份證emailVarchar20DEFAULTNULL郵件phoneVarchar20DEFAULTNULL聯(lián)系電話表4.2航班表字段名數(shù)據(jù)類型長度約束描述idInt11NOTNULLAUTO_INCREMENT自動編號ecPriceintNOTNULL經(jīng)濟(jì)艙票價ecTicketRemainintNOTNULL經(jīng)濟(jì)艙剩余票ecTicketTotalintNOTNULL經(jīng)濟(jì)艙總票數(shù)fcPriceintNOTNULL頭等艙票價fcTicketRemainintNOTNULL頭等艙剩余票fcTicketTotalintNOTNULL頭等艙總票數(shù)flightTypevarchar20DEFAULTNULL航班類型fromCityvarchar20DEFAULTNULL出發(fā)地點(diǎn)fromTimedatetimeDEFAULTNULL出發(fā)時間NamevarcharDEFAULTNULL航班名稱toCityvarcharDEFAULTNULL到達(dá)城市toTimedatetimeDEFAULTNULL到達(dá)時間aircraftIdintDEFAULTNULL使用飛機(jī)表4.3訂單表字段名數(shù)據(jù)類型長度約束描述idInt11NOTNULLAUTO_INCREMENT自動編號orderNovarchar30DEFAULTNULL訂單號orderTimeDatetimeDEFAULTNULL訂購時間priceintNOTNULL價格spaceTypevarchar20DEFAULTNULL座位類型flightIdintDEFAULTNULL航班IDuserIdintDEFAULTNULL用戶IDnumintNOTNULL購買數(shù)量totalPriceintNOTNULL總價第5章系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)5.1前臺系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)為實(shí)現(xiàn)本系統(tǒng)功能,我們采用了struts2、spring和hibernate三大框架,自主設(shè)計(jì),將系統(tǒng)分成了多個模塊,讓各個模塊實(shí)現(xiàn)它自己的功能,然后各個模塊一起共同完成程序的運(yùn)行。5.1.1用戶注冊功能實(shí)現(xiàn)在首頁可通過“注冊”按鈕,觸發(fā)注冊功能,在彈出的小窗口中實(shí)現(xiàn)用戶注冊;如圖:圖5-1用戶注冊窗相關(guān)說明:用戶在彈窗內(nèi)填寫自己注冊的用戶名,密碼,確認(rèn)密碼和郵件。填寫完畢后點(diǎn)擊“注冊”按鈕,即可完成用戶注冊;關(guān)鍵代碼: publicStringregister()throwsException{ JSONObjectresult=newJSONObject(); if(userService.existUserWithUserName(user.getUserName())){ result.put("error","用戶名已存在,請更換!"); }else{ userService.saveUser(user); result.put("success",true); } ResponseUtil.write(ServletActionContext.getResponse(),result); returnnull; }5.1.2用戶登錄和退出login()方法登錄post方法傳值UserAction.java的login方法 functionlogin(){ varuserName=$("#userName").val(); varpassword=$("#password").val(); //此處由于代碼比較多且重復(fù)率較高,所以省略,省略的為判斷用戶//名和密碼是否為空的代碼 $.post("${pageContext.request.contextPath}/user_login.action",{'user.userName':userName,'user.password':password}, function(result){ varresult=eval('('+result+')'); if(result.success){ window.location.href="${pageContext.request.contextPath}/flight_indexList.action"; }else{ document.getElementById("error").innerHTML="用戶名或密碼錯誤!"; } } ); }UserAction.java的login方法 /** *用戶登錄 *@return *@throwsException */ publicStringlogin()throwsException{ HttpSessionsession=request.getSession(); UsercurrentUser=userService.login(user); booleanflag=false; if(currentUser==null){ flag=false; }else{ session.setAttribute("currentUser",currentUser); flag=true; } JSONObjectresult=newJSONObject(); result.put("success",flag); ResponseUtil.write(ServletActionContext.getResponse(),result); returnnull; }用戶登錄成功,完成了他所需要的操作后,可以點(diǎn)擊退出按鈕,即可退出本次的登錄,退出的關(guān)鍵代碼如下:安全退出方法logout()方法post傳值UserAction.java的logout()方法//安全退出 functionlogout(){ if(confirm("您確認(rèn)要退出系統(tǒng)嗎?")){ $.post("${pageContext.request.contextPath}/user_logout.action",{}, function(result){ varresult=eval('('+result+')'); if(result.success){ window.location.href="${pageContext.request.contextPath}/flight_indexList.action";}});}}UserAction.java的logout()方法/** *安全退出 */ publicStringlogout()throwsException{ request.getSession().invalidate(); JSONObjectresult=newJSONObject(); result.put("success",true); ResponseUtil.write(ServletActionContext.getResponse(),result); returnnull; }5.1.3用戶個人信息顯示和修改用戶通過進(jìn)入個人中心,然后在個人信息里面即可查看和修改自己的信息,如圖:圖5-2用戶信息修改關(guān)鍵代碼: menu.jsp頁面<ahref="${pageContext.request.contextPath}/user_showUserInfo.action"class="list-group-item">個人信息</a>到UserAction.java的showUserInfo方法/** *顯示用戶信息 */ publicStringshowUserInfo()throwsException{ mainPage="userCenter/userInfo.jsp"; return"userCenter"; }跳到userInfo.jsp用戶信息修改save()方法post方法傳值UserAction.java的save方法functionsave(){ varuserName=$("#userName").val(); //省略信息賦值 if(userName==null||userName==""){ document.getElementById("error2").innerHTML="用戶名不能為空!"; return; } if(sex==null||sex==""){ document.getElementById("error2").innerHTML="請選擇性別!"; return; } //省略判斷所輸入的其它信息不能為空 } $.post("${pageContext.request.contextPath}/user_save.action",{'user.id':'${currentUser.id}','user.userName':userName,'user.password':password,'user.trueName':trueName,'user.sex':sex,'user.sfz':sfz,'user.email':email,'user.phone':phone}, function(result){ varresult=eval('('+result+')'); if(result.error){ document.getElementById("error2").innerHTML=result.error; }else{ alert("修改成功!"); window.location.href="${pageContext.request.contextPath}/user_showUserInfo.action";}});}UserAction.java的save方法/** *用戶修改 */ publicStringsave()throwsException{ HttpSessionsession=request.getSession(); JSONObjectresult=newJSONObject(); userService.saveUser(user); result.put("success",true); session.setAttribute("currentUser",user); ResponseUtil.write(ServletActionContext.getResponse(),result); returnnull; }5.1.4航班顯示和余票顯示用戶根據(jù)自己的旅程搜索對應(yīng)的機(jī)票,并顯示出來,如圖:圖5-3航班顯示相關(guān)說明:index.jsp中<%response.sendRedirect("flight_indexList.action");%>FlightAction.java的indexList方法查詢航班,顯示航班信息的方法<%@tagliburi="/jsp/jstl/core"prefix="c"%><c:forEachvar="f1"items="${flightList1}"><td>${f1.fromCity}-${f1.toCity}</td>5.1.5訂單查詢用戶購買成功后,可進(jìn)入個人中心對相應(yīng)的訂單進(jìn)行查看,如圖:圖5-4訂單顯示相關(guān)說明:menu.jsp頁面點(diǎn)擊預(yù)定管理,調(diào)用后臺TicketAction.java的list方法,進(jìn)行數(shù)據(jù)的查詢。5.2后臺系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)5.2.1后臺修改密碼管理員進(jìn)入后臺系統(tǒng)設(shè)置然后點(diǎn)擊修改密碼,對密碼進(jìn)行修改。如圖:圖5-5密碼修改相關(guān)說明:modifyPassword()方法修改密碼/** *修改密碼 */ publicStringmodifyPassword()throwsException{ Managerm=managerService.getManagerById(manager.getId()); m.setPassword(manager.getPassword()); managerService.saveManager(m); JSONObjectresult=newJSONObject(); result.put("success",true); ResponseUtil.write(ServletActionContext.getResponse(),result); returnnull; }modifyPassword()方法提交信息到ManagerAction.java的modifyPassword()方法進(jìn)行密碼修改。點(diǎn)擊“退出”,如圖:圖5-6用戶退出說明:點(diǎn)擊“確定”,即可完成系統(tǒng)的退出;關(guān)鍵代碼實(shí)現(xiàn):/***注銷用戶*/publicStringlogout()throwsException{ request.getSession().invalidate(); return"logout";}5.2.2用戶管理在后臺點(diǎn)擊“用戶管理”按鈕,顯示:說明:用戶管理模塊包括用戶信息的查詢,用戶添加,用戶修改,用戶刪除;圖5-7用戶管理進(jìn)入添加用戶界面,輸入用戶信息,點(diǎn)擊“保存”按鈕。即可完成保存功能;關(guān)鍵代碼實(shí)現(xiàn):分頁查詢獲取所有用戶信息:publicList<User>findUserList(Users_user,PageBeanpageBean){ List<Object>param=newLinkedList<Object>(); StringBufferhql=newStringBuffer("fromUser"); if(s_user!=null){ if(StringUtil.isNotEmpty(s_user.getUserName())){ hql.append("anduserNamelike?"); param.add("%"+s_user.getUserName()+"%"); } } if(pageBean!=null){ returnbaseDAO.find(hql.toString().replaceFirst("and","where"),param,pageBean); }else{ returnnull; } }添加或者修改用戶信息:publicvoidsaveUser(Useruser){ baseDAO.merge(user); }刪除用戶信息:publicvoiddelete(Useruser){ baseDAO.delete(user); }第6章系統(tǒng)的調(diào)試與測試6.1系統(tǒng)調(diào)試步驟和一般方法6.1.1調(diào)試步驟:1、程序調(diào)試程序調(diào)試的內(nèi)容包括語法調(diào)試和邏輯檢查。邏輯檢查之前需要進(jìn)行數(shù)據(jù)正確性檢測,也就是需要編造一些測試數(shù)據(jù)。這些數(shù)據(jù)包括了有能正常運(yùn)行的和一些錯誤的有缺陷的數(shù)據(jù),以此來考驗(yàn)此程序的可靠性和正確性,確?;炯寄艿膶?shí)現(xiàn)。功能調(diào)試系統(tǒng)的功能會根據(jù)需要分成很多個模塊,一個或多個程序段組成一個處理功能模塊。所以,在調(diào)試完單個程序段后。還需要對整個功能模塊進(jìn)行調(diào)試,看每個模塊中的程序段是否都能正常運(yùn)行,如果單個程序段未能運(yùn)行成功,我們再需要對其進(jìn)行修改。3、總調(diào)在對系統(tǒng)中的各個小模塊小功能進(jìn)行調(diào)試完畢之后,我們需要對整個系統(tǒng)進(jìn)行一次完整的總調(diào),以此來檢測程序中各個模塊之間是否能正常運(yùn)行。6.1.2調(diào)試的一般方法:1、使用斷點(diǎn)在本系統(tǒng)中的邏輯中作標(biāo)記,設(shè)置斷點(diǎn)后可讓程序在需要的地方自動停止執(zhí)行。在斷點(diǎn)調(diào)試完畢過后,要將所設(shè)置的斷點(diǎn)清除,不然會影響程序最終的運(yùn)行。2、使用stop語句在程序代碼中寫入stop語句,寫入stop語句和設(shè)置斷點(diǎn)差不多。但是stop語句要在調(diào)試完畢后手動刪除。不然stop語句不會消失,也會影響程序的最終運(yùn)行。3、控制程序的運(yùn)行調(diào)試的很重要的部分那就是控制程序的運(yùn)行。讓程序只運(yùn)行一條語句,就能很快的確定到底是那一部分出了問題。為此。我設(shè)計(jì)了如下響應(yīng)步驟:每個語句執(zhí)行、繞過部分沒問題的代碼、設(shè)置下一條需要調(diào)試的語句。4、直接查看變量的值調(diào)試程序時,會經(jīng)常去看有些變量的值是否傳送和所傳送的值是否正確。所以我們可以把鼠標(biāo)放到我們需要查看的變量上。小停留一會兒就會彈出一個小方框。然后通過彈出的小方框來了解所需要查看的變量的值。6.2測試環(huán)境Apache所提供的Web服務(wù)器Tomcat6.0可以讓用戶在Windows2007以上操作系統(tǒng)下展示自己所設(shè)計(jì)的動態(tài)網(wǎng)頁作品。所以說系統(tǒng)的調(diào)試是在Tomcat6.0這個大環(huán)境下進(jìn)行并且完成的。我們可

溫馨提示

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

最新文檔

評論

0/150

提交評論