摘要:隨著信息技術(shù)的進(jìn)步,越來(lái)越多的企業(yè)和公司選用MIS進(jìn)行內(nèi)部管理。基于Struts、Spring、Hibernate構(gòu)架的MIS用戶管理模塊采用面向?qū)ο蟮拈_(kāi)發(fā)方法,既支持軟件的二次性開(kāi)發(fā),又可作為一個(gè)通用性的系統(tǒng)模塊,適用于不同類型的系統(tǒng)。它可以根據(jù)不同角色動(dòng)態(tài)管理系統(tǒng),保障系統(tǒng)的安全性和穩(wěn)健性。
關(guān)鍵詞:MIS;Struts;Spring;Hibernate
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2008)34-1555-03
The Implementation of User-management Module in MIS Based on SSH Framework
WANG Yu-jing, DONG Huang-wei
(College of Computer Information Engineering, Henan University, Kaifeng 475004, China)
Abstract: Through the development of information technology, more and more enterprises and companies selected MIS for internal management. Based on Struts, Spring, Hibernate framework, the MIS user management module which use object-oriented development method can not only support the secondary software development, but also be a common module thatcan be applied to different types of systems. Users can manage the system dynamically due the roles they act, by this way the system’s security and stability can be ensured.
Key words: MIS; Struts; Spring; Hibernate
1 引言
隨著我國(guó)市場(chǎng)經(jīng)濟(jì)的快速發(fā)展和信息化水平的不斷提高,如何利用先進(jìn)的管理手段,提高企業(yè)內(nèi)部信息管理水平,是當(dāng)今社會(huì)所面臨的一個(gè)課題。面對(duì)信息時(shí)代的挑戰(zhàn),利用高科技手段來(lái)提高企業(yè)信息管理無(wú)疑是一條行之有效的途徑。并且,信息與科技在企業(yè)管理與現(xiàn)代化建設(shè)中顯現(xiàn)出越來(lái)越重要的地位。管理方面的信息化與科學(xué)化,已成為現(xiàn)代化生活水平步入高水平階段的重要標(biāo)志。
因此,中小型的信息管理系統(tǒng)軟件成為一個(gè)公司所必備的系統(tǒng),而其中的用戶管理模塊成為實(shí)現(xiàn)整個(gè)系統(tǒng)的基礎(chǔ)。
2 用戶管理模塊的總體設(shè)計(jì)
用戶管理模塊主要有超級(jí)管理員、系統(tǒng)管理員和普通用戶3個(gè)部分。
1) 超級(jí)管理員的權(quán)限功能包括角色管理、用戶管理、個(gè)人信息維護(hù)、權(quán)限菜單管理和系統(tǒng)日志管理等方面。
2) 系統(tǒng)管理員的權(quán)限主要有用戶管理、賬戶管理、數(shù)據(jù)字典等。
3) 普通用戶首先由系統(tǒng)管理員賦予角色權(quán)限,然后可以進(jìn)入系統(tǒng),查看公告及修改個(gè)人信息等。
3 用戶管理模塊功能具體實(shí)現(xiàn)
用戶管理模塊的開(kāi)發(fā)是基于Struts + Spring + Hibernate構(gòu)架的三層框架結(jié)構(gòu),采用JSP進(jìn)行開(kāi)發(fā),使用Oracle作為后臺(tái)數(shù)據(jù)庫(kù)。
系統(tǒng)的運(yùn)行環(huán)境為Windows XP/2000 + j2sdk1.5.X JDK開(kāi)發(fā)包 + oracle9i數(shù)據(jù)庫(kù) + Tomcat 5.5服務(wù)器;開(kāi)發(fā)工具是Eclipse 3.2 + MyEclipse5.0
用戶管理模塊有超級(jí)管理員部分、系統(tǒng)管理員部分、普通用戶部分3個(gè)部分組成。根據(jù)不同的角色給出不同的菜單,用以權(quán)限控制。
1) 超級(jí)管理員部分
超級(jí)管理員的登錄信息由配置文件檢驗(yàn),若合法則允許登錄并給出超級(jí)管理員菜單,允許執(zhí)行角色管理、用戶管理、個(gè)人信息維護(hù)、權(quán)限菜單管理及系統(tǒng)日志管理等操作。
其中配置文件主要判斷動(dòng)作如下代碼所示:
password=\"21218CCA77804D2BA1922C33E0151105\"> 代碼來(lái)自于Menu.xml配置文件。usercode為超級(jí)管理員賬號(hào),username為用戶名稱,password為登錄密碼。代碼中所示密碼為加密算法加密過(guò)后的密碼,原始密碼是受保護(hù)的。登錄成功后主要功能動(dòng)作如下所述。 ① 系統(tǒng)日志管理:查看日志信息,進(jìn)行修改、刪除等日志維護(hù)操作,同時(shí)對(duì)日志進(jìn)行更新和統(tǒng)計(jì)。 ② 權(quán)限菜單管理:用以添加定義模塊菜單,修改菜單內(nèi)容,更新菜單選項(xiàng)等,同時(shí)還可以設(shè)定菜單的訪問(wèn)權(quán)限,根據(jù)不同的功能模塊設(shè)定不同的訪問(wèn)權(quán)限。 ③ 角色管理:用于創(chuàng)建角色,設(shè)置角色權(quán)限,修改角色權(quán)限,以及刪除角色等。在創(chuàng)建角色的同時(shí)要賦予一定的權(quán)限,權(quán)限的修改只發(fā)生在該角色功能變化時(shí)。 ④ 用戶管理:這部分用戶管理功能的對(duì)象是所有用戶,包括普通用戶和系統(tǒng)管理員。創(chuàng)建用戶時(shí)賦予用戶角色,用戶職能改變時(shí)修改用戶信息。根據(jù)用戶當(dāng)前狀態(tài)設(shè)置用戶狀態(tài),當(dāng)用戶離職或部門調(diào)動(dòng)時(shí)禁用該用戶賬號(hào)同時(shí)刪除該用戶信息。 ⑤ 模塊設(shè)置:用于定義模塊,該部分用樹(shù)型結(jié)構(gòu)實(shí)現(xiàn),可添加新模塊和查詢、修改現(xiàn)有模塊結(jié)構(gòu)。 ⑥ 數(shù)據(jù)字典部分:該部分為Oracle數(shù)據(jù)庫(kù)數(shù)據(jù)字典部分的頁(yè)面實(shí)現(xiàn)。字典管理用于添加新的數(shù)據(jù)類型,修改字典數(shù)據(jù)內(nèi)容,添加備注等。設(shè)置修改字典中某一內(nèi)容的狀態(tài),同時(shí)還可以進(jìn)行修改、啟用、刪除字典內(nèi)容等操作。 2) 系統(tǒng)管理員部分 系統(tǒng)管理員面向所有系統(tǒng)級(jí)的管理員。同超級(jí)管理員相同,系統(tǒng)管理員信息也保存在配置文件中。登錄時(shí)系統(tǒng)從配置文件中讀出系統(tǒng)管理員相關(guān)信息,若匹配就允許登錄并給出系統(tǒng)管理員菜單。登錄成功后,系統(tǒng)管理員可以根據(jù)需要執(zhí)行用戶管理、賬號(hào)管理、個(gè)人信息維護(hù)等操作。具體功能如圖1所示。 ① 賬戶管理:添加一個(gè)用戶時(shí)會(huì)生成一條賬戶記錄,該記錄即為賬戶表的賬號(hào)。賬號(hào)半自動(dòng)生成,生成規(guī)則為公司代號(hào)加地區(qū)代號(hào)加部門編號(hào)后綴一定位數(shù)的隨機(jī)碼。當(dāng)員工離職時(shí)立即禁用該賬戶,收回有關(guān)該賬戶的所有權(quán)限,確保信息安全性,這些由賬戶禁用功能實(shí)現(xiàn)。當(dāng)賬號(hào)被收回后,不能刪除該賬號(hào),設(shè)置該賬號(hào)狀態(tài)為禁用,等賬號(hào)重用后,賬號(hào)狀態(tài)為未啟用,管理員啟用后并賦予該賬號(hào)權(quán)限方可再次使用該賬號(hào),這些由賬號(hào)維護(hù)功能實(shí)現(xiàn)。 ② 用戶管理:該部分用戶管理操作的對(duì)象是所有普通用戶。創(chuàng)建一個(gè)新用戶時(shí)在賬號(hào)表中插入一條賬號(hào)記錄,為該用戶的唯一賬號(hào)。當(dāng)該用戶離職時(shí)刪除用戶信息,同時(shí)禁用該用戶的唯一賬號(hào),涉及到權(quán)限操作時(shí)可以禁用該用戶。 ③ 個(gè)人信息維護(hù):該部分主要功能是用于個(gè)人信息查看、修改、更新等個(gè)人信息的維護(hù)。 ■ 圖1 系統(tǒng)管理員功能圖 3) 普通用戶部分 本部分主要面對(duì)除超級(jí)管理員和系統(tǒng)管理員以外的所有用戶。登錄時(shí)用戶信息從用戶表中讀出,在用戶表中賬號(hào)存在且密碼無(wú)誤則允許登錄。普通用戶登錄成功后可以查看公告、新聞信息及一些公共信息,還可以維護(hù)個(gè)人信息。 4 部分核心技術(shù)的實(shí)現(xiàn) 1) 頁(yè)面編碼控制 頁(yè)面和控制器間的跳轉(zhuǎn)會(huì)產(chǎn)生亂碼問(wèn)題,需要一定的方法對(duì)編碼加以控制統(tǒng)一,并在后臺(tái)實(shí)現(xiàn)相互轉(zhuǎn)碼而不顯示到頁(yè)面上的方法。在模塊及系統(tǒng)的實(shí)現(xiàn)過(guò)程中,采用了統(tǒng)一編碼譯碼的方法。在Util包中自定義了各基本數(shù)據(jù)類型轉(zhuǎn)編碼的具體實(shí)現(xiàn),其中Unicode轉(zhuǎn)換成GBK字符集的核心代碼實(shí)現(xiàn)如下: String s1; //定義一個(gè)空字符串 //將該字符串編碼類型ISO8859_1用GBK替換; s1 = new String(input.getBytes(\"ISO8859_1\"), \"GBK\"); return s1;//返回該字符串內(nèi)容; GBK轉(zhuǎn)換成Unicode字符集代碼實(shí)現(xiàn)如下: String s1; s1 = new String(input.getBytes(\"GBK\"), \"ISO8859_1\"); //將該字符串編碼類型GBK用ISO8859_1替換; return s1; 2) 數(shù)據(jù)源的連接 用戶管理模塊及整個(gè)系統(tǒng)都采用了三級(jí)框架整合的結(jié)構(gòu)和Oracle關(guān)系數(shù)據(jù)庫(kù),所以與數(shù)據(jù)庫(kù)的連接由Hibernate的數(shù)據(jù)持久層實(shí)現(xiàn),具體的實(shí)現(xiàn)過(guò)程在Hibernate的配置文件中。下面為數(shù)據(jù)庫(kù)連接過(guò)程中的核心實(shí)現(xiàn)代碼,其中<bean>是Hibernate配置文件標(biāo)簽,<property>是配置文件屬性標(biāo)簽,<value>是配置文件屬性值標(biāo)簽,這些標(biāo)簽都是成對(duì)出現(xiàn),用以表明開(kāi)始和結(jié)束。 <!--數(shù)據(jù)源 --> <bean id=\"dataSource\" class=\"org.springframework.jdbc.datasource.DriverManagerDataSource\"> //id表示數(shù)據(jù)源名稱,class表示數(shù)據(jù)驅(qū)動(dòng)類型,這里指明數(shù)據(jù)驅(qū)動(dòng)類型是spring數(shù)據(jù)驅(qū)動(dòng)。 <property name=\"driverClassName\"> <value>oracle.jdbc.driver.OracleDriver</value> </property> //name表示數(shù)據(jù)驅(qū)動(dòng)名稱,指定數(shù)據(jù)驅(qū)動(dòng)為oracle數(shù)據(jù)庫(kù)驅(qū)動(dòng)。 <property name=\"url\"> <value>jdbc:oracle:thin:@10.10.13.30:1521:oracledb</value> </property> //這里name表示數(shù)據(jù)源地址,設(shè)置數(shù)據(jù)源地址為@10.10.13.30,端口為1521,表名是oracledb。 <property name=\"username\"> <value>issweb</value> </property> //指定數(shù)據(jù)庫(kù)用戶名為issweb <property name=\"password\"> <value>123</value> </property> //指定登錄數(shù)據(jù)庫(kù)密碼為123 </bean> //結(jié)束標(biāo)簽 5 結(jié)論 本文重點(diǎn)介紹了基于Struts + Spring + Hibernate構(gòu)架用戶管理模塊的設(shè)計(jì)及具體實(shí)現(xiàn)。整個(gè)模塊采用Java開(kāi)發(fā)平臺(tái)、Eclipse開(kāi)發(fā)環(huán)境、MyEclipse插件、Oracle數(shù)據(jù)庫(kù)、JSP等技術(shù),具有很好的重用性、可移植性和實(shí)用性。系統(tǒng)將更方便用戶查找信息和管理員的管理,并且有很好的安全性和穩(wěn)健性,易于維護(hù)。同時(shí),具有靈活的通用性,企業(yè)可以根據(jù)自己需求對(duì)模塊功能,角色權(quán)限進(jìn)行設(shè)置。 參考文獻(xiàn): [1] 孫衛(wèi)琴.精通Struts:基于MVC的Java Web設(shè)計(jì)與開(kāi)發(fā)[M].北京:電子工業(yè)出版社,2004. [2] 郭鋒.Spring從入門到精通[M].北京:清華大學(xué)出版社,2006. [3] 梁立新.項(xiàng)目實(shí)踐精解:基于Struts-Spring-Hibernate的Java應(yīng)用開(kāi)發(fā)[M].北京:電子工業(yè)出版社,2006.