Javaweb軟件實(shí)踐課程設(shè)計(jì)報(bào)告書
《Javaweb軟件實(shí)踐課程設(shè)計(jì)報(bào)告書》由會(huì)員分享,可在線閱讀,更多相關(guān)《Javaweb軟件實(shí)踐課程設(shè)計(jì)報(bào)告書(33頁珍藏版)》請(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ì)題目 “愛心寵物診所” 2. 課程設(shè)計(jì)目的 通過本項(xiàng)目,學(xué)生可以掌握Web程序運(yùn)行原理;掌握使用JSP技術(shù)開發(fā)Web系統(tǒng)的一般開發(fā)方法;了解服務(wù)器與客戶端模式軟件運(yùn)行機(jī)制,掌握客戶端與Tomcat服務(wù)器通過進(jìn)行數(shù)據(jù)交互的基本原理;通過本項(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ì)要求 具體要求詳見附件材料: (1) 附件1
2、-《Java軟件實(shí)踐課程設(shè)計(jì)任務(wù)書》 (2) 附件2-《寵物診所系統(tǒng)需求和需求分析說明書》 (3) 附件3-《寵物診所系統(tǒng)設(shè)計(jì)說明書》 4. 課程設(shè)計(jì)報(bào)告內(nèi)容 4.1系統(tǒng)主要功能設(shè)計(jì) 4.1.1功能描述 “愛心”寵物診所職工查閱信息系統(tǒng): ① 職員能完成登錄操作:職工輸入正確的URL地址,進(jìn)入登錄頁面。在登錄過程中,可以點(diǎn)擊重置按鈕將輸入信息清空,重新登陸。如果登錄成功,則進(jìn)入獸醫(yī)信息查詢頁面;若登陸失敗,則展示提示信息,重新登陸; ② 職工可以在登陸系統(tǒng)后隨時(shí)退出系統(tǒng):設(shè)置退出系統(tǒng)鏈接,一旦退出,即刪除session信息,再次進(jìn)入需重新登錄; ③ 職工可以瀏覽獸醫(yī)信息:包括
3、獸醫(yī)姓名及專業(yè)特長;可以查詢獸醫(yī)對(duì)應(yīng)的多個(gè)專業(yè)特長,也可以查詢相同專業(yè)對(duì)應(yīng)的多個(gè)獸醫(yī); ④ 職工可以瀏覽寵物信息:包括寵物編號(hào)、寵物姓名、寵物生日、寵物種類、寵物主人等信息; ⑤ 職工可以點(diǎn)擊寵物上的超鏈接查看寵物主人具體信息:包括主人編號(hào)、主人姓名、主人地址、所在城市以及電話號(hào)碼等信息; ⑥ 職工可以更新、添加寵物主人信息以及寵物信息,并做好主人與寵物之間的聯(lián)系工作: ⑦ 職工可以選擇添加新客戶:添加每個(gè)客戶的具體信息,存入寵物主人檔案,以完成后續(xù)添加寵物及寵物的對(duì)應(yīng)工作; ⑧ 診所職員可以添加訪問信息:包括訪問時(shí)間及具體問題描述; ⑨ 診所職員可以瀏覽寵物的歷史訪問記錄。 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ù)庫各項(xiàng)數(shù)據(jù),調(diào)用Java類在servlet接收jsp頁面表單輸入信息,將Java類實(shí)例化。頁面的跳轉(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ù)庫
5、操作,在數(shù)據(jù)庫中查找并核對(duì)信息,如果信息正確,則返回true值; ④ EmpServlet判斷verity返回的值是否為真,若為真,則跳轉(zhuǎn)至正確頁面;若為假,則依然處于登錄頁面,便于職工重新登錄。 時(shí)序圖: □ □ ivetsearch.j呂p doPost(req,respj :EmpServlet 'EmpDAO verify(dto) if{kPasE) 頁面瞬 I職工I Jogin.jsp Stx■用尸名豐建碼 (2) 獸醫(yī)查詢模塊 ① 職工輸入查詢信息,可以輸入獸醫(yī)名,也可以輸入專業(yè)名; ② 將表單輸入信息傳入VetServlet中,serv
6、let接收輸入值并調(diào)用search()方法,將查詢結(jié)果存入session; ③ 創(chuàng)建VetDAO,定義search方法,打開數(shù)據(jù)庫查詢相關(guān)信息,并以表單list形式輸出; ④ 在vetsearch_name.jsp中創(chuàng)建list,使用request.getAttribute()方法接收查詢出的值,并在table表中以〈%=((VetDTO)list.get(i)).get()%〉形式輸出; 時(shí)序圖: (3)寵物查詢模塊 ① 職工點(diǎn)擊鏈接進(jìn)入寵物查詢頁面petsearch.jsp; ② 輸入寵物名或?qū)櫸镏魅嗣M(jìn)行查詢; ③ servlet接收表單提交的數(shù)據(jù),處理查詢請(qǐng)求,使用d
7、oPost方法調(diào)用自身search方法,并處理頁面跳轉(zhuǎn)工作; ④ 在PetDAO中定義searchPet方法訪問數(shù)據(jù)庫owners表,pets表完成信息查詢; ⑤ 跳轉(zhuǎn)至petsearch_name.jsp頁面,使用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頁面點(diǎn)擊添加寵物按鈕,由servlet接收并處理請(qǐng)求,將頁面跳轉(zhuǎn)至petnew.jsp頁面; ② 職工在添加信息頁面填寫新用戶相關(guān)信息并提交表單; ③ 在PetDAO中定義方法addPet,訪問數(shù)據(jù)庫pets表,完成新寵物添加工作; ④ 返回至petsearch.jsp頁面,此時(shí),添加任務(wù)已完成。 壬 FetStrvlet < 時(shí)序圖: SESBs冊(cè)sKS doPcstfreq.resp) addPet|jpdto) :pet&tarcb-j&p :prtnewjsp 職工 (□mard forwaid (5)添加新客戶模
9、塊 ① 職員在petsearch.jsp頁面點(diǎn)擊新增新客戶按鈕,由servlet接收并處理請(qǐng)求,將頁面跳轉(zhuǎn)至newpetowner.jsp頁面; ② 職工在添加信息頁面newpetowner.jsp填寫新用戶相關(guān)信息并提交表單,由servlet接收請(qǐng)求信息,并調(diào)用DAO中相應(yīng)方法進(jìn)行處理; ③ 在PetOwnerDAO中定義方法addPetOwner訪問數(shù)據(jù)庫中的owners表,執(zhí)行相應(yīng)sql語句,完成新客戶信息添加工作; ④ 重新跳轉(zhuǎn)至petsearch.jsp頁面,此時(shí)客戶已經(jīng)添加成功。 時(shí)序圖: (6) 更新寵物主人信息模塊: ① 在petsearch_name.jsp
10、頁面點(diǎn)擊寵物主人鏈接,將頁面此時(shí)信息傳入servlet; ② 在servlet中接收處理更新請(qǐng)求,并使用doPost()方法調(diào)用自身search方法,同時(shí),調(diào)用DA0中的相關(guān)方法進(jìn)行查詢和輸出工作; ③ 使用PetOwnerDAO定義方法viewPetOwner及updatePetOwners,分別進(jìn)行寵物主人的信息查詢和信息更新操作; ④ 在ownerupdate.jsp頁面中使用JavaBean技術(shù)及session相關(guān)方法進(jìn)行信息的展示。 時(shí)序圖: (7)更新寵物信息模塊: ① 在petsearch_name.jsp頁面點(diǎn)擊寵物鏈接,將頁面此時(shí)信息傳入servlet,由se
11、rvlet將頁面跳轉(zhuǎn)至petview_name.jsp頁面; ② 在servlet中接收處理更新請(qǐng)求,并使用doPost()方法調(diào)用自身search方法,同時(shí),調(diào)用DA0中的相關(guān)方法進(jìn)行查詢和輸出工作; ③ 職員點(diǎn)擊修改按鈕,由servlet跳轉(zhuǎn)至寵物信息更新頁面petupdate.jsp; ④ 使用PetOwnerDAO定義方法selecPetByld及updatePet,分別進(jìn)行寵物信息查詢和更新指定寵物信息操作; ⑤ 職員進(jìn)行寵物信息更新操作,并點(diǎn)擊修改按鈕提交; ⑥ 在servlet中使用更新方法完成信息的更新; ⑦ 在petview_name.jsp頁面中使用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頁面點(diǎn)擊瀏覽病例按鈕; ② 由serv
13、let接收提交信息并完成響應(yīng)請(qǐng)求的操作; ③ 在PetVisitDAO中定義方法searchPetHistory(petid)方法進(jìn)行查詢操作,并將結(jié)果以Arraylist 的形式提交給servlet; ④ servlet接收信息后跳轉(zhuǎn)頁面至petvisithistory.jsp病例瀏覽頁面。 時(shí)序圖: fpelld) ArrayLlst (9) 添加寵物訪問 ① 診所職員在寵物具體信息頁面點(diǎn)擊添加新病例按鈕,servlet接收請(qǐng)求并將頁面跳轉(zhuǎn)至 petnewvisit.jsp頁面; ② 診所職員輸入新寵物訪問信息并點(diǎn)擊提交按鈕; ③ servlet接收表單信息并處理
14、; ④ 在DAO中定義方法addNewVisit(pvdto),訪問數(shù)據(jù)庫visits完成數(shù)據(jù)添加操作; ⑤ servlet調(diào)用DAO中定義方法并處理提交數(shù)據(jù),完成后跳轉(zhuǎn)至petsearch.jsp頁面,并提示病例插入成功信息; 時(shí)序圖: 10)瀏覽寵物主人信息: ① 職工在petsearch.jsp頁面輸入查詢內(nèi)容; ② PetServlet接收表單傳入信息,并使用doPost()方法調(diào)用自身search方法; ③ 使用PetDAO定義searchPet方法,打開數(shù)據(jù)庫,判斷符合條件的信息輸出; ④ petsearch_name.jsp頁面使用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ì)話 無效; ④ 退出成功后進(jìn)入login.jsp登陸頁面。 時(shí)序圖: …「一一 3、數(shù)據(jù)庫設(shè)計(jì)
16、 ①employee:存放職工信息,用于職工登錄 字段名數(shù)據(jù)類型 長度 約束 能否為空 字段含義說明 namevarchar 20 主鍵 否 職工姓名 passwordvarchar 20 否 職工密碼 ②visits:存放訪問記錄 字段名 數(shù)據(jù)類型 長度 約束 能否為空 字段含義說明 id int 20 主鍵 否 訪問記錄編號(hào) pet_id int 20 外鍵 否 寵物編號(hào) visit_date datetime 訪問日期 description varchar 255 訪問備注
17、 ③vets:存放獸醫(yī)相關(guān)信息 字段名 數(shù)據(jù)類型 長度 約束 能否為空 字段含義說明 id int 20 主鍵 否 獸醫(yī)編號(hào) name varchar 30 獸醫(yī)姓名 ④specialties: 存放獸醫(yī)專業(yè)信息 字段名 數(shù)據(jù)類型 長度 約束 能否為空 字段含義說明 id int 20 主鍵 否 專業(yè)編號(hào) name varchar 80 專業(yè)名 ⑤vet-specialties:存放獸醫(yī)及其專業(yè)的對(duì)應(yīng)關(guān)系 字段名 數(shù)據(jù)類型 長度 約束 能否為空 字段含義說明 vet_
18、id int 20 外鍵 否 獸醫(yī)編號(hào) specialtyid int 20 外鍵 否 專業(yè)編號(hào) ⑥pets:存放寵物具體信息 字段名 數(shù)據(jù)類型 長度 約束 能否為空 字段含義說明 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ù)類型 長度 約束
19、 能否為空 字段含義說明 id int 20 主鍵 否 種類編號(hào) name varchar 80 種類名 ⑧owners:存放寵物主人具體信息 字段名 數(shù)據(jù)類型 長度 約束 能否為空 字段含義說明 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ù)庫的操作,并在使用元成后及時(shí)釋放連接 EmpDTO.java 封裝職工信息,并使用get、set方法便于調(diào)用 EmpDAO.java 定義verify方法訪問數(shù)據(jù)庫employee表,查詢用戶名及對(duì)應(yīng)密碼是否付合,符合即返回真 PetDTO.java 封裝龍物信息,并使用get、set方法便于調(diào)用 PetDAO.java ① 訪問數(shù)據(jù)庫owners、pets表,定義方法查詢龍物對(duì)應(yīng)信息,返回查詢結(jié)果表單; ② selectPetById方法訪問數(shù)據(jù)庫查詢指定龍物詳細(xì)信息; ③ updatePet方法訪問pets表元
21、成更新指定龍物信息操作; ④ addPet方法訪問pets表完成添加新寵物操作。 PetOwnerDTO.java 封裝龍物主人信息,并使用get、set方法便于調(diào)用 PetOwnerDAO.java ① viewPetOwner方法訪問owners表查詢指定寵物主人信息; ② updatePetOwner方法訪問owners表更新指定寵物主人信息; ③ addPetOwner方法訪問owners表添加新用戶信息。 PetVisitDTO.java 封裝龍物病例信息,并使用get、set方法便于調(diào)用 PetVisitDAO.java ① searchPetVisitHis
22、tory方法訪問visits表完成查詢病例操作; ② addNewVisit方法訪問visits表添加寵物病例。 SpecDTO.java 封裝獸醫(yī)專業(yè)信息,并使用get、set方法便于調(diào)用 VetDTO.java 封裝獸醫(yī)信息,并使用get、set方法便于調(diào)用 VetDAO.java 用于定義search()方法,打開數(shù)據(jù)庫進(jìn)彳丁獸醫(yī)匹配查詢 ②servlet使用文件: 文件名 文件主要功能及作用 EmpServlet.java 用于接收用戶登錄表單提交信息,調(diào)用DAO中方法決定是否跳轉(zhuǎn)頁面;用于接收處理職工的退出系統(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 ① 接受處理職工訪問病例請(qǐng)求; ② 接受處理添加病例請(qǐng)求。 ③jsp頁面使用文件: login.jsp
24、 “愛心”診所的主頁面,職工在此頁面進(jìn)行登陸操作; 若職工進(jìn)行退出系統(tǒng)操作,則返回至該頁面。 vetsearch.jsp 登錄成功后的跳轉(zhuǎn)頁面,用于輸入獸醫(yī)查詢信息,包括獸醫(yī)名及專業(yè)特長 vetsearch_name.jsp 查詢完成后的跳轉(zhuǎn)頁面,顯示獸醫(yī)查詢結(jié)果信息,包括獸醫(yī)及對(duì)應(yīng)專業(yè) petsearch.jsp ① 用于輸入寵物查詢信息,包括寵物名及主人姓名; ② 定義按鈕用于添加新客戶; ③ 定義按鈕用于添加新寵物; petsearch_name.jsp 查詢完成后的跳轉(zhuǎn)頁面,顯示寵物查詢結(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頁面:寵物查詢頁面 (2)關(guān)鍵代碼: ①登陸實(shí)現(xiàn) EmpDAO.java: publicclassEmpDAO{//用于打開數(shù)據(jù)庫,進(jìn)行用戶名與密碼的匹配 publicbooleanverify(EmpDTOdto){ DBdb=newDB();//打開數(shù)據(jù)庫操作 Statementstmt=db.getStatement(); Stringsq="SELECT*fromemployeewherename='"http://使用sql語言查詢數(shù)據(jù)庫 +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ǔ)登錄信息 //完成頁面跳轉(zhuǎn)工作 //跳轉(zhuǎn)至登陸頁面重新進(jìn)行登錄操作 Stringempname=request.getParameter("empname");//接收表單傳來的數(shù)據(jù)Stringpassword=request.getParameter("emppassword"); ② 獸醫(yī)及專業(yè)特長信息查詢 //接收用戶提交信息并存儲(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ī)信息展示頁面
}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ù)庫添加操作 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é)果頁面 if(isPass){
37、Stringok="ok"; request.setAttribute("check",ok); rd1=request.getRequestDispatcher("petnew.jsp");//增加新寵物頁面 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頁面: <% 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)至主人詳情頁面 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");//添加失敗,依然停留在添加頁面,重新添加rd.forward(request,response); } ⑤ 病歷增加相關(guān)實(shí)現(xiàn): RequestDispatcherrd=null; //接受表單傳來的數(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)測試 4.4.1系統(tǒng)測試數(shù)據(jù)清單 數(shù)據(jù)庫用例: ①employee:職工登錄名及對(duì)應(yīng)密碼 name password abc 123456 ②。wners:寵物主人測試用例,包括姓名、地址、所在城市、聯(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è)特長及對(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:訪問記錄 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)測試結(jié)果 測試用例: 具體測試頁面截圖 1)在登錄模塊輸入正確信息,點(diǎn)擊提交頁面能成功跳轉(zhuǎn): 2)點(diǎn)擊重置輸入內(nèi)容清空: 3)在獸醫(yī)查詢模塊輸入“小王”: 4)點(diǎn)擊查詢按鈕,頁面跳轉(zhuǎn)并顯示信息: 5)在獸醫(yī)查詢模塊輸入“牙科”,點(diǎn)擊查詢按鈕,頁面跳轉(zhuǎn)并顯示信息: 6)點(diǎn)擊寵物連接進(jìn)入寵物查詢
48、頁面,在寵物查詢頁面輸入“柚子”,點(diǎn)擊“查詢”按鈕頁面跳轉(zhuǎn) 并顯示信息: 7)在寵物查詢頁面輸入“李琦”,點(diǎn)擊“查詢”按鈕頁面跳轉(zhuǎn)并顯示信息: 退出磁卑世
49、 8)點(diǎn)擊添加新寵物按鈕,進(jìn)行寵物添加操作: 9)信息填寫完成點(diǎn)擊提交按鈕,或點(diǎn)擊放棄按鈕直接返回: 10)添加成功后跳轉(zhuǎn)至寵物查詢頁面,顯示添加成功信息: 11)點(diǎn)擊添加新客戶按鈕,跳轉(zhuǎn)至添加頁面輸入相關(guān)信息: 退出皺 所住風(fēng)市 RII肚64 IlLLlllIilil 12)添加成功后返回頁面并顯示添加成功信息: 13)點(diǎn)擊
50、寵物主人“宋玉”鏈接, 進(jìn)入寵物主人詳情界面: 7 鈾色軸些 未干 tafia 毅IBS Aiflilj ⑵仙啊1 14)編輯信息后點(diǎn)擊修改按鈕,進(jìn)行寵物信息更新操作: 15)點(diǎn)擊寵物“柚子”鏈接,進(jìn)入寵物詳情頁面: 軸主生拄MMM所柱血問電詁 気月址風(fēng) I伽弁闊 刪MH za 匸* 溯醬克港主人 稱干 16)點(diǎn)擊瀏覽病例按鈕,顯示寵物病例信息: 2019-00-22120000 ±A姓容
51、 就診備注 17)點(diǎn)擊返回按鈕回到寵物詳情頁面,點(diǎn)擊增加新病例按鈕,填寫就診信息: 18)點(diǎn)擊添加按鈕,提示成功信息: 19)點(diǎn)擊退出系統(tǒng)鏈接,返回登陸頁面,處于未登錄狀態(tài): 4.5 系統(tǒng)存在的主要問題及注意事項(xiàng) ① 在使用session進(jìn)行數(shù)據(jù)的傳輸時(shí),要注意object與其他數(shù)據(jù)類型的轉(zhuǎn)換問題,必要時(shí)可使用強(qiáng)制轉(zhuǎn)換;
52、② 該系統(tǒng)在顯示寵物信息時(shí)缺乏圖片等信息,信息查詢不夠直觀,還需完善; ③ 使用數(shù)據(jù)庫語言進(jìn)行查詢操作,輸出到j(luò)sp頁面的表單存在數(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ì)中,我們成功完成了“愛心”寵物診療系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn),并靈活使用servlet完成了各個(gè)頁面的跳轉(zhuǎn)工作。實(shí)驗(yàn)中,我使用JavaBean技術(shù)封裝數(shù)據(jù)庫,大大簡化了操作,使得代碼更加簡潔。實(shí)驗(yàn)中出現(xiàn)的各種問題以及問題的解決使我對(duì)Java技術(shù)的使用以及網(wǎng)頁制作方面更加熟練,在追求代碼正確的同時(shí)也兼顧了網(wǎng)頁設(shè)計(jì)的美觀性。 通過這次課程設(shè)計(jì),
53、我熟練掌握了基于MVC三層架構(gòu)模型的實(shí)現(xiàn)方式,能在jsp頁面中使用request.getAttribute的方法接收查詢出的信息,多次servlet連接問題的解決也更加堅(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)需求和需求分析說明書, (3) 附件3:《寵物診所系統(tǒng)設(shè)計(jì)說明書,
- 溫馨提示:
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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- C語言課件第十三章
- 三年級(jí)數(shù)學(xué)上冊(cè)-3-測量第4課時(shí)-千米的認(rèn)識(shí)(2)課件-新人教版
- 三年級(jí)下冊(cè)課件用估算解決問題人教版
- 細(xì)胞的能量轉(zhuǎn)換──線粒體和葉綠體課件
- 施耐德培訓(xùn)ModiconM340串行通訊課件
- 《余角和補(bǔ)角》課件-(高效課堂)獲獎(jiǎng)-人教數(shù)學(xué)2022--
- 余光中《鄉(xiāng)愁》課件
- 一元二次方程 (2)(教育精品)
- 八年級(jí)語文下冊(cè)-第2單元-情鑄詩魂-5《大堰河——我的保姆》作業(yè)課件-(新版)語文版
- 小學(xué)英語五年級(jí)上冊(cè)-(牛津譯林版)--Unit-6-My-e-friend-Story-time公開課ppt課件
- 譯林牛津一年級(jí)下Unit5-What's-this第三課時(shí)課件
- 第十八章第3節(jié) 測量小燈泡的電功率
- 第十五講 山地的形成 課件34
- 人教部編版語文一年級(jí)上冊(cè)《識(shí)字2-金木水火土》教學(xué)課件小學(xué)優(yōu)秀公開課
- 八年級(jí)語文上冊(cè)現(xiàn)代文閱讀教學(xué)課件:說明文閱讀-考點(diǎn)十三---辨別說明方法及其作用-答題模板及模板示例(共44