寧一凡, 肖 可, 李 崢
(淮北師范大學(xué)物理與電子信息學(xué)院,安徽 淮北 235000)
近年來多發(fā)的實(shí)驗室安全事故暴露出實(shí)驗室危險化學(xué)品傳統(tǒng)管理的弊端,尤其是化學(xué)危險品實(shí)驗室[1]。化學(xué)危險品,種類多而往往用的很少,儲存便成了一種問題。不僅如此,許多危險化學(xué)品本身就存在有毒性、有害性、不穩(wěn)定性,因此對于危險化學(xué)品的安全管理應(yīng)當(dāng)值得關(guān)注。為降低學(xué)生在實(shí)驗過程中使用危險化學(xué)品時的風(fēng)險,提高高校對實(shí)驗室危險化學(xué)品的監(jiān)管能力,設(shè)計了一種使用兼管理的危險化學(xué)品管理平臺。通過這個平臺,教師或?qū)W生只需要登錄網(wǎng)站,對所需危險化學(xué)品進(jìn)行申請即可。既簡化了使用者的操作流程,更讓管理員處理工作時更加游刃有余。設(shè)計通過手機(jī)端或者電腦端皆可使用,僅需要通過瀏覽器便可操作。
實(shí)驗室危險化學(xué)品管理系統(tǒng)軟件設(shè)計包括用戶賬號授權(quán)、用戶信息管理、門禁系統(tǒng)管理、記錄查詢、消息列表。界面框圖如圖1所示。
首先是用戶賬號授權(quán),考慮到實(shí)際應(yīng)用,領(lǐng)取相關(guān)危險化學(xué)品的使用人員為教師或者學(xué)生,因此,管理員可使用“增加”操作來增加用戶賬號,并將賬號分發(fā)給用戶,而用戶則需要完整其身份信息來完成注冊。包括學(xué)號/工號、職位、手機(jī)號等真實(shí)信息,不同的是,學(xué)生注冊時需要導(dǎo)入校園卡信息,教師需要完成指紋注冊。注冊完成后,即將其身份信息導(dǎo)入數(shù)據(jù)庫中,同時門禁系統(tǒng)會收到來自網(wǎng)絡(luò)的授權(quán)信息,并存儲在外部存儲器。
圖1 網(wǎng)頁界面框圖
門禁系統(tǒng)采用指紋識別、射頻識別和人臉識別作為登錄模塊,當(dāng)用戶在終端進(jìn)行身份識別時,如果身份信息成功讀取,則開啟門鎖。此外,Web網(wǎng)頁與終端通過WIFI模塊進(jìn)行通信,并獲取WIFI模塊的IP地址,每個安全柜對應(yīng)唯一的IP地址[2]。之后,終端通過TCP/IP協(xié)議與Web網(wǎng)頁進(jìn)行通信,根據(jù)獲取的數(shù)據(jù)包的IP地址,即可得知數(shù)據(jù)來自于哪一個安全柜。其安全柜信息配置流程圖如圖2所示。當(dāng)安全柜信息按如下流程配置完畢,即可在Web網(wǎng)頁實(shí)時更新在數(shù)據(jù)庫中獲取到的安全柜信息。
圖2 安全柜信息配置流程圖
2.1.1 Eclipse
設(shè)計的開發(fā)工具選擇Eclipse,Eclipse擁有良好的集成開發(fā)環(huán)境。在編譯過程中,它可以自動生成構(gòu)造器以及set、get方法等,提高了代碼編寫效率。編譯時產(chǎn)生BUG,會在控制臺顯示,方便解決。
2.1.2 MySQL
MySQL是一款免費(fèi)的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),與Java兼容性好[3]。在MySQL中可以創(chuàng)建多個表,表對應(yīng)的是項目中的實(shí)體,各個表之間既可以是獨(dú)立的,也可以是相互關(guān)聯(lián)的,用于保存實(shí)體數(shù)據(jù)。在設(shè)計中,需要對教師或者學(xué)生的信息進(jìn)行存儲,包括其姓名,工號或者學(xué)號,照片資料等。
在MVC架構(gòu)出來之前,Java的網(wǎng)站開發(fā)經(jīng)歷了Model1和Model2兩個過程[4]。Model1模式下,JSP頁面既要顯示用戶數(shù)據(jù),又要控制邏輯,增大了項目開發(fā)和維護(hù)的難度。Model2模式,即MVC,控制邏輯部分不再用JSP去實(shí)現(xiàn),而是單獨(dú)將控制層作為一個模塊去開發(fā),而JSP頁面僅作為顯示用戶數(shù)據(jù)使用。在該模式下,Servlet請求轉(zhuǎn)發(fā)控制,JavaBean做業(yè)務(wù)處理。
由圖3可以看到,MVC思想將一個應(yīng)用分成Model(模型層)、View(視圖層)和Controller(控制層)三個層次:通過View視圖層,用戶在使用本系統(tǒng)時,可以在Html網(wǎng)頁界面完成注冊,登錄等基本操作,但視圖中不發(fā)生數(shù)據(jù)的處理操作;Controller控制層,如果接收到查詢或者申請等來自使用者的輸入,針對性地選擇View視圖來顯示請求返回的數(shù)據(jù);而View層和Controller層都依賴Model。通過將Model和View層代碼的分離實(shí)現(xiàn)前后端代碼的分離,在編寫代碼時,不需要同時關(guān)注內(nèi)容和頁面,提高了代碼的編寫效率和可移植性。
圖3 MVC架構(gòu)圖
通過JDBC技術(shù)可以將MySQL中的數(shù)據(jù)庫內(nèi)容讀取到網(wǎng)頁[5],并對MySQL進(jìn)行增刪改查操作。為了能提高數(shù)據(jù)庫的性能,可以采用連接池的技術(shù),連接池包含了驅(qū)動和獲取與數(shù)據(jù)庫連接步驟,即預(yù)先創(chuàng)建連接在連接池中,當(dāng)需要連接數(shù)據(jù)庫時,直接從連接池中取得連接,完成數(shù)據(jù)庫操作之后,再將連接放回到連接池中。設(shè)計采用c3p0連接池技術(shù)[6],通過配置xml文件來管理連接。
業(yè)務(wù)邏輯層進(jìn)行軟件核心業(yè)務(wù)邏輯的處理[7],在這里創(chuàng)建數(shù)據(jù)訪問層對象,來對操作數(shù)據(jù)庫進(jìn)行操作。因為整個項目業(yè)務(wù)需求比較多,把這些需求全寫在控制層,控制層代碼量特別大,后期維護(hù)和開發(fā)比較麻煩,程序邏輯不清晰,所以把需求寫在Service層里面,當(dāng)需求改動時,可直接在這里進(jìn)行代碼的修改。
在整個項目開發(fā)中,實(shí)現(xiàn)了AdminAction,負(fù)責(zé)管理員的登錄,可以對用戶信息進(jìn)行增、刪、查、改操作;TeacherAction,負(fù)責(zé)教師的登錄;StudentAction,負(fù)責(zé)學(xué)生的登錄。這三個類繼承ActionSupport類,來處理頁面上的請求。
以教師登錄為例,調(diào)用TeacherAction中的login方法,判斷該用戶是否在數(shù)據(jù)庫中,如果存在,方法返回“success”,到struts.xml查找相應(yīng)的返回結(jié)果,如果result中的屬性值和login方法返回值相同,然后頁面會轉(zhuǎn)到“message/teacehr.jsp”用戶頁面,把用戶所需要使用的數(shù)據(jù)在頁面顯示。
系統(tǒng)的網(wǎng)頁部分由Html5和JavaScript技術(shù)共同實(shí)現(xiàn)。首先,使用Html技術(shù)完成頁面的布局,Html是Web開發(fā)的基礎(chǔ),它可以使Web網(wǎng)頁可以實(shí)現(xiàn)一些基本簡單的交互效果。然后在Html中使用JavaScript語言完善網(wǎng)頁的實(shí)時、動態(tài)交互功能。由于JavaScript的跨平臺性,學(xué)生或者老師都可以對其正確執(zhí)行。
(1)將項目部署到Tomcat服務(wù)器中,運(yùn)行服務(wù)器。在瀏覽器中輸入地址即可跳轉(zhuǎn)到登錄界面。用戶登錄系統(tǒng)后,則可對所要使用的危險化學(xué)品名稱及克數(shù)進(jìn)行申請。登錄界面如圖4所示,用戶在登錄時需詳細(xì)閱讀實(shí)驗室管理準(zhǔn)則,準(zhǔn)則中則介紹了實(shí)驗室使用時的操作細(xì)則。
圖4 用戶登錄界面
(2)管理員在系統(tǒng)中作為主要負(fù)責(zé)人,除了對用戶的管理外,還要對使用情況進(jìn)行定期監(jiān)測,保證服務(wù)器與終端的數(shù)據(jù)傳輸穩(wěn)定,當(dāng)物品數(shù)量或重量低于某設(shè)定值時,網(wǎng)頁會彈出補(bǔ)充提醒對話框,及時補(bǔ)充相關(guān)危險化學(xué)品,其使用情況查詢界面如圖5所示。
圖5 使用情況查詢界面
設(shè)計了一種基于Java技術(shù)實(shí)驗室危險化學(xué)品管理網(wǎng)站,通過服務(wù)器與終端的數(shù)據(jù)傳輸,優(yōu)化了教師與學(xué)生使用危險化學(xué)品時的操作流程,使管理員的管理更加輕松方便。經(jīng)過實(shí)際測試表明:該網(wǎng)站能過實(shí)現(xiàn)所需功能,終端數(shù)據(jù)能準(zhǔn)確在Web網(wǎng)頁顯示,可維護(hù)性良好,可以有效完成高校對危險化學(xué)品的智能化、遠(yuǎn)程化管理。