Javaweb軟件實(shí)踐課程設(shè)計(jì)報(bào)告書
《Javaweb軟件實(shí)踐課程設(shè)計(jì)報(bào)告書》由會員分享,可在線閱讀,更多相關(guān)《Javaweb軟件實(shí)踐課程設(shè)計(jì)報(bào)告書(33頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、南通大學(xué)信息科學(xué)技術(shù)學(xué)院 Java軟件實(shí)踐課程設(shè)計(jì)報(bào)告冊 班級 姓名 學(xué)號 指導(dǎo)教師 設(shè)計(jì)時間 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é)生可以對HTML技術(shù)、CSS技術(shù)、JSP開發(fā)技術(shù)、JavaBean技術(shù)、Servlet技術(shù)等知識有一個系統(tǒng)全面的掌握,同時了解現(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)后隨時退出系統(tǒng):設(shè)置退出系統(tǒng)鏈接,一旦退出,即刪除session信息,再次進(jìn)入需重新登錄; ③ 職工可以瀏覽獸醫(yī)信息:包括
3、獸醫(yī)姓名及專業(yè)特長;可以查詢獸醫(yī)對應(yīng)的多個專業(yè)特長,也可以查詢相同專業(yè)對應(yīng)的多個獸醫(yī); ④ 職工可以瀏覽寵物信息:包括寵物編號、寵物姓名、寵物生日、寵物種類、寵物主人等信息; ⑤ 職工可以點(diǎn)擊寵物上的超鏈接查看寵物主人具體信息:包括主人編號、主人姓名、主人地址、所在城市以及電話號碼等信息; ⑥ 職工可以更新、添加寵物主人信息以及寵物信息,并做好主人與寵物之間的聯(lián)系工作: ⑦ 職工可以選擇添加新客戶:添加每個客戶的具體信息,存入寵物主人檔案,以完成后續(xù)添加寵物及寵物的對應(yīng)工作; ⑧ 診所職員可以添加訪問信息:包括訪問時間及具體問題描述; ⑨ 診所職員可以瀏覽寵物的歷史訪問記錄。 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)活動都在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ù)庫中查找并核對信息,如果信息正確,則返回true值; ④ EmpServlet判斷verity返回的值是否為真,若為真,則跳轉(zhuǎn)至正確頁面;若為假,則依然處于登錄頁面,便于職工重新登錄。 時序圖: □ □ 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()%〉形式輸出; 時序圖: (3)寵物查詢模塊 ① 職工點(diǎn)擊鏈接進(jìn)入寵物查詢頁面petsearch.jsp; ② 輸入寵物名或?qū)櫸镏魅嗣M(jìn)行查詢; ③ servlet接收表單提交的數(shù)據(jù),處理查詢請求,使用d
7、oPost方法調(diào)用自身search方法,并處理頁面跳轉(zhuǎn)工作; ④ 在PetDAO中定義searchPet方法訪問數(shù)據(jù)庫owners表,pets表完成信息查詢; ⑤ 跳轉(zhuǎn)至petsearch_name.jsp頁面,使用session方法接收查詢信息并顯示。 時序圖: 提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接收并處理請求,將頁面跳轉(zhuǎn)至petnew.jsp頁面; ② 職工在添加信息頁面填寫新用戶相關(guān)信息并提交表單; ③ 在PetDAO中定義方法addPet,訪問數(shù)據(jù)庫pets表,完成新寵物添加工作; ④ 返回至petsearch.jsp頁面,此時,添加任務(wù)已完成。 壬 FetStrvlet < 時序圖: SESBs冊sKS doPcstfreq.resp) addPet|jpdto) :pet&tarcb-j&p :prtnewjsp 職工 (□mard forwaid (5)添加新客戶模
9、塊 ① 職員在petsearch.jsp頁面點(diǎn)擊新增新客戶按鈕,由servlet接收并處理請求,將頁面跳轉(zhuǎn)至newpetowner.jsp頁面; ② 職工在添加信息頁面newpetowner.jsp填寫新用戶相關(guān)信息并提交表單,由servlet接收請求信息,并調(diào)用DAO中相應(yīng)方法進(jìn)行處理; ③ 在PetOwnerDAO中定義方法addPetOwner訪問數(shù)據(jù)庫中的owners表,執(zhí)行相應(yīng)sql語句,完成新客戶信息添加工作; ④ 重新跳轉(zhuǎn)至petsearch.jsp頁面,此時客戶已經(jīng)添加成功。 時序圖: (6) 更新寵物主人信息模塊: ① 在petsearch_name.jsp
10、頁面點(diǎn)擊寵物主人鏈接,將頁面此時信息傳入servlet; ② 在servlet中接收處理更新請求,并使用doPost()方法調(diào)用自身search方法,同時,調(diào)用DA0中的相關(guān)方法進(jìn)行查詢和輸出工作; ③ 使用PetOwnerDAO定義方法viewPetOwner及updatePetOwners,分別進(jìn)行寵物主人的信息查詢和信息更新操作; ④ 在ownerupdate.jsp頁面中使用JavaBean技術(shù)及session相關(guān)方法進(jìn)行信息的展示。 時序圖: (7)更新寵物信息模塊: ① 在petsearch_name.jsp頁面點(diǎn)擊寵物鏈接,將頁面此時信息傳入servlet,由se
11、rvlet將頁面跳轉(zhuǎn)至petview_name.jsp頁面; ② 在servlet中接收處理更新請求,并使用doPost()方法調(diào)用自身search方法,同時,調(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)行信息的展示。 壬 □ □ 時序圖: 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)請求的操作; ③ 在PetVisitDAO中定義方法searchPetHistory(petid)方法進(jìn)行查詢操作,并將結(jié)果以Arraylist 的形式提交給servlet; ④ servlet接收信息后跳轉(zhuǎn)頁面至petvisithistory.jsp病例瀏覽頁面。 時序圖: fpelld) ArrayLlst (9) 添加寵物訪問 ① 診所職員在寵物具體信息頁面點(diǎn)擊添加新病例按鈕,servlet接收請求并將頁面跳轉(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頁面,并提示病例插入成功信息; 時序圖: 10)瀏覽寵物主人信息: ① 職工在petsearch.jsp頁面輸入查詢內(nèi)容; ② PetServlet接收表單傳入信息,并使用doPost()方法調(diào)用自身search方法; ③ 使用PetDAO定義searchPet方法,打開數(shù)據(jù)庫,判斷符合條件的信息輸出; ④ petsearch_name.jsp頁面使用session進(jìn)行信息的
15、輸出。 時序圖: n □ sea'-chPetfpetiysrrie, :Rt觀rchjwp :PetServlet :PetDAQ :p£tsearch_namejfp doPost(req,resp} seanchtpelnanw,peto^mer) (11)退出模塊 ① 用戶點(diǎn)擊退出鏈接; ② EmpServlet接受用戶請求并處理請求; ③ 使用session對象儲存用戶登錄信息,并在退出鏈接觸發(fā)后,使用invalidate方法使客戶的會話 無效; ④ 退出成功后進(jìn)入login.jsp登陸頁面。 時序圖: …「一一 3、數(shù)據(jù)庫設(shè)計(jì)
16、 ①employee:存放職工信息,用于職工登錄 字段名數(shù)據(jù)類型 長度 約束 能否為空 字段含義說明 namevarchar 20 主鍵 否 職工姓名 passwordvarchar 20 否 職工密碼 ②visits:存放訪問記錄 字段名 數(shù)據(jù)類型 長度 約束 能否為空 字段含義說明 id int 20 主鍵 否 訪問記錄編號 pet_id int 20 外鍵 否 寵物編號 visit_date datetime 訪問日期 description varchar 255 訪問備注
17、 ③vets:存放獸醫(yī)相關(guān)信息 字段名 數(shù)據(jù)類型 長度 約束 能否為空 字段含義說明 id int 20 主鍵 否 獸醫(yī)編號 name varchar 30 獸醫(yī)姓名 ④specialties: 存放獸醫(yī)專業(yè)信息 字段名 數(shù)據(jù)類型 長度 約束 能否為空 字段含義說明 id int 20 主鍵 否 專業(yè)編號 name varchar 80 專業(yè)名 ⑤vet-specialties:存放獸醫(yī)及其專業(yè)的對應(yīng)關(guān)系 字段名 數(shù)據(jù)類型 長度 約束 能否為空 字段含義說明 vet_
18、id int 20 外鍵 否 獸醫(yī)編號 specialtyid int 20 外鍵 否 專業(yè)編號 ⑥pets:存放寵物具體信息 字段名 數(shù)據(jù)類型 長度 約束 能否為空 字段含義說明 id int 20 主鍵 否 寵物編號 name varchar 30 寵物名 birth_date datetime 出生日期 type_id int 20 外鍵 否 種類編號 ownerid int 20 外鍵 否 對應(yīng)主人編號 ⑦types:存放寵物種類信息 字段名 數(shù)據(jù)類型 長度 約束
19、 能否為空 字段含義說明 id int 20 主鍵 否 種類編號 name varchar 80 種類名 ⑧owners:存放寵物主人具體信息 字段名 數(shù)據(jù)類型 長度 約束 能否為空 字段含義說明 id int 20 主鍵 否 主人編號 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ù)庫的操作,并在使用元成后及時釋放連接 EmpDTO.java 封裝職工信息,并使用get、set方法便于調(diào)用 EmpDAO.java 定義verify方法訪問數(shù)據(jù)庫employee表,查詢用戶名及對應(yīng)密碼是否付合,符合即返回真 PetDTO.java 封裝龍物信息,并使用get、set方法便于調(diào)用 PetDAO.java ① 訪問數(shù)據(jù)庫owners、pets表,定義方法查詢龍物對應(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)請求。 VetServlet.java 用
23、于接收處理職工輸入的獸醫(yī)查詢請求,使用session傳遞查詢結(jié)果信息 PetServlet.java ① 用于接收處理職工輸入的寵物查詢請求,doPost方法調(diào)用自身search方法; ② 處理職工更新寵物信息請求; ③ 處理職員添加新寵物請求。 PetOwnerServlet.java ① 用于接收處理職工輸入的查詢、更新寵物主人的請求,doPost方法調(diào)用 自身search方法; ② 接受處理職員添加新客戶請求。 PetVisitServlet.java ① 接受處理職工訪問病例請求; ② 接受處理添加病例請求。 ③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ī)及對應(yīng)專業(yè) petsearch.jsp ① 用于輸入寵物查詢信息,包括寵物名及主人姓名; ② 定義按鈕用于添加新客戶; ③ 定義按鈕用于添加新寵物; petsearch_name.jsp 查詢完成后的跳轉(zhuǎn)頁面,顯示寵物查詢結(jié)果,包括寵物名及對應(yīng)主人姓名 ownerupdate.jsp 顯示查詢
25、主人具體信息,可進(jìn)行修改更新,并及時顯示更新完成結(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(”信息填寫錯誤,請重新登錄");response.sendRedirect("login.jsp"); } } //調(diào)用verity方法判斷用戶名密碼是否正確//使用
30、session存儲登錄信息 //完成頁面跳轉(zhuǎn)工作 //跳轉(zhuǎn)至登陸頁面重新進(jìn)行登錄操作 Stringempname=request.getParameter("empname");//接收表單傳來的數(shù)據(jù)Stringpassword=request.getParameter("emppassword"); ② 獸醫(yī)及專業(yè)特長信息查詢 //接收用戶提交信息并存儲 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中存入的對象 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:職工登錄名及對應(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è)特長及對應(yīng)的id Id name 1 牙科 2 內(nèi)科 3 皮膚科 4 放射科 ⑤types:寵物種類及其對應(yīng)id ⑥vet_specialities:獸醫(yī)及其專業(yè)的對應(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ù)的傳輸時,要注意object與其他數(shù)據(jù)類型的轉(zhuǎn)換問題,必要時可使用強(qiáng)制轉(zhuǎn)換;
52、② 該系統(tǒng)在顯示寵物信息時缺乏圖片等信息,信息查詢不夠直觀,還需完善; ③ 使用數(shù)據(jù)庫語言進(jìn)行查詢操作,輸出到j(luò)sp頁面的表單存在數(shù)據(jù)冗余現(xiàn)象,同一專業(yè)對應(yīng)多個獸醫(yī),同一獸醫(yī)對應(yīng)多個專業(yè)時,數(shù)據(jù)冗余現(xiàn)象更加明顯,還需要改進(jìn)。 4.6 設(shè)計(jì)總結(jié)及體會 本次課程設(shè)計(jì)中,我們成功完成了“愛心”寵物診療系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn),并靈活使用servlet完成了各個頁面的跳轉(zhuǎn)工作。實(shí)驗(yàn)中,我使用JavaBean技術(shù)封裝數(shù)據(jù)庫,大大簡化了操作,使得代碼更加簡潔。實(shí)驗(yàn)中出現(xiàn)的各種問題以及問題的解決使我對Java技術(shù)的使用以及網(wǎng)頁制作方面更加熟練,在追求代碼正確的同時也兼顧了網(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等.壓縮文件請下載最新的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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 外研版高中英語選修六Module6第三課時語法講解
- 初三中考二輪復(fù)習(xí)語法專題動詞時態(tài)專項(xiàng)教學(xué)課件
- 辦公室員工健康指南
- Unit 2 Lesson 11 Australia
- 《產(chǎn)房秘密早知道》課件
- 第7單元—認(rèn)識鐘表
- 第5課時小數(shù)乘小數(shù)(3)
- 文集員工危機(jī)意識培訓(xùn)課件
- 患者病情評估培訓(xùn)
- 表內(nèi)乘法(一)整理與復(fù)習(xí) (2)(教育精品)
- 2022年冀教版《Lesson40-Move-Your-Body》課件-3
- 高頻鉬靶X線機(jī)在乳腺疾病中的應(yīng)用
- 第24章圓的復(fù)習(xí)課件(教育精品)
- 品管圈提高下肢深靜脈血栓預(yù)防措施落實(shí)率課件
- 大學(xué)生戀愛觀課件