freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于struts和hibernate的教學(xué)答疑系統(tǒng)畢業(yè)論文(參考版)

2025-07-06 10:10本頁(yè)面
  

【正文】 在這次畢業(yè)設(shè)計(jì)中我使用到了非常多的新技術(shù),在 基于 Struts 和 Hibernate 的教學(xué)答疑系統(tǒng) 這個(gè)課題的基礎(chǔ)上,我加上了 Spring 做了一個(gè)代理程序,也算是 SSH 框架吧,校驗(yàn)也使用了 ajax,對(duì)于這些技術(shù)的運(yùn)用我只是了解皮毛而已,但是要是想更深入的了解,使用 J2EE 我要學(xué)習(xí)的還很多,要鞏固的還很多。 當(dāng) Web 開(kāi)發(fā)繼續(xù)演變它的工具和編程方法時(shí) ,Java 應(yīng)用程序框架也將繼續(xù)成長(zhǎng)下去 。 在使用 JavaEE 對(duì)于 Web 技術(shù)的開(kāi)發(fā)后 ,我深刻的體會(huì)到 Web 技術(shù)的 分層結(jié)構(gòu)及其優(yōu)點(diǎn) 。 第二,在積累經(jīng)驗(yàn)方面,感覺(jué)平時(shí)的學(xué)習(xí)只有通過(guò)實(shí)踐才能真正掌握 ,雖然有時(shí)候嘴上能把很多東西說(shuō)的很詳細(xì) ,很輕松 ,但是真正寫(xiě)了才發(fā)現(xiàn)問(wèn)題很多 ,這對(duì)于我來(lái)說(shuō)是本此畢業(yè)設(shè)計(jì)的最大收獲 。 第一 ,關(guān)于程序設(shè)計(jì)方面,由于系統(tǒng)較小所以采用瀑 布式開(kāi)發(fā) ,但由于經(jīng)驗(yàn)太少和對(duì)業(yè)務(wù)的考慮不夠深遠(yuǎn) ,導(dǎo)致寫(xiě)代碼時(shí)發(fā)現(xiàn)有些寫(xiě)到的類(lèi)用不到 ,要用到的沒(méi)寫(xiě) ,在這方面可以說(shuō)教訓(xùn)很大 。 獨(dú)立開(kāi)發(fā)一個(gè) 基于 Struts 和 Hibernate 的教學(xué)答疑系統(tǒng) ,從接受畢業(yè)設(shè)計(jì)的任務(wù),到熟悉軟件開(kāi)發(fā)環(huán)境,再到集中精力開(kāi)發(fā)系統(tǒng),整個(gè)過(guò)程中遇到了很多問(wèn)題,我學(xué)著自己解決這些問(wèn)題,在解決問(wèn)題的過(guò)程中,學(xué)到了很多有用的東西 。 問(wèn)題還有很多 ,以上只是挑取比較常見(jiàn)的幾種 。 2)DAO 層 HQL 語(yǔ)言的使用問(wèn)題 ,除了上面說(shuō)到的延遲抓取 ,HQL 畢竟有別與我們經(jīng)常使用的 SQL 語(yǔ)言 ,經(jīng)常由于兩者相互混淆而導(dǎo)致錯(cuò)誤 。 另一種 錯(cuò)誤是邏輯錯(cuò)誤,在編譯的時(shí)候不易發(fā)現(xiàn),而在運(yùn)行之后結(jié)果與程序員預(yù)先設(shè)想的結(jié)果不一致,但是系統(tǒng)又沒(méi)有提示,所以這樣的情況下,需要仔細(xì)查找原因 。 在調(diào)試過(guò)程中,可能會(huì)遇到多種錯(cuò)誤,最常見(jiàn)且易發(fā)現(xiàn)的是編譯錯(cuò)誤 。 當(dāng)然這個(gè)步驟是伴隨著調(diào)試進(jìn)行的,因此調(diào)試滲透在整個(gè)軟件開(kāi)發(fā)過(guò)程之中,而且,對(duì)于系統(tǒng)中大部分的局部設(shè)計(jì)、開(kāi)發(fā)過(guò)程是建立在實(shí)驗(yàn)的基礎(chǔ)上的,而進(jìn)行實(shí)驗(yàn)的目的也是為了便于進(jìn)行各種測(cè)試與調(diào)試,來(lái)確定與了解某些控件或類(lèi)的功能、屬性、方法以及可能出現(xiàn)的問(wèn)題等等,可以說(shuō)調(diào)試在整個(gè)開(kāi)發(fā)過(guò)程中占了很大一部分時(shí)間 。 如何在浩如煙海的程序元素中找出有錯(cuò)誤的幾個(gè)元素,這是調(diào)試過(guò)程中最關(guān)鍵的技術(shù)問(wèn)題 。 調(diào)試是軟件開(kāi)發(fā)過(guò)程中最艱巨的腦力勞動(dòng) 。 } 第六章 軟件測(cè)試 調(diào)試本身的目的是盡可能多地暴露程序中的錯(cuò)誤,但是 ,發(fā)現(xiàn)錯(cuò)誤的最終目的還是為了改正錯(cuò)誤 。 AdminMgmtDAO的 deleteQuestion方法 , public void deleteQuestion(Integer id) { Question q = (Question) ().get(, id)。 return (success)。 Integer id = ((uid))。)) { return false。 管理員進(jìn)入 問(wèn)題 管理后 ,可以 td a href=%=() %/?qid=${ }查看解答 /a /td td a onclick=javascript:if(!confirm(39。 (圖 514) 圖 514 管理問(wèn)題界面 注冊(cè)用戶(hù)的設(shè)計(jì) 這個(gè)系統(tǒng)是面對(duì)校內(nèi)的同學(xué)老師開(kāi)放的,所以我的思想是只能有管理員才能進(jìn)行開(kāi)放注冊(cè)的功能,學(xué)生是學(xué)號(hào),老師是 用戶(hù)名,進(jìn)入 頁(yè)面,在表單最后點(diǎn)擊注冊(cè)。 /問(wèn)題 管理功能的設(shè)計(jì) 管理員 進(jìn)入人員 /問(wèn)題 管理后 ,可以通過(guò)不同的帶參數(shù)超連接進(jìn)行學(xué)生 ,教師和管理員或者問(wèn)題 的查看 ,還可以通過(guò)用戶(hù)名進(jìn)行單個(gè)用戶(hù)的查看 。 圖 513 管理員模塊活動(dòng)圖 管理員的一般操作如登錄 ,注冊(cè) ,注銷(xiāo) ,對(duì)應(yīng)系統(tǒng) Action,然后根據(jù)類(lèi)型的不同返回不同的頁(yè)面 。 } 進(jìn)行對(duì) answer 的更新 。 } 該方法先從 session中取得 answer,然后對(duì) answerQuestion進(jìn)行修改 ,并調(diào)用 TeacheMgmtDAO中的 updateAnswer方法進(jìn)行答案的修改 。 ().setAttribute(ANSWERQ,q)。 Integer id = ((qid))。 以 教師修改 答案為例 :教師點(diǎn)擊 進(jìn)入 解答 超連接進(jìn)入 。 answerQuestion 方法進(jìn)行回答問(wèn)題。 教師 的其他操作對(duì)應(yīng) TeacherAction,利用隱藏標(biāo)簽或者超鏈接直接帶參數(shù)調(diào)用不同的方法 ,在各個(gè)方法中 ,調(diào)用 教師 業(yè)務(wù)實(shí)現(xiàn)類(lèi) TeacherMgmtServiceImpl, TeacheMgmtServiceImpl再調(diào)用不同的 TeacheMgmtDAO 類(lèi)實(shí)現(xiàn)對(duì)象的基本 操作以完成業(yè)務(wù)操作 ,然后根據(jù) 中對(duì)應(yīng)的路徑返回頁(yè)面。讓題庫(kù)能適應(yīng)學(xué)生的要求。 } 該方法通過(guò) qid 調(diào)用業(yè)務(wù)層 QuestionMgmtServiceImpl 中的 findQuestionById 方法獲得該題目的問(wèn)題和答案 ,DAO 中 其代碼為 : public Question qryByid(Integer id) { return (Question)().get()。 ().setAttribute(LOOKQ,q)。 Integer id = ((qid))。 學(xué)生 信息修改 界面 (圖 510): 圖 510 學(xué)生信息修改界面 以學(xué)生查詢(xún)自己以解答案為例 :學(xué)生點(diǎn)擊查看問(wèn)題連接通過(guò) 頁(yè)面跳轉(zhuǎn)進(jìn)入。 學(xué)生提問(wèn)功能的設(shè)計(jì) 學(xué)生 進(jìn)入學(xué)生模塊后 , 調(diào)用 StudentAction 中的 listQuestion 方法 看到所有的問(wèn)題,可以進(jìn)入看看是否回答了 ,并顯實(shí) 在學(xué)生的瀏覽器上,若學(xué)生對(duì) 想提出問(wèn)題 可以 調(diào)用StudentAcion 中的 bringQuestion 方法 把題目添加到 題庫(kù) ,等待老師來(lái)解決。 圖 57 學(xué)生模塊活動(dòng)圖 學(xué)生的一般操作如登錄 , 注銷(xiāo) , 對(duì)應(yīng)系統(tǒng) Action,然后根據(jù)類(lèi)型的不同返回不同的頁(yè)面 。 以 userinfo為例 ,在實(shí)體包下添加 ,在里面添加配置 : ?xml version=? !DOCTYPE hibernatemapping SYSTEM hibernatemapping package= class name=Userinfo table=userinfo id name=id generator class=increment/generator /id property name=loginname/ property name=loginpassword/ property name=name/ property name=sex/ property name=phone/ property name=/ property name=status update=false/ /class /hibernatemapping 學(xué)生用戶(hù)模塊的設(shè)計(jì) 學(xué)生功活動(dòng)圖如下 (圖 57): 學(xué)生通過(guò)帳號(hào)密碼登錄 , 學(xué)生 登錄后可以選擇查看個(gè)人資料或者進(jìn)入答疑系統(tǒng) ,進(jìn)入答疑系統(tǒng)后可以提出 問(wèn)題,問(wèn)題提交給服務(wù)器端 , 等待教師的解答。InnoDB free: 10240 kB39。 Operationid 為 章節(jié)對(duì)應(yīng)的 id;類(lèi)型 int。 name 為 功能名 ; 類(lèi)型 Varchar。 SQL 建表語(yǔ)句 : CREATE TABLE `operations` ( `id` int(10) NOT NULL auto_increment, `name` varchar(30) NOT NULL, `mid` int(10) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=gb2312。 類(lèi)型 Varchar。 類(lèi)型為 INT。 SQL 建表語(yǔ)句 : CREATE TABLE `modules` ( `id` int(10) NOT NULL auto_increment, `mname` varchar(20) NOT NULL, `url` varchar(30) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=gb2312。 mname 為 模塊名; 類(lèi)型 Varchar。 modules(表 54): 表 54 modules表 id 為 模塊的 id,與業(yè)務(wù)無(wú)關(guān) ,為此表主鍵約束 。 Answer 為問(wèn)題回答;可以為空,類(lèi)型 Varchar。 questionname 為問(wèn)題 主題 ; 類(lèi)型 varchar。 其他表的建立如下 : Questions(表 53): 表 53 questions表 ID 為問(wèn)題 ID,與業(yè)務(wù)無(wú)關(guān) , 為此表主鍵約束 。 類(lèi)型 Varchar Email 為用戶(hù) ; 唯一約束 。 唯一約束 。 為此表主鍵約束 。 (圖 51) 圖 51 數(shù)據(jù)庫(kù)聯(lián)系圖 數(shù)據(jù)庫(kù)表的建立 以 userinfo 表為例 ,由于實(shí)體類(lèi)設(shè)計(jì)管理員 ,學(xué)生 ,教師都有用戶(hù) 表 而來(lái) ,所以建表是需要考慮到 權(quán)限功能的不同 ,因此在用戶(hù)表 有 字段 status 區(qū)分到底是哪個(gè) 權(quán)限的用戶(hù) (表52)。 }直接使用 service調(diào)用方法 問(wèn)題表 用戶(hù)表 章節(jié)關(guān)鍵字表 模塊功能表 第五章 系統(tǒng)詳 細(xì)設(shè)計(jì) 系統(tǒng)共分學(xué)生用戶(hù)模塊 ,教師用戶(hù)模塊 ,題庫(kù)管理模塊和管理員模塊 。 public AdminMgmtService getService() { return service。 } public void register(Userinfo userinfo) { (userinfo)。 } public CollectionQuestion queryAll() { return ()。 } public void deleteUser(Integer id) { (id)。 return ms。 } public void setDao(AdminMgmtDAO dao) { = dao。 } AdminMgmtServiceImpl 類(lèi)代碼如下 ,在需要使用 DAO 時(shí)就直接調(diào)用方法 ,寫(xiě)好 get 和 set 方法 : public class AdminMgmtServiceImpl implements AdminMgmtService { private AdminMgmtDAO dao。 void deleteUser(Integer id)。 void deleteQuestion(Integer id)。 CollectionQuestion queryAll()。 public interface AdminMgmtService { Userinfo login(String loginname, String loginpassword)。 跟為系統(tǒng)以后的擴(kuò)展提供了良好接口 。 :工廠模式 。 在持久層 :選用 Hibernate 為主要技術(shù) ,負(fù)責(zé)對(duì)持久對(duì)象的操作 。 系統(tǒng)流程圖如 (圖 41)所示 圖 (41) 系統(tǒng)流程圖 登錄 判斷權(quán)限 學(xué)生模塊 教 師模塊 管理員模塊 查看問(wèn)題 提交問(wèn)題 修改資料 修改資料 查看問(wèn)題 解答問(wèn)題 管理人員 管理問(wèn)題 注冊(cè) 退出 終止 系統(tǒng)用例圖設(shè)計(jì) 系統(tǒng)用例圖如 (圖 42)所示 圖 42 系統(tǒng)用例圖 本系統(tǒng)的分層結(jié)構(gòu)以及技術(shù)選用 : (圖 43) 圖 43 分層結(jié)構(gòu)技術(shù)圖 在整體設(shè)計(jì)模式上采用 StrutsMVC 模式的 B/S 架構(gòu) serviceLocator 表示層 Struts Struts Action, ActionForm, Jsp, Strutsconfig.xml,etc. DAO Classes JavaBean Hibernate session Management 持久層 Hibernate DataSource Transactions Business Service Cl
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1