航空订票系统(javaweb项目)
航空訂票系統(tǒng)課程設(shè)計
一、項目選題
???航空訂票系統(tǒng)
二、項目背景
當(dāng)今社會知識經(jīng)濟高速發(fā)展,信息化在各個行業(yè)內(nèi)正在被越來越廣泛的應(yīng)用。人們生活水平的不斷提高,使得出行的交通工具也跟著發(fā)展起來。如今乘飛機出行的人越來越多,這方面的市場越來越大,基于此制定了航空訂票系統(tǒng),方便游客,滿足市場要求。
三、需求分析
航空訂票系統(tǒng)的需求如下
航空訂票系統(tǒng)中有兩種角色信息,分別是普通用戶和管理員。其中普通客戶可以注冊并登錄系統(tǒng),還可以對自己的身份信息、密碼信息進行修改。普通用戶還可以查詢所有的航班信息,并訂購自己需要的航班。在訂購航班時,還可以設(shè)置機票的數(shù)量。訂購?fù)瓿珊?訂購的航班信息將添加到購物車中。用戶可以在航班日期前一天進行退票。
管理員主要負責(zé)制定航班信息,其中制定航班信息包括如下信息,航班的編號、出發(fā)地點、目的地、航班日期、票價以及票數(shù)信息。
四、功能模塊分析
???1、修改個人信息
1)功能實現(xiàn)原理:
先通過用戶在登錄是存入的username進行對個人信息的查詢,然后在userInfo.jsp頁面上顯示。在userInfo.jsp頁面上利用form表單中submit按鈕提交的原理進行修改以及數(shù)據(jù)庫中的數(shù)據(jù)修改。在userInfo.jsp頁面上會獲取到用戶的基本個人信息,如:用戶名、真實姓名、性別、電話號碼以及電子郵件;然后在當(dāng)前頁面上進行修改信息,點擊“修改”按鈕,就會把修改后的全部個人信息提交到服務(wù)端,然后利用后端的“UpdateUserServlet”進行獲取提交的個人信息,其中利用request.getParamete()進行獲取信息;在然后把所獲取到的個人信息傳入一個User類中,調(diào)用修改用戶信息的數(shù)據(jù)庫操作UpdateUser()函數(shù),把user數(shù)據(jù)作為參數(shù)進行數(shù)據(jù)庫中修改。
2)代碼
對個人信息的查詢以及存入session(UserInfoServlet.java)
通過Cookie存的username來查詢用戶信息,然后用session將查詢到的用戶信息存入到服務(wù)端(“user”)
??userInfo.jsp代碼
通過服務(wù)端存的session,在jsp中利用EL表達式($)取值。然后可以在該界面進行修改個人信息,通過form表單中的submit進行提交所修改的信息。
UpdateUserServlet.java
點擊修改按鈕,會執(zhí)行UpdateUserServlet.java,然后連接數(shù)據(jù)庫,獲取提交的信息,將信息存入user類中,然后將user存入session中。把修改后的user傳回 userInfo.jsp中,會顯示修改過后的信息。
根據(jù)用戶名查詢個人信息數(shù)據(jù)庫代碼
修改個人信息的數(shù)據(jù)庫代碼
3)效果
2、修改密碼
1)功能實現(xiàn)原理
利用ajax實現(xiàn)提交修改密碼的數(shù)據(jù)到服務(wù)端,然后在服務(wù)端進行數(shù)據(jù)庫的修改以及判斷是否修改成功。首先在updatePassword.jsp頁面上把原密碼和新密碼提交到服務(wù)端,然后在UpdatePasdServlet中獲取數(shù)據(jù),進行判斷原密碼輸入是否正確以及修改密碼。
2)代碼
Ajax修改密碼
UpdatePasdServlet.java
先從服務(wù)端獲取頁面輸入的原密碼和新密碼,通過cookie存的username查詢用戶信息,找到用戶的密碼,然后與用戶輸入的原密碼進行比較是否正確。如果正確,則把修改密碼,否則返回修改密碼的界面(UpdatePassword.jsp)
數(shù)據(jù)庫中修改密碼
3)效果
3、預(yù)訂航票以及購買
1)功能實現(xiàn)原理
首先在查詢出所有的航班信息,而且是通過日期來進行篩選的,然后通過航班的id進行查詢,跳轉(zhuǎn)到確認(rèn)訂票信息的頁面(planshopping.jsp),選擇購買的票數(shù),然后點擊“購買”按鈕,進行數(shù)據(jù)庫的插入。其中用到了Ajax、session的技術(shù)進行提交數(shù)據(jù)和存數(shù)據(jù),利用EL表達式進行循環(huán)出查詢所有的航班表。當(dāng)該用戶沒有購買該航班時,會提示“訂票成功”;否則會提示“你已經(jīng)訂過了該航班!!!”。當(dāng)訂票成功時,航班的信息會插入數(shù)據(jù)庫中,以及航班表(plane)的對于的航班中的票數(shù)也會相應(yīng)減少。
2)代碼
預(yù)定航班(查看在當(dāng)天的之后航班)
連接數(shù)據(jù)庫,調(diào)用PlaneDao中的queryPlane()函數(shù)進行查詢所有的航班信息,以及把所查詢的航班存入session中,value為“sched”,key為“array”。
planeList.jsp
利用EL表達式進行獲取session中列表數(shù)值,用進行循環(huán)輸出航班信息,然后利用超鏈接進行跳轉(zhuǎn)確定訂單信息的頁面,以及選擇購買的票數(shù)。
QueryPlaneServlet.java
通過超鏈接傳入航班的id,然后通過航班的id查詢該航班的信息,以及把該航班信息存入session,value為“plane”,key為“p”
確認(rèn)訂票的信息
通過QueryPlaneServlet中存的session,利用EL表達式進行顯示數(shù)據(jù)。然后利用button點擊按鈕事件進行處理。
Ajax進行提交數(shù)據(jù)信息
利用ajax把選擇的票數(shù)傳入服務(wù)端。
購買按鈕執(zhí)行的事件(PurchaseServlet.java)
從服務(wù)端獲取用戶所購買的票數(shù),返回cookie存的用戶id,然后通過session中的“plane”進行獲取用戶所購買的航班信息,然后在進行插入數(shù)據(jù)庫car表。如果插入成功,則會進行相應(yīng)的航班表(plane)中進行票數(shù)的修改,用原有的票數(shù)減去用戶選擇的票數(shù)。
3)效果
五、課程總結(jié)
???通過學(xué)習(xí)本課程,學(xué)到了JavaScript的知識點、JSP的基本語法、JDBC連接數(shù)據(jù)庫、JSP內(nèi)置對象以及servlet和jiavabean。在學(xué)習(xí)過程中,利用JDBC進行連接數(shù)據(jù)庫以及進行數(shù)據(jù)庫的基本操作如:增刪查改;利用JSP內(nèi)置對象中的request和response對象進行服務(wù)端的請求和響應(yīng),以及利用session進行存值;利用servlet和Javabean進行一個對象的存值和取值;利用ajax進行表單驗證以及EL表達式顯示數(shù)據(jù)等等技術(shù)。在學(xué)習(xí)中也遇到問題,如:點擊按鈕報404錯誤或者報500錯誤。出現(xiàn)這些問題一般都是servlet的路徑配置問題或者servlet里面的代碼報錯。經(jīng)過學(xué)習(xí)Javaweb這門課堂,以及在做課設(shè)的過程中,清楚的知道Javaweb的相關(guān)知識,以及在操作構(gòu)成中,一定要清晰的知道所要實現(xiàn)的功能邏輯,以及知道該如何進行去操作。如jdbc連接數(shù)據(jù)庫、需要的數(shù)據(jù)庫操作、創(chuàng)建所需要的類,以及servlet請求等。
????對于Javaweb的知識還是不夠深入了解,在往后的時間里,還是需要更深入一層的去了解Java web 學(xué)習(xí)更多的技術(shù)。
總結(jié)
以上是生活随笔為你收集整理的航空订票系统(javaweb项目)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何解决机器学习中的数据不平衡问题?
- 下一篇: matlab在机电一体化的仿真图,基于s