【正文】
ent of Function Management ModuleAbstractSMART System is a new intelligent information management system of online examine. It uses the JAVA technology in language, uses the MVC in framework, and uses the IOC antilogy of Spring and ORM technology in its operation framework. The system mainly implements the online examination and evaluation of students, and the teachers management and maintenance of students examination information online as well. The system uses multiplex users and roles management mechanism. After the users log on, they can use the functions they owned. The management function module of system includes users management, role management, role setup management, right management, system menu management, log management and the validation of the users’ logon management. Through these configuration of system functions, the system carries out the role intercalation and distribution of the all users, restricts and records the information of all users how they used in the system. These can make the system right configuration flexible, and the data operations security.Key words: the users。 意義系統(tǒng)功能管理模塊是現(xiàn)在管理系統(tǒng)軟件中很重要的一環(huán),很多國(guó)內(nèi)較出名的軟件廠商都設(shè)計(jì)了較完善的也具有自己特色的系統(tǒng)功能管理模塊(權(quán)限管理模塊),但對(duì)于很多沒(méi)那么規(guī)范的軟件商,他們經(jīng)常是接到系統(tǒng),就設(shè)計(jì)一套系統(tǒng)功能管理模塊,每套都不同,有的甚至不夠重視,隨便寫(xiě)上一段,哪里都拷過(guò)去用;有的也曾費(fèi)盡心機(jī),但結(jié)果總不能令自己滿意。分布式應(yīng)用程序需要系統(tǒng)級(jí)服務(wù),如事務(wù)管理、安全性、客戶端連接池?cái)?shù)據(jù)庫(kù)訪問(wèn)。 StrutsStruts就是在JSP Model2的基礎(chǔ)實(shí)現(xiàn)了MVC設(shè)計(jì)模式的WEB Framework。它只是一個(gè)框架和一組服務(wù),用于通過(guò)插件組件構(gòu)建開(kāi)發(fā)環(huán)境,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 Java 開(kāi)發(fā)工具(Java Development Tools,JDT)。SMART在線考試系統(tǒng)是為處在不同地點(diǎn)的不同用戶提供網(wǎng)上數(shù)據(jù)操作服務(wù)的。系統(tǒng)的總體設(shè)計(jì)框架如圖22:圖22系統(tǒng)總體設(shè)計(jì)框架流程圖216。用戶管理模塊功能框架圖如圖:圖25 用戶管理模塊功能圖216。Session維護(hù):維護(hù)用戶登錄系統(tǒng)的會(huì)話時(shí)間。新增功能:系統(tǒng)管理員可以直接向數(shù)據(jù)庫(kù)增加一個(gè)新的用戶。 角色管理n 功能需求系統(tǒng)為用戶提供不同功能權(quán)限的角色對(duì)象,用戶擁有的功能是由用戶擁有的角色對(duì)象來(lái)確定,一個(gè)用戶可以擁有多個(gè)角色對(duì)象,用戶的功能是由這多個(gè)角色對(duì)象的并集。n 模塊劃分搜索功能:該功能主要是搜索當(dāng)前系統(tǒng)中所具有的角色或用戶,主要為角色設(shè)置管理提供管理的對(duì)象。n 模塊劃分搜索功能:該功能提供了模糊匹配搜索功能,搜索的對(duì)象主要包括兩個(gè),角色和任務(wù)。n 模塊劃分搜索功能:可以通過(guò)匹配參數(shù)對(duì)用戶過(guò)去對(duì)系統(tǒng)的一些操作進(jìn)行查詢搜索,提供了對(duì)某些輸入?yún)?shù)的模糊匹配搜索。n 應(yīng)用場(chǎng)景用戶在登錄系統(tǒng)后,看到的系統(tǒng)功能模塊表示他都有權(quán)對(duì)其進(jìn)行操作,而他無(wú)權(quán)管理的功能部分則根本看不到。 教師用戶表教師用戶表主要存儲(chǔ)的信息是教師用戶以及學(xué)校領(lǐng)導(dǎo)之類用戶的信息:表31 教師用戶表(SMART_TEACHER)數(shù)據(jù)結(jié)構(gòu)字段名稱數(shù)據(jù)類型是否是主鍵是否是外鍵是否可NULL備注teacher_idDECIMAIL(18,0)YESNONO自增IDteacher_noVARCHAR(50)NONONO教師NOtypeVARCHAR(20)NONONO類型uinVARCHAR(20)NONONOUINteacher_nameVARCHAR(50)NONONO教師姓名province_noVARCHAR(50)NONOYES省city_noVARCHAR(50)NONOYES市 ounty_noVARCHAR(50)NONOYES區(qū)/縣ref_school_noVARCHAR(50)NONOYES學(xué)校grade_noVARCHAR(50)NONOYES年級(jí)class_noVARCHAR(50)NONOYES班級(jí)teacher_subjectVARCHAR(50)NONOYES所教課程telVARCHAR(20)NONOYES聯(lián)系電話e_mailVARCHAR(50)NONOYESEMAIL地址addressVARCHAR(100)NONOYES地址信息record_numberINTEGERNONONO版本控制remarkVARCHAR(100)NONOYES備注216。 子模塊表該表用來(lái)存儲(chǔ)系統(tǒng)中的每一個(gè)功能的CODE代碼以及他們父子模塊之間的關(guān)系。//加載權(quán)限 ().setAttribute(, permission)。amp。 while (()) {//根據(jù)用戶角色取得角色任務(wù)列表 role = (PcmRole) ()。//獲取任務(wù)CODE if (task != null amp。查找數(shù)據(jù)庫(kù)中是否存在當(dāng)前添加的用戶NO。在struts的action中通過(guò)調(diào)用business中的processSearchByUin方法,并通過(guò)這個(gè)方法來(lái)調(diào)用Impl中的searchByUin來(lái)進(jìn)行UIN查找,代碼實(shí)現(xiàn)如下: HashMap params = new HashMap()。 while (()) {//是否具有返回結(jié)果 obj = (SmartTeacher) ()。其界面設(shè)置如圖46用戶角色設(shè)置圖:圖46 用戶角色設(shè)置界面圖其實(shí)現(xiàn)上述功能的流程圖如圖:圖47 用戶角色設(shè)置功能詳細(xì)流程圖 代碼實(shí)現(xiàn)首先根據(jù)輸入?yún)?shù)搜索要設(shè)置的相關(guān)用戶,其代碼實(shí)現(xiàn)為: String type = (String) (((type) != null amp。 result = (params)。其界面設(shè)置如圖49角色任務(wù)設(shè)置圖:圖48 角色任務(wù)設(shè)置界面圖要實(shí)現(xiàn)角色任務(wù)的設(shè)置,首先要搜索角色、任務(wù)對(duì)象以及角色任務(wù)對(duì)象,然后再對(duì)角色和任務(wù)這兩個(gè)對(duì)象進(jìn)行關(guān)系關(guān)聯(lián),如圖49:圖49 角色任務(wù)功能詳細(xì)流程圖 代碼實(shí)現(xiàn)首先要通過(guò)輸入的參數(shù)進(jìn)行角色搜索、任務(wù)搜索以及角色任務(wù)搜索,將搜索的結(jié)果放入一個(gè)叫RoleTaskSearch的對(duì)象中,并在將其如上圖的界面展現(xiàn)出來(lái),并在展現(xiàn)中提供Ajax的角色權(quán)限設(shè)置方式,讓用戶在設(shè)置權(quán)限的時(shí)候操作簡(jiǎn)便。 / /logic:iterate/display:table用戶通過(guò)點(diǎn)擊頁(yè)面上的“Y”和“”來(lái)相互轉(zhuǎn)換,每次轉(zhuǎn)換都是通過(guò)Ajax來(lái)執(zhí)行一個(gè)后臺(tái)方法。,39。//檢查權(quán)限 if (checkPermission(SMART_AUDIT_0403) || checkPermission(SMART_AUDIT_0404)) { if (checkPermission(SMART_AUDIT_0403)) (DeleteButton)。displayMenu代碼實(shí)現(xiàn)如下: String[] str = (,)。 } if (j == 1) return true。//教師用戶搜索方法測(cè)試 (teacherNo, )。) { entity = (SearchTeacher) ()。 系統(tǒng)功能權(quán)限測(cè)試現(xiàn)在我們將對(duì)系統(tǒng)中的一些功能進(jìn)行測(cè)試,這里只舉兩個(gè)測(cè)試?yán)?,一個(gè)是對(duì)教師用戶的更新權(quán)限進(jìn)行測(cè)試,另一個(gè)是對(duì)用戶的角色權(quán)限進(jìn)行測(cè)試。通過(guò)角色設(shè)置來(lái)給teacher用戶加上STU角色。參考文獻(xiàn)[1] Bruce Eckel[美]. Thinking in Java (3rd Edition)[M] .北京:電子工業(yè)出版社,2002。在這里我首先感謝的是我的指導(dǎo)老師葉立軒老師,感謝他在我需求分析和設(shè)計(jì)期間給我提供的良好建議和思路,感謝他在我論文撰寫(xiě)期間細(xì)心的檢查和提供良好的建議;還要感謝代碼檢查組老師對(duì)我的信任和能力的認(rèn)可,這給我完成后期的開(kāi)發(fā)工作提供了很大的鼓勵(lì)和信心;同時(shí)我還要感謝所有SMART系統(tǒng)開(kāi)發(fā)小組的同學(xué),他們?cè)谖议_(kāi)發(fā)期間給予了我極大的支持和幫助。(5)學(xué)校可以公布學(xué)位論文的全部或部分內(nèi)容(保密學(xué)位論文在解密后遵守此規(guī)定)。很多學(xué)生幾乎是從進(jìn)入大學(xué)第一天開(kāi)始便想方設(shè)法掙錢的。就如康德所說(shuō):一切重要性都是想象的。 大帥因?yàn)槁?tīng)了大帥一句“這個(gè)女人我認(rèn)識(shí)”,下意識(shí)的看了大帥的臉,錯(cuò)過(guò)了定睛的機(jī)會(huì),但是左小龍還有機(jī)會(huì),因?yàn)榇髱浀哪ν熊囈冗@姑娘的踏板車快一些,況且左小龍得以聽(tīng)了這么多句,說(shuō)明姑娘開(kāi)的真的很慢,這樣一方面得以巡展,一方面也可以保持芳容。風(fēng)騷的人會(huì)讓全世界所有剛和她聊過(guò)一句的人都覺(jué)得有戲,并想入非非。她只是喜歡唱歌跳舞,而且就是喜歡展露自己的身材,所以這里的人都認(rèn)為她很騷。但是如果上天給他們一個(gè)上黃瑩的機(jī)會(huì),但條件是兩個(gè),一個(gè)就是不戴避孕套,一個(gè)就是自己家里的老娘會(huì)折壽一歲,大部分男人還是會(huì)前仆后繼的。第十章更新時(shí)間20081210 15:58:22 字?jǐn)?shù):1455 從那以后,這個(gè)戲曲形式馬上開(kāi)始流傳一方,到后來(lái),它被稱為黃花戲,一度和黃梅戲齊名,被稱為“雙黃”,而這個(gè)村也被改名為黃花村。姑娘很享受這一眼。我讀書(shū)的時(shí)候電腦在大學(xué)已經(jīng)非常普及了,但我們宿舍的人到2002年6月份畢業(yè)離校的時(shí)候還沒(méi)有一臺(tái)電腦。受大學(xué)瘋狂擴(kuò)招的影響,大學(xué)畢業(yè)生就業(yè)的壓力越來(lái)越大,加上很多用人單位都注重應(yīng)聘者的工作經(jīng)驗(yàn)或社會(huì)實(shí)踐經(jīng)驗(yàn),所以很多大學(xué)生紛紛走出校園尋找兼職甚至全職的工作,以求畢業(yè)求職學(xué)時(shí)有一個(gè)同學(xué)非常舍不得吃,一個(gè)星期都難得見(jiàn)他吃幾塊肉,但他卻非常舍得花錢治病,隨便一點(diǎn)感冒都要跑到全長(zhǎng)沙最好的湘雅醫(yī)院去。特此聲明! 作者簽名: 2007年 月 日的辯證法 對(duì)于貧困生來(lái)說(shuō),首先要做的不是掙錢,而是省錢……大部分女生將電腦當(dāng)成了影碟機(jī),大部分男生將電腦當(dāng)成了游戲機(jī)……在這個(gè)處女膜都可以隨意偽造的年代,還有什么值得輕易相信……態(tài)度決定一切……當(dāng)學(xué)習(xí)下降到次要的地位,大學(xué)生就只能說(shuō)是兼職的學(xué)生了…… 伴隨著大學(xué)學(xué)費(fèi)和住宿費(fèi)不斷上漲,讀大學(xué)越來(lái)越成為一種奢侈。文中除了特別加以標(biāo)注地方外,不包含他人已經(jīng)發(fā)表或撰寫(xiě)過(guò)的研究成果,也不包含為獲得成都信息工程學(xué)院或其他教學(xué)機(jī)構(gòu)的學(xué)位或證書(shū)而使用過(guò)的材料。[3] [M].北京:機(jī)械工業(yè)出版社,2004。其更改了teacher用戶角色之后的結(jié)果如圖58:圖58更改teacher用戶角色后從以上結(jié)果進(jìn)行分析可以看出用戶角色權(quán)限控制是正常的。然后我們還要選擇一個(gè)教師用戶UIN為:StuLife該用戶也具有所有的系統(tǒng)權(quán)限。//判斷結(jié)果 //教師用戶基于NO的搜索方法測(cè)試 public void testProcessSearchTeacherByNo() { Map params = new HashMap()。 (teacherName, )。系統(tǒng)中基于JUNIT測(cè)試的都是通過(guò)UnitTestCase類,而UnitTestCase類是繼承Junit的TestCase的一個(gè)子類,該類實(shí)現(xiàn)代碼如下: protected Object call(Carrier vo) {//代理 PublicProxy proxy = ()。 i 。 }checkPermission()方法是檢查用戶是否具有其傳入?yún)?shù)的權(quán)限功能,showButton()則是控制前臺(tái)jsp頁(yè)面的功能體現(xiàn)的。)).append(newValue) .append(/a)。 (a href=39。 % display:column property=39。他們都分別是調(diào)用SP_SearchTeacherUser和SP_Searc