Javaweb軟件實(shí)踐課程設(shè)計(jì)報(bào)告書
《Javaweb軟件實(shí)踐課程設(shè)計(jì)報(bào)告書》由會(huì)員分享,可在線閱讀,更多相關(guān)《Javaweb軟件實(shí)踐課程設(shè)計(jì)報(bào)告書(33頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、南通大學(xué)信息科學(xué)技術(shù)學(xué)院 Java軟件實(shí)踐課程設(shè)計(jì)報(bào)告冊(cè) 班級(jí) 姓名 學(xué)號(hào) 指導(dǎo)教師 設(shè)計(jì)時(shí)間 33 1. 課程設(shè)計(jì)題目 “愛(ài)心寵物診所” 2. 課程設(shè)計(jì)目的 通過(guò)本項(xiàng)目,學(xué)生可以掌握Web程序運(yùn)行原理;掌握使用JSP技術(shù)開發(fā)Web系統(tǒng)的一般開發(fā)方法;了解服務(wù)器與客戶端模式軟件運(yùn)行機(jī)制,掌握客戶端與Tomcat服務(wù)器通過(guò)進(jìn)行數(shù)據(jù)交互的基本原理;通過(guò)本項(xiàng)目學(xué)生可以對(duì)HTML技術(shù)、CSS技術(shù)、JSP開發(fā)技術(shù)、JavaBean技術(shù)、Servlet技術(shù)等知識(shí)有一個(gè)系統(tǒng)全面的掌握,同時(shí)了解現(xiàn)在主流的軟件設(shè)計(jì)思路。 3. 課程設(shè)計(jì)要求 具體要求詳見(jiàn)附件材料: (1) 附件1
2、-《Java軟件實(shí)踐課程設(shè)計(jì)任務(wù)書》 (2) 附件2-《寵物診所系統(tǒng)需求和需求分析說(shuō)明書》 (3) 附件3-《寵物診所系統(tǒng)設(shè)計(jì)說(shuō)明書》 4. 課程設(shè)計(jì)報(bào)告內(nèi)容 4.1系統(tǒng)主要功能設(shè)計(jì) 4.1.1功能描述 “愛(ài)心”寵物診所職工查閱信息系統(tǒng): ① 職員能完成登錄操作:職工輸入正確的URL地址,進(jìn)入登錄頁(yè)面。在登錄過(guò)程中,可以點(diǎn)擊重置按鈕將輸入信息清空,重新登陸。如果登錄成功,則進(jìn)入獸醫(yī)信息查詢頁(yè)面;若登陸失敗,則展示提示信息,重新登陸; ② 職工可以在登陸系統(tǒng)后隨時(shí)退出系統(tǒng):設(shè)置退出系統(tǒng)鏈接,一旦退出,即刪除session信息,再次進(jìn)入需重新登錄; ③ 職工可以瀏覽獸醫(yī)信息:包括
3、獸醫(yī)姓名及專業(yè)特長(zhǎng);可以查詢獸醫(yī)對(duì)應(yīng)的多個(gè)專業(yè)特長(zhǎng),也可以查詢相同專業(yè)對(duì)應(yīng)的多個(gè)獸醫(yī); ④ 職工可以瀏覽寵物信息:包括寵物編號(hào)、寵物姓名、寵物生日、寵物種類、寵物主人等信息; ⑤ 職工可以點(diǎn)擊寵物上的超鏈接查看寵物主人具體信息:包括主人編號(hào)、主人姓名、主人地址、所在城市以及電話號(hào)碼等信息; ⑥ 職工可以更新、添加寵物主人信息以及寵物信息,并做好主人與寵物之間的聯(lián)系工作: ⑦ 職工可以選擇添加新客戶:添加每個(gè)客戶的具體信息,存入寵物主人檔案,以完成后續(xù)添加寵物及寵物的對(duì)應(yīng)工作; ⑧ 診所職員可以添加訪問(wèn)信息:包括訪問(wèn)時(shí)間及具體問(wèn)題描述; ⑨ 診所職員可以瀏覽寵物的歷史訪問(wèn)記錄。 4
4、.1.2 功能設(shè)計(jì) 1、整體系統(tǒng)結(jié)構(gòu)設(shè)計(jì) 1)總體描述 本次系統(tǒng)的實(shí)現(xiàn)主要基于MVC三層架構(gòu)模型,采用JavaBean技術(shù)封裝數(shù)據(jù)庫(kù)各項(xiàng)數(shù)據(jù),調(diào)用Java類在servlet接收jsp頁(yè)面表單輸入信息,將Java類實(shí)例化。頁(yè)面的跳轉(zhuǎn)活動(dòng)都在servlet中定義完成。 2)系統(tǒng)整體結(jié)構(gòu)圖 2、功能模塊設(shè)計(jì) (1) 職工登錄模塊 ① 職工輸入用戶名和密碼,將表單信息提交至Empservlet中; ② 在Empservlet中使用request.getParameter()方法接收表單數(shù)據(jù),并調(diào)用方法verity()將該數(shù)據(jù)傳入EmpDAO中; ③ EmpDAO進(jìn)行打開數(shù)據(jù)庫(kù)
5、操作,在數(shù)據(jù)庫(kù)中查找并核對(duì)信息,如果信息正確,則返回true值; ④ EmpServlet判斷verity返回的值是否為真,若為真,則跳轉(zhuǎn)至正確頁(yè)面;若為假,則依然處于登錄頁(yè)面,便于職工重新登錄。 時(shí)序圖: □ □ ivetsearch.j呂p doPost(req,respj :EmpServlet 'EmpDAO verify(dto) if{kPasE) 頁(yè)面瞬 I職工I Jogin.jsp Stx■用尸名豐建碼 (2) 獸醫(yī)查詢模塊 ① 職工輸入查詢信息,可以輸入獸醫(yī)名,也可以輸入專業(yè)名; ② 將表單輸入信息傳入VetServlet中,serv
6、let接收輸入值并調(diào)用search()方法,將查詢結(jié)果存入session; ③ 創(chuàng)建VetDAO,定義search方法,打開數(shù)據(jù)庫(kù)查詢相關(guān)信息,并以表單list形式輸出; ④ 在vetsearch_name.jsp中創(chuàng)建list,使用request.getAttribute()方法接收查詢出的值,并在table表中以〈%=((VetDTO)list.get(i)).get()%〉形式輸出; 時(shí)序圖: (3)寵物查詢模塊 ① 職工點(diǎn)擊鏈接進(jìn)入寵物查詢頁(yè)面petsearch.jsp; ② 輸入寵物名或?qū)櫸镏魅嗣M(jìn)行查詢; ③ servlet接收表單提交的數(shù)據(jù),處理查詢請(qǐng)求,使用d
7、oPost方法調(diào)用自身search方法,并處理頁(yè)面跳轉(zhuǎn)工作; ④ 在PetDAO中定義searchPet方法訪問(wèn)數(shù)據(jù)庫(kù)owners表,pets表完成信息查詢; ⑤ 跳轉(zhuǎn)至petsearch_name.jsp頁(yè)面,使用session方法接收查詢信息并顯示。 時(shí)序圖: 提0單 n □ :FetServlet ifijsPaEs) aaarchPallpetName.r—-i, -u doPost(req,retpl searchipelname,pet^wne「:i 轉(zhuǎn) :petMarch__naiTiB-j£p :PetDAO (4)添加新寵物模塊 ①
8、職員在petsearch.jsp頁(yè)面點(diǎn)擊添加寵物按鈕,由servlet接收并處理請(qǐng)求,將頁(yè)面跳轉(zhuǎn)至petnew.jsp頁(yè)面; ② 職工在添加信息頁(yè)面填寫新用戶相關(guān)信息并提交表單; ③ 在PetDAO中定義方法addPet,訪問(wèn)數(shù)據(jù)庫(kù)pets表,完成新寵物添加工作; ④ 返回至petsearch.jsp頁(yè)面,此時(shí),添加任務(wù)已完成。 壬 FetStrvlet < 時(shí)序圖: SESBs冊(cè)sKS doPcstfreq.resp) addPet|jpdto) :pet&tarcb-j&p :prtnewjsp 職工 (□mard forwaid (5)添加新客戶模
9、塊 ① 職員在petsearch.jsp頁(yè)面點(diǎn)擊新增新客戶按鈕,由servlet接收并處理請(qǐng)求,將頁(yè)面跳轉(zhuǎn)至newpetowner.jsp頁(yè)面; ② 職工在添加信息頁(yè)面newpetowner.jsp填寫新用戶相關(guān)信息并提交表單,由servlet接收請(qǐng)求信息,并調(diào)用DAO中相應(yīng)方法進(jìn)行處理; ③ 在PetOwnerDAO中定義方法addPetOwner訪問(wèn)數(shù)據(jù)庫(kù)中的owners表,執(zhí)行相應(yīng)sql語(yǔ)句,完成新客戶信息添加工作; ④ 重新跳轉(zhuǎn)至petsearch.jsp頁(yè)面,此時(shí)客戶已經(jīng)添加成功。 時(shí)序圖: (6) 更新寵物主人信息模塊: ① 在petsearch_name.jsp
10、頁(yè)面點(diǎn)擊寵物主人鏈接,將頁(yè)面此時(shí)信息傳入servlet; ② 在servlet中接收處理更新請(qǐng)求,并使用doPost()方法調(diào)用自身search方法,同時(shí),調(diào)用DA0中的相關(guān)方法進(jìn)行查詢和輸出工作; ③ 使用PetOwnerDAO定義方法viewPetOwner及updatePetOwners,分別進(jìn)行寵物主人的信息查詢和信息更新操作; ④ 在ownerupdate.jsp頁(yè)面中使用JavaBean技術(shù)及session相關(guān)方法進(jìn)行信息的展示。 時(shí)序圖: (7)更新寵物信息模塊: ① 在petsearch_name.jsp頁(yè)面點(diǎn)擊寵物鏈接,將頁(yè)面此時(shí)信息傳入servlet,由se
11、rvlet將頁(yè)面跳轉(zhuǎn)至petview_name.jsp頁(yè)面; ② 在servlet中接收處理更新請(qǐng)求,并使用doPost()方法調(diào)用自身search方法,同時(shí),調(diào)用DA0中的相關(guān)方法進(jìn)行查詢和輸出工作; ③ 職員點(diǎn)擊修改按鈕,由servlet跳轉(zhuǎn)至寵物信息更新頁(yè)面petupdate.jsp; ④ 使用PetOwnerDAO定義方法selecPetByld及updatePet,分別進(jìn)行寵物信息查詢和更新指定寵物信息操作; ⑤ 職員進(jìn)行寵物信息更新操作,并點(diǎn)擊修改按鈕提交; ⑥ 在servlet中使用更新方法完成信息的更新; ⑦ 在petview_name.jsp頁(yè)面中使用JavaBe
12、an技術(shù)及session相關(guān)方法進(jìn)行信息的展示。 壬 □ □ 時(shí)序圖: doPostJreq.resp] s-elertPetByidCpetld] fortivard 別第題晦懇點(diǎn)擊幡換IB- ???] :£lcPost(r&qrresp) forward forward <—-_r- updatEP?lSprite}[;] 點(diǎn)擊勁竝 :petupdatej^p :petvievx_name.j^p :PetSerylnt :PatDAO (8)瀏覽寵物病例: ① 職工在petview_name.jsp頁(yè)面點(diǎn)擊瀏覽病例按鈕; ② 由serv
13、let接收提交信息并完成響應(yīng)請(qǐng)求的操作; ③ 在PetVisitDAO中定義方法searchPetHistory(petid)方法進(jìn)行查詢操作,并將結(jié)果以Arraylist 的形式提交給servlet; ④ servlet接收信息后跳轉(zhuǎn)頁(yè)面至petvisithistory.jsp病例瀏覽頁(yè)面。 時(shí)序圖: fpelld) ArrayLlst (9) 添加寵物訪問(wèn) ① 診所職員在寵物具體信息頁(yè)面點(diǎn)擊添加新病例按鈕,servlet接收請(qǐng)求并將頁(yè)面跳轉(zhuǎn)至 petnewvisit.jsp頁(yè)面; ② 診所職員輸入新寵物訪問(wèn)信息并點(diǎn)擊提交按鈕; ③ servlet接收表單信息并處理
14、; ④ 在DAO中定義方法addNewVisit(pvdto),訪問(wèn)數(shù)據(jù)庫(kù)visits完成數(shù)據(jù)添加操作; ⑤ servlet調(diào)用DAO中定義方法并處理提交數(shù)據(jù),完成后跳轉(zhuǎn)至petsearch.jsp頁(yè)面,并提示病例插入成功信息; 時(shí)序圖: 10)瀏覽寵物主人信息: ① 職工在petsearch.jsp頁(yè)面輸入查詢內(nèi)容; ② PetServlet接收表單傳入信息,并使用doPost()方法調(diào)用自身search方法; ③ 使用PetDAO定義searchPet方法,打開數(shù)據(jù)庫(kù),判斷符合條件的信息輸出; ④ petsearch_name.jsp頁(yè)面使用session進(jìn)行信息的
15、輸出。 時(shí)序圖: n □ sea'-chPetfpetiysrrie, :Rt觀rchjwp :PetServlet :PetDAQ :p£tsearch_namejfp doPost(req,resp} seanchtpelnanw,peto^mer) (11)退出模塊 ① 用戶點(diǎn)擊退出鏈接; ② EmpServlet接受用戶請(qǐng)求并處理請(qǐng)求; ③ 使用session對(duì)象儲(chǔ)存用戶登錄信息,并在退出鏈接觸發(fā)后,使用invalidate方法使客戶的會(huì)話 無(wú)效; ④ 退出成功后進(jìn)入login.jsp登陸頁(yè)面。 時(shí)序圖: …「一一 3、數(shù)據(jù)庫(kù)設(shè)計(jì)
16、 ①employee:存放職工信息,用于職工登錄 字段名數(shù)據(jù)類型 長(zhǎng)度 約束 能否為空 字段含義說(shuō)明 namevarchar 20 主鍵 否 職工姓名 passwordvarchar 20 否 職工密碼 ②visits:存放訪問(wèn)記錄 字段名 數(shù)據(jù)類型 長(zhǎng)度 約束 能否為空 字段含義說(shuō)明 id int 20 主鍵 否 訪問(wèn)記錄編號(hào) pet_id int 20 外鍵 否 寵物編號(hào) visit_date datetime 訪問(wèn)日期 description varchar 255 訪問(wèn)備注
17、 ③vets:存放獸醫(yī)相關(guān)信息 字段名 數(shù)據(jù)類型 長(zhǎng)度 約束 能否為空 字段含義說(shuō)明 id int 20 主鍵 否 獸醫(yī)編號(hào) name varchar 30 獸醫(yī)姓名 ④specialties: 存放獸醫(yī)專業(yè)信息 字段名 數(shù)據(jù)類型 長(zhǎng)度 約束 能否為空 字段含義說(shuō)明 id int 20 主鍵 否 專業(yè)編號(hào) name varchar 80 專業(yè)名 ⑤vet-specialties:存放獸醫(yī)及其專業(yè)的對(duì)應(yīng)關(guān)系 字段名 數(shù)據(jù)類型 長(zhǎng)度 約束 能否為空 字段含義說(shuō)明 vet_
18、id int 20 外鍵 否 獸醫(yī)編號(hào) specialtyid int 20 外鍵 否 專業(yè)編號(hào) ⑥pets:存放寵物具體信息 字段名 數(shù)據(jù)類型 長(zhǎng)度 約束 能否為空 字段含義說(shuō)明 id int 20 主鍵 否 寵物編號(hào) name varchar 30 寵物名 birth_date datetime 出生日期 type_id int 20 外鍵 否 種類編號(hào) ownerid int 20 外鍵 否 對(duì)應(yīng)主人編號(hào) ⑦types:存放寵物種類信息 字段名 數(shù)據(jù)類型 長(zhǎng)度 約束
19、 能否為空 字段含義說(shuō)明 id int 20 主鍵 否 種類編號(hào) name varchar 80 種類名 ⑧owners:存放寵物主人具體信息 字段名 數(shù)據(jù)類型 長(zhǎng)度 約束 能否為空 字段含義說(shuō)明 id int 20 主鍵 否 主人編號(hào) name varchar 30 主人姓名 address varchar 255 主人地址 city varchar 80 城市名 telephone varchar 20 聯(lián)系方式 4.2 系統(tǒng)設(shè)計(jì)與文件清單 ①JavaBean技術(shù)的使用文件: 文
20、件名 文件主要功能及作用 DB.java 實(shí)行打開數(shù)據(jù)庫(kù)的操作,并在使用元成后及時(shí)釋放連接 EmpDTO.java 封裝職工信息,并使用get、set方法便于調(diào)用 EmpDAO.java 定義verify方法訪問(wèn)數(shù)據(jù)庫(kù)employee表,查詢用戶名及對(duì)應(yīng)密碼是否付合,符合即返回真 PetDTO.java 封裝龍物信息,并使用get、set方法便于調(diào)用 PetDAO.java ① 訪問(wèn)數(shù)據(jù)庫(kù)owners、pets表,定義方法查詢龍物對(duì)應(yīng)信息,返回查詢結(jié)果表單; ② selectPetById方法訪問(wèn)數(shù)據(jù)庫(kù)查詢指定龍物詳細(xì)信息; ③ updatePet方法訪問(wèn)pets表元
21、成更新指定龍物信息操作; ④ addPet方法訪問(wèn)pets表完成添加新寵物操作。 PetOwnerDTO.java 封裝龍物主人信息,并使用get、set方法便于調(diào)用 PetOwnerDAO.java ① viewPetOwner方法訪問(wèn)owners表查詢指定寵物主人信息; ② updatePetOwner方法訪問(wèn)owners表更新指定寵物主人信息; ③ addPetOwner方法訪問(wèn)owners表添加新用戶信息。 PetVisitDTO.java 封裝龍物病例信息,并使用get、set方法便于調(diào)用 PetVisitDAO.java ① searchPetVisitHis
22、tory方法訪問(wèn)visits表完成查詢病例操作; ② addNewVisit方法訪問(wèn)visits表添加寵物病例。 SpecDTO.java 封裝獸醫(yī)專業(yè)信息,并使用get、set方法便于調(diào)用 VetDTO.java 封裝獸醫(yī)信息,并使用get、set方法便于調(diào)用 VetDAO.java 用于定義search()方法,打開數(shù)據(jù)庫(kù)進(jìn)彳丁獸醫(yī)匹配查詢 ②servlet使用文件: 文件名 文件主要功能及作用 EmpServlet.java 用于接收用戶登錄表單提交信息,調(diào)用DAO中方法決定是否跳轉(zhuǎn)頁(yè)面;用于接收處理職工的退出系統(tǒng)請(qǐng)求。 VetServlet.java 用
23、于接收處理職工輸入的獸醫(yī)查詢請(qǐng)求,使用session傳遞查詢結(jié)果信息 PetServlet.java ① 用于接收處理職工輸入的寵物查詢請(qǐng)求,doPost方法調(diào)用自身search方法; ② 處理職工更新寵物信息請(qǐng)求; ③ 處理職員添加新寵物請(qǐng)求。 PetOwnerServlet.java ① 用于接收處理職工輸入的查詢、更新寵物主人的請(qǐng)求,doPost方法調(diào)用 自身search方法; ② 接受處理職員添加新客戶請(qǐng)求。 PetVisitServlet.java ① 接受處理職工訪問(wèn)病例請(qǐng)求; ② 接受處理添加病例請(qǐng)求。 ③jsp頁(yè)面使用文件: login.jsp
24、 “愛(ài)心”診所的主頁(yè)面,職工在此頁(yè)面進(jìn)行登陸操作; 若職工進(jìn)行退出系統(tǒng)操作,則返回至該頁(yè)面。 vetsearch.jsp 登錄成功后的跳轉(zhuǎn)頁(yè)面,用于輸入獸醫(yī)查詢信息,包括獸醫(yī)名及專業(yè)特長(zhǎng) vetsearch_name.jsp 查詢完成后的跳轉(zhuǎn)頁(yè)面,顯示獸醫(yī)查詢結(jié)果信息,包括獸醫(yī)及對(duì)應(yīng)專業(yè) petsearch.jsp ① 用于輸入寵物查詢信息,包括寵物名及主人姓名; ② 定義按鈕用于添加新客戶; ③ 定義按鈕用于添加新寵物; petsearch_name.jsp 查詢完成后的跳轉(zhuǎn)頁(yè)面,顯示寵物查詢結(jié)果,包括寵物名及對(duì)應(yīng)主人姓名 ownerupdate.jsp 顯示查詢
25、主人具體信息,可進(jìn)行修改更新,并及時(shí)顯示更新完成結(jié)果 newpetowner.jsp 用于接受輸入寵物主人添加信息 petview_name.jsp ① 用于顯示寵物詳細(xì)信息; ② 提供修改按鈕; ③ 提供瀏覽病例按鈕。 ④提供增加新病例按鈕。 petupdate.jsp 用于編輯修改寵物信息 petnew.jsp 用于輸入新添加寵物信息 petvisithistory.jsp 用于顯示寵物病例 petnewvisit.jsp 用于輸入寵物新病例 4.3 系統(tǒng)代碼實(shí)現(xiàn) (1)開發(fā)主界面截圖: ① login.jsp:初始模塊,即用戶登錄模塊
26、 ②vetsearch.jsp:登陸成功,進(jìn)入獸醫(yī)信息查詢模塊 ③vetsearch.jsp頁(yè)面:寵物查詢頁(yè)面 (2)關(guān)鍵代碼: ①登陸實(shí)現(xiàn) EmpDAO.java: publicclassEmpDAO{//用于打開數(shù)據(jù)庫(kù),進(jìn)行用戶名與密碼的匹配 publicbooleanverify(EmpDTOdto){ DBdb=newDB();//打開數(shù)據(jù)庫(kù)操作 Statementstmt=db.getStatement(); Stringsq="SELECT*fromemployeewherename='"http://使用sql語(yǔ)言查詢數(shù)據(jù)庫(kù) +dto.getEm
27、p_name()+"'andpassword='"+dto.getEmp_pwd()+"'"; try{ ResultSetrs=stmt.executeQuery(sq); if(rs.next()){//如果查詢到,則返回真值 returntrue; } }catch(SQLExceptione){ //TODOAuto-generatedcatchblocke.printStackTrace(); } db.closeConnection(); returnfalse; } } EmpServlet.java: publicvoiddoGet(HttpServ
28、letRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ doPost(request,response); //調(diào)用自身方法 } publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ EmpDTOdto=newEmpDTO();dto.setEmp_name(empname);dto.setEmp_pwd(passw
29、ord);EmpDAOdao=newEmpDAO();booleanisPass=dao.verify(dto); if(isPass){ HttpSessionsession=request.getSession();session.setAttribute("abc",empname);response.sendRedirect("vetsearch.jsp"); }else{ System.out.print(”信息填寫錯(cuò)誤,請(qǐng)重新登錄");response.sendRedirect("login.jsp"); } } //調(diào)用verity方法判斷用戶名密碼是否正確//使用
30、session存儲(chǔ)登錄信息 //完成頁(yè)面跳轉(zhuǎn)工作 //跳轉(zhuǎn)至登陸頁(yè)面重新進(jìn)行登錄操作 Stringempname=request.getParameter("empname");//接收表單傳來(lái)的數(shù)據(jù)Stringpassword=request.getParameter("emppassword"); ② 獸醫(yī)及專業(yè)特長(zhǎng)信息查詢 //接收用戶提交信息并存儲(chǔ) VetServlet.java: Stringvetname=request.getParameter("vetname"); Stringvetspecialties=request.getParameter("v
31、etspe");
VetDAOvetdao=newVetDAO();
List
32、equest.setAttribute("vets",isPass);response.sendRedirect("vetsearch_name.jsp");//跳轉(zhuǎn)至獸醫(yī)信息展示頁(yè)面
}else{request.getRequestDispatcher("vetsearch.jsp").forward(request,response);
}
vetsearch_name.jsp:進(jìn)行界面顯示
<%
Listlist=(List)request.getAttribute("vets");
%>
33、nti=0;i
<%=((VetDTO)list.get(i)).getVetid()%>
<%=((VetDTO)list.get(i)).getVetName()%>
<%=((VetDTO)list.get(i)).getSpecName()%>
34、<% } %> ③ 寵物信息、主人信息查詢以及寵物的添加更新工作: PetServlet.java: doPost()方法: RequestDispatcherrd1=null; Stringpetname=newString(request.getParameter("petname").getBytes("ISO-8859-1"));//接收表單信息 Stringownername=newString(request.getParameter("ownername").getBytes("ISO-8859-1")); inttypeid=Integer
35、.parseInt(request.getParameter("type")); Stringdate=newString(request.getParameter("date").getBytes("ISO-8859-1")); PetDAOpet=newPetDAO(); booleanisPass=pet.addPet(ownername,typeid,petname,date);//調(diào)用addPet方法,進(jìn)行數(shù)據(jù)庫(kù)添加操作 ArrayListpets=(ArrayList)pet.search(petname,ownername);//獲取查詢到的信息,用于寵物查詢界面Arra
36、yListowner=(ArrayList)pet.search(petname,ownername); HttpSessionsession=request.getSession(); session.setAttribute("petname",pets);//將查詢到的信息裝入session session.setAttribute("ownername",owner); request.getRequestDispatcher("petsearch_name.jsp").forward(request,response);//跳轉(zhuǎn)至寵物查詢結(jié)果頁(yè)面 if(isPass){
37、Stringok="ok"; request.setAttribute("check",ok); rd1=request.getRequestDispatcher("petnew.jsp");//增加新寵物頁(yè)面 rd1.forward(request,response); } else{ Stringerror="error"; request.setAttribute("check",error);//如果寵物信息添加失敗,將失敗信息存入“check”rd1=request.getRequestDispatcher("petnew.jsp"); rd1.forward(req
38、uest,response); } petsearch_name.jsp頁(yè)面: <% ArrayListpet=(ArrayList)session.getAttribute("pets");//獲取servlet中存入的對(duì)象 intrs=pet.size();%>
39、 %>
40、d>
41、rameter("city").getBytes("ISO-8859-1")); Stringtelephone=request.getParameter("phone"); PetOwnerDAOadd=newPetOwnerDAO();//使用DAO中的add方法添加新用戶booleanisPass=add.addPetOwner(oname,address,city,telephone); if(isPass){//如果信息添加成功,則跳轉(zhuǎn)至主人詳情頁(yè)面 Stringok="addok"; request.setAttribute("check",ok);rd=request.
42、getRequestDispatcher("newpetowner.jsp"); rd.forward(request,response); } else{ Stringerror="error"; request.setAttribute("check",error); rd=request.getRequestDispatcher("newpetowner.jsp");//添加失敗,依然停留在添加頁(yè)面,重新添加rd.forward(request,response); } ⑤ 病歷增加相關(guān)實(shí)現(xiàn): RequestDispatcherrd=null; //接受表單傳來(lái)的數(shù)據(jù)
43、信息 intpet_id=Integer.parseInt(request.getParameter("pid")); Stringvisit_date=newString(request.getParameter("visit_date").getBytes("ISO-8859-1")); Stringdescription=newString(request.getParameter("description").getBytes("ISO-8859-1"));PetVisitDAOadd=newPetVisitDAO(); booleanisPass=add.addPetVisi
44、t(pet_id,visit_date,description); //定義布爾型isPass,若信息增加成功則繼續(xù)執(zhí)行 if(isPass){ Stringok="addok"; request.setAttribute("check",ok);rd=request.getRequestDispatcher("petnewvisit.jsp");rd.forward(request,response); } else{ Stringerror="error";request.setAttribute("check",error);rd=request.getRequestDis
45、patcher("petnewvisit.jsp");rd.forward(request,response); } 4.4 系統(tǒng)測(cè)試 4.4.1系統(tǒng)測(cè)試數(shù)據(jù)清單 數(shù)據(jù)庫(kù)用例: ①employee:職工登錄名及對(duì)應(yīng)密碼 name password abc 123456 ②。wners:寵物主人測(cè)試用例,包括姓名、地址、所在城市、聯(lián)系電話信息 id name address city telephone 1 宋玉 崇川區(qū) 南通市 12345678901 2 李琦 新月社區(qū) 上海市 99999999999 ③pets:寵物具體信息,包
46、含姓名、出生日期、種類、主人id id name Birth_date Type_id owner_id 1 柚子 2018-10-1712:00:00 1 1 2 never 2020-05-1417:07:29 2 2 ④specialities:專業(yè)特長(zhǎng)及對(duì)應(yīng)的id Id name 1 牙科 2 內(nèi)科 3 皮膚科 4 放射科 ⑤types:寵物種類及其對(duì)應(yīng)id ⑥vet_specialities:獸醫(yī)及其專業(yè)的對(duì)應(yīng) vet_id specialty_is 1 3 2 2 3 1 1 1
47、 ⑧visits:訪問(wèn)記錄 id pet_id visit_date description 1 2 2019-11-0510:00:00 體外驅(qū)蟲 2 1 2019-08-2212:00:00 貓?zhí)\ 4.4.2系統(tǒng)測(cè)試結(jié)果 測(cè)試用例: 具體測(cè)試頁(yè)面截圖 1)在登錄模塊輸入正確信息,點(diǎn)擊提交頁(yè)面能成功跳轉(zhuǎn): 2)點(diǎn)擊重置輸入內(nèi)容清空: 3)在獸醫(yī)查詢模塊輸入“小王”: 4)點(diǎn)擊查詢按鈕,頁(yè)面跳轉(zhuǎn)并顯示信息: 5)在獸醫(yī)查詢模塊輸入“牙科”,點(diǎn)擊查詢按鈕,頁(yè)面跳轉(zhuǎn)并顯示信息: 6)點(diǎn)擊寵物連接進(jìn)入寵物查詢
48、頁(yè)面,在寵物查詢頁(yè)面輸入“柚子”,點(diǎn)擊“查詢”按鈕頁(yè)面跳轉(zhuǎn) 并顯示信息: 7)在寵物查詢頁(yè)面輸入“李琦”,點(diǎn)擊“查詢”按鈕頁(yè)面跳轉(zhuǎn)并顯示信息: 退出磁卑世
49、 8)點(diǎn)擊添加新寵物按鈕,進(jìn)行寵物添加操作: 9)信息填寫完成點(diǎn)擊提交按鈕,或點(diǎn)擊放棄按鈕直接返回: 10)添加成功后跳轉(zhuǎn)至寵物查詢頁(yè)面,顯示添加成功信息: 11)點(diǎn)擊添加新客戶按鈕,跳轉(zhuǎn)至添加頁(yè)面輸入相關(guān)信息: 退出皺 所住風(fēng)市 RII肚64 IlLLlllIilil 12)添加成功后返回頁(yè)面并顯示添加成功信息: 13)點(diǎn)擊
50、寵物主人“宋玉”鏈接, 進(jìn)入寵物主人詳情界面: 7 鈾色軸些 未干 tafia 毅IBS Aiflilj ⑵仙啊1 14)編輯信息后點(diǎn)擊修改按鈕,進(jìn)行寵物信息更新操作: 15)點(diǎn)擊寵物“柚子”鏈接,進(jìn)入寵物詳情頁(yè)面: 軸主生拄MMM所柱血問(wèn)電詁 気月址風(fēng) I伽弁闊 刪MH za 匸* 溯醬克港主人 稱干 16)點(diǎn)擊瀏覽病例按鈕,顯示寵物病例信息: 2019-00-22120000 ±A姓容
51、 就診備注 17)點(diǎn)擊返回按鈕回到寵物詳情頁(yè)面,點(diǎn)擊增加新病例按鈕,填寫就診信息: 18)點(diǎn)擊添加按鈕,提示成功信息: 19)點(diǎn)擊退出系統(tǒng)鏈接,返回登陸頁(yè)面,處于未登錄狀態(tài): 4.5 系統(tǒng)存在的主要問(wèn)題及注意事項(xiàng) ① 在使用session進(jìn)行數(shù)據(jù)的傳輸時(shí),要注意object與其他數(shù)據(jù)類型的轉(zhuǎn)換問(wèn)題,必要時(shí)可使用強(qiáng)制轉(zhuǎn)換;
52、② 該系統(tǒng)在顯示寵物信息時(shí)缺乏圖片等信息,信息查詢不夠直觀,還需完善; ③ 使用數(shù)據(jù)庫(kù)語(yǔ)言進(jìn)行查詢操作,輸出到j(luò)sp頁(yè)面的表單存在數(shù)據(jù)冗余現(xiàn)象,同一專業(yè)對(duì)應(yīng)多個(gè)獸醫(yī),同一獸醫(yī)對(duì)應(yīng)多個(gè)專業(yè)時(shí),數(shù)據(jù)冗余現(xiàn)象更加明顯,還需要改進(jìn)。 4.6 設(shè)計(jì)總結(jié)及體會(huì) 本次課程設(shè)計(jì)中,我們成功完成了“愛(ài)心”寵物診療系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn),并靈活使用servlet完成了各個(gè)頁(yè)面的跳轉(zhuǎn)工作。實(shí)驗(yàn)中,我使用JavaBean技術(shù)封裝數(shù)據(jù)庫(kù),大大簡(jiǎn)化了操作,使得代碼更加簡(jiǎn)潔。實(shí)驗(yàn)中出現(xiàn)的各種問(wèn)題以及問(wèn)題的解決使我對(duì)Java技術(shù)的使用以及網(wǎng)頁(yè)制作方面更加熟練,在追求代碼正確的同時(shí)也兼顧了網(wǎng)頁(yè)設(shè)計(jì)的美觀性。 通過(guò)這次課程設(shè)計(jì),
53、我熟練掌握了基于MVC三層架構(gòu)模型的實(shí)現(xiàn)方式,能在jsp頁(yè)面中使用request.getAttribute的方法接收查詢出的信息,多次servlet連接問(wèn)題的解決也更加堅(jiān)定了我的信心,為以后再次進(jìn)行javaweb實(shí)現(xiàn)打下基礎(chǔ)。 參考書目 【1】王春明,史勝輝編著,《jpsweb技術(shù)實(shí)驗(yàn)及項(xiàng)目實(shí)訓(xùn)教程》北京,清華大學(xué)出版社,2016.9 【2】王春明,史勝輝編著,《javaweb技術(shù)及應(yīng)用教程(第二版)》,清華大學(xué)出版社,2018 附件 (1) 附件1-《Java軟件實(shí)踐課程設(shè)計(jì)任務(wù)書, (2) 附件2:《寵物診所系統(tǒng)需求和需求分析說(shuō)明書, (3) 附件3:《寵物診所系統(tǒng)設(shè)計(jì)說(shuō)明書,
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競(jìng)賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫(kù)試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫(kù)試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫(kù)試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測(cè)試題庫(kù)及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測(cè)工種技術(shù)比武題庫(kù)含解析
- 1 礦山應(yīng)急救援安全知識(shí)競(jìng)賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案