【正文】
角色表(PCM_USER)數(shù)據(jù)結(jié)構(gòu)字段名稱數(shù)據(jù)類型是否是主鍵是否是外鍵是否可NULL備注role_idDECIMAL(18,0)YESNONO角色I(xiàn)Drole_nameVARCHAR(50)NONONO角色名稱role_abbreviationVARCHAR(20)NONONO角色名稱簡(jiǎn)寫role_descriptionVARCHAR(100)NONOYES角色描述created_byDECIMAL(18,0)NONOYES角色創(chuàng)建者created_timeDATETITMENONOYES創(chuàng)建角色的時(shí)間last_update_byDECIMAL(18,0)NONOYES最后一個(gè)更新的用戶IDlast_update_timeDATETIMENONOYES最后更新的時(shí)間record_numberINTEGERNONONO版本控制 用戶角色表該表主要用戶存儲(chǔ)用戶和角色之間的關(guān)系。表311 CODE表(CODE)數(shù)據(jù)結(jié)構(gòu)字段名稱數(shù)據(jù)類型是否是主鍵是否是外鍵是否可NULL備注code_idDECIMAL(18,0)YESNONOCODE IDcode_noVARCHAR(50)NONOYESCODE_NOcode_typeVARCHAR(50)NONOYESCODE類型code_nameVARCHAR(50)NONOYESCODE名稱code_valueVARCHAR(10)NONOYESCODE值code_moduleVARCHAR(50)NONOYES所屬模塊remarkVARCHAR(50)NONOYES備注versionINTEGERNONONO版本控制 試卷日志記錄表主要存儲(chǔ)用戶對(duì)試卷的歷史操作記錄。 return。(where = and = :uin and = :type)。amp。!(())) { ((), task)。 String type = (String) (type)。 (uin, (uin))。 } } }同樣在用戶更新的時(shí)候也要做同樣的處理。 !(type) .equals()) ? (type) : )。他們都分別是調(diào)用SP_SearchTeacherUser和SP_SearchStudent這兩個(gè)存儲(chǔ)過(guò)程。 % display:column property=39。 (a href=39。)).append(newValue) .append(/a)。 }checkPermission()方法是檢查用戶是否具有其傳入?yún)?shù)的權(quán)限功能,showButton()則是控制前臺(tái)jsp頁(yè)面的功能體現(xiàn)的。 i 。系統(tǒng)中基于JUNIT測(cè)試的都是通過(guò)UnitTestCase類,而UnitTestCase類是繼承Junit的TestCase的一個(gè)子類,該類實(shí)現(xiàn)代碼如下: protected Object call(Carrier vo) {//代理 PublicProxy proxy = ()。 (teacherName, )。//判斷結(jié)果 //教師用戶基于NO的搜索方法測(cè)試 public void testProcessSearchTeacherByNo() { Map params = new HashMap()。然后我們還要選擇一個(gè)教師用戶UIN為:StuLife該用戶也具有所有的系統(tǒng)權(quán)限。其更改了teacher用戶角色之后的結(jié)果如圖58:圖58更改teacher用戶角色后從以上結(jié)果進(jìn)行分析可以看出用戶角色權(quán)限控制是正常的。[3] [M].北京:機(jī)械工業(yè)出版社,2004。文中除了特別加以標(biāo)注地方外,不包含他人已經(jīng)發(fā)表或撰寫過(guò)的研究成果,也不包含為獲得成都信息工程學(xué)院或其他教學(xué)機(jī)構(gòu)的學(xué)位或證書而使用過(guò)的材料。特此聲明! 作者簽名: 2007年 月 日This boothwn outside, each car became a single organism which ate and drank and excreted through its ventilators. It talked or sometimes yelled through its ventilators, too. In went water and loaves of blackbread and sausage and cheese, and out came shit and piss and language. Human beings in there were excreting into steel helmets, which were passed to the people at the ventilators, who dumped them. Billy was a dumper. The human beings also passed canteens, which guards would fill with water. When food came in, the human beings were quiet and trusting and beautiful. They shared. Human beings in there took turns standing or lying down. The legs of those who stood were like fence posts driven into a warm., squirming, fatting, sighing earth. The queer earth was a mosaic of sleepers who nestled like spoons. Now the train began to creep eastward. Somewhere in there was Christmas. Billy Pilgrim nestled like a spoon with the hobo on Christmas night, and he fell asleep, and he traveled in time to 1967 againto the night he was kidnapped by a flying saucer from Tralfamadore.Four Billy Pilgrim could not sleep on his daughters wedding night. He was fortyfour. The wedding had taken place that afternoon in a gaily striped tent in Billy39。 Listen on the tenth night the peg was pull。t need to be jiggled to sleep. Valencia was snoring like a bandsaw. The poor woman didn39。關(guān)于學(xué)位論文使用權(quán)和研究成果知識(shí)產(chǎn)權(quán)的說(shuō)明:本人完全了解成都信息工程學(xué)院有關(guān)保管使用學(xué)位論文的規(guī)定,其中包括:(1)學(xué)校有權(quán)保管并向有關(guān)部門遞交學(xué)位論文的原件與復(fù)印件。[5] 陳昊鵬,:第3版[M].北京:機(jī)械工業(yè)出版社,2005。該系統(tǒng)以開(kāi)發(fā)的目的是做一個(gè)通用的系統(tǒng)功能管理模塊,支持盡可能多的數(shù)據(jù)庫(kù)后臺(tái),盡最大可能方便軟件開(kāi)發(fā)人員的二次開(kāi)發(fā)和最終用戶使用,還要保證權(quán)限管理技術(shù)的先進(jìn)性,注重靈活性和安全性。這個(gè)權(quán)限主要控制教師用戶是否可以更新其它用戶的信息。 List result = (List) (new Carrier(params, , SearchTeacherByNo))。//代理調(diào)用 List result = (List) (new Carrier(params, , SearchTeacher))。 try { obj = (vo)。)。在標(biāo)簽中首先我們要獲取用戶權(quán)限CODE,主要通過(guò)代碼:Authorization permission = (Authorization) (()) .getAttribute()。 + divId + 39。 onClick=invokeServer(39。 title=39。 + + 39。 if (()) {//教師用戶搜索 Object[] params = new Object[8]。 PcmRole role = (PcmRole) (entity)。amp。amp。 用戶管理 用戶界面用戶搜索界面設(shè)計(jì)圖如下:圖42 教師用戶搜索界面設(shè)計(jì)圖用戶編輯界面設(shè)計(jì)圖:圖43 教師用戶編輯界面設(shè)計(jì)圖 代碼實(shí)現(xiàn)用戶搜索功能都是通過(guò)編寫存儲(chǔ)過(guò)程實(shí)現(xiàn)的,在新增用戶需要檢查兩個(gè)唯一,第一個(gè)用戶的NO,第二個(gè)是用戶的UIN,用戶只有這兩個(gè)唯一了才可以確定用戶唯一性,他們的檢測(cè)代碼分別是:1. 用戶的NO唯一性檢查在struts 的action中通過(guò)代碼:Map map = new HashMap()。 if (roleTasksSet != null) { for (Iterator j = ()。 PcmRole role = null。 Map params = new HashMap()。if ((userData)) {//是否準(zhǔn)許登錄if ((false) != null) { ().invalidate()。表37 角色任務(wù)表(PCM_ROLE_TASK)數(shù)據(jù)結(jié)構(gòu)字段名稱數(shù)據(jù)類型是否是主鍵是否是外鍵是否可NULL備注role_idDECIMAIL(18,0)YESYESNO角色I(xiàn)Dtask_idDECIMAIL(18,0)YESYESNO任務(wù)IDcreated_timeDATETIMENONOYES創(chuàng)建時(shí)間created_byDECIMAIL(18,0)NONOYES被哪個(gè)用戶創(chuàng)建last_update_byDECIMAIL(18,0)NONOYES最后更新用戶last_update_timeDATETIMENO NOYES最后更新時(shí)間record_numberINTEGERNONONO版本控制 日志表該表主要存儲(chǔ)系統(tǒng)對(duì)數(shù)據(jù)庫(kù)表的操作歷史情況。本系統(tǒng)選用關(guān)系型數(shù)據(jù)庫(kù)SQL SERVER 2000。n 技術(shù)方案這兩種日志的產(chǎn)生并不相同,所以對(duì)他們的管理方式分成兩個(gè)模塊來(lái)完成,系統(tǒng)日志是系統(tǒng)對(duì)數(shù)據(jù)庫(kù)表的操作所產(chǎn)生生成的,這種日志數(shù)據(jù)比較復(fù)雜并且大多數(shù)據(jù)沒(méi)有什么意義;而另外一種是試卷日志,這中日志是為用戶操作試卷特意做,可以用這種數(shù)據(jù)來(lái)對(duì)用戶對(duì)試卷的操作進(jìn)行統(tǒng)計(jì)分析,這中數(shù)據(jù)比較重要。設(shè)計(jì)界面如表22:表22 權(quán)限設(shè)置設(shè)計(jì)界面角色名稱角色1角色2角色3角色4任務(wù)1YY任務(wù)2YYY其中用戶和角色對(duì)應(yīng)的交叉值“Y”和“”,其中“Y”表示對(duì)應(yīng)的角色包含該任務(wù),而“”卻表示相反,不包含該任務(wù)的意思。設(shè)計(jì)界面如表21:表21 用戶角色設(shè)置設(shè)計(jì)界面UIN用戶名角色1角色2角色3UIN1用戶1YYUIN2用戶2YY其中用戶和角色對(duì)應(yīng)的交叉值“Y”和“”,其中“Y”表示對(duì)應(yīng)的用戶具有該角色,而“”卻表示相反,沒(méi)有該角色的意思。角色管理:通過(guò)搜索功能可以搜索出本系統(tǒng)的所有角色,如果權(quán)限足夠還可以更改這些角色,可以執(zhí)行以下操作,添加角色、刪除角色、編輯角色。強(qiáng)制用戶注銷:系統(tǒng)管理員可以對(duì)當(dāng)前系統(tǒng)已經(jīng)登錄的用戶進(jìn)行強(qiáng)制性的注銷。教師用戶又分為四種不同的用戶,如:省級(jí)教師用戶、市級(jí)教師用戶、區(qū)縣級(jí)教師用戶、學(xué)校級(jí)教師用戶,并且他們?cè)谙到y(tǒng)的權(quán)限都不相同,系統(tǒng)應(yīng)提供對(duì)這些用戶的區(qū)別以及權(quán)限控制。如圖28:圖28 權(quán)限設(shè)置模塊流程圖216。系統(tǒng)加載這部分要根據(jù)登錄用戶的權(quán)限范圍來(lái)加載用戶相應(yīng)的系統(tǒng)功能。本系統(tǒng)主要設(shè)計(jì)到三個(gè)對(duì)象,用戶、角色、任務(wù)(系統(tǒng)中的功能模塊)。2 系統(tǒng)功能需求和總體設(shè)計(jì) B/S構(gòu)架隨著Internet的發(fā)展,采用Browser/Server模式的系統(tǒng)主要利用Internet技術(shù)和產(chǎn)品來(lái)構(gòu)筑內(nèi)部的Internet網(wǎng)絡(luò),即所謂的Intranet網(wǎng)絡(luò),B/S模式已經(jīng)成為了企業(yè)信息系統(tǒng)建設(shè)的首選。Ajax技術(shù)主要是由XHTML、CSS、DOM、JavaScript、XML、XMLHttpRequest結(jié)合的一種技術(shù),與傳統(tǒng)的Web開(kāi)發(fā)不同,Ajax并不是以一種基于靜態(tài)頁(yè)面的方式來(lái)看待Web應(yīng)用的。216