• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于B/S的畢業(yè)論文管理系統(tǒng)實現(xiàn)關(guān)鍵技術(shù)研究

      2015-05-15 03:19:48梁俊杰曾顯峰黃曉君何花燕
      現(xiàn)代計算機 2015年7期
      關(guān)鍵詞:注入式畢業(yè)論文控件

      梁俊杰,曾顯峰,黃曉君,何花燕

      (廣東外語外貿(mào)大學(xué)南國商學(xué)院,廣州 510545)

      基于B/S的畢業(yè)論文管理系統(tǒng)實現(xiàn)關(guān)鍵技術(shù)研究

      梁俊杰,曾顯峰,黃曉君,何花燕

      (廣東外語外貿(mào)大學(xué)南國商學(xué)院,廣州 510545)

      為了實現(xiàn)高校畢業(yè)論文管理水平的高效化和網(wǎng)絡(luò)化,采用ASP.NET開發(fā)技術(shù),設(shè)計基于B/S模式的畢業(yè)論文管理系統(tǒng)。著重解析系統(tǒng)開發(fā)中的幾個關(guān)鍵技術(shù):數(shù)據(jù)庫訪問、AJAX無刷新技術(shù)、防止腳本注入式攻擊等技術(shù)。在實際的開發(fā)過程中證明,這些關(guān)鍵技術(shù)的應(yīng)用,顯著地提高大學(xué)生畢業(yè)論文管理系統(tǒng)的實用性能和安全性能。

      畢業(yè)論文;B/S模式;AJAX;注入式攻擊

      0 引言

      畢業(yè)論文/設(shè)計是培養(yǎng)學(xué)生運用綜合知識與技能,獨立完成的一個項目活動,是教學(xué)活動的重要組成部分之一。隨著本校的教學(xué)規(guī)模逐漸增加,每年的畢業(yè)之際,需要處理的畢業(yè)論文的信息量成倍地增加。而校外實習(xí)的學(xué)生同時要進(jìn)行畢業(yè)論文的設(shè)計,學(xué)生與導(dǎo)師在畢業(yè)論文選題、評閱、指導(dǎo)方面存在時間空間的沖突,傳統(tǒng)的畢業(yè)論文管理方式已經(jīng)不能滿足當(dāng)前的實際需要,迫切需要找到一個適合我校的高效管理畢業(yè)論文的方法。在廣東省“大創(chuàng)”項目基金的支持下,項目小組設(shè)計并完成了基于B/S模式的畢業(yè)論文管理系統(tǒng),系統(tǒng)實現(xiàn)了畢業(yè)管理工作的絕大部分需求功能,如畢業(yè)論文的上傳與下載、學(xué)生信息查詢、導(dǎo)師在線評閱、選題管理、公共發(fā)布等功能。本系統(tǒng)借助了網(wǎng)絡(luò)平臺,不但讓學(xué)生與教師可以進(jìn)行有效的溝通,學(xué)生可以及時地了解有關(guān)畢業(yè)論文的相關(guān)動態(tài),而且使論文的上傳查看、信息的管理、用戶的管理和數(shù)據(jù)庫的管理等工作更加簡便。利用實用性和操作性強的畢業(yè)論文管理系統(tǒng)來管理畢業(yè)論文,既提高了管理的工作效率,也降低了管理的成本,進(jìn)而實現(xiàn)高校畢業(yè)論文管理水平的高效化和網(wǎng)絡(luò)化。

      1 項目設(shè)計

      大學(xué)生畢業(yè)論文管理系統(tǒng)的主要使用對象是畢業(yè)季學(xué)生、論文導(dǎo)師、系部管理員和系統(tǒng)管理員。系統(tǒng)根據(jù)角色劃分為學(xué)生模塊、教師模塊、管理員模塊及公共模塊[1],本系統(tǒng)總體功能如圖1所示。

      (1)登錄模塊

      登錄模塊是大學(xué)生畢業(yè)論文管理系統(tǒng)的一個公共模塊,采用統(tǒng)一登錄界面使登錄保持簡單和獨立性。學(xué)生、指導(dǎo)老師、管理員通過統(tǒng)一的等級界面驗證身份,采用C#ADO.NET技術(shù)驗證用戶登錄,根據(jù)用戶身份選項識別以進(jìn)入不同的頁面。為了防止SQL注入式攻擊,系統(tǒng)在登錄過程中采用危險字符清除函數(shù)。增加驗證碼驗證模塊,以此降低用戶密碼被暴力破解的可能性。具體功能如圖2所示。

      (2)學(xué)生模塊

      圖1 系統(tǒng)功能結(jié)構(gòu)圖

      學(xué)生模塊包括五個基本功能:信息查看、選題提交、收發(fā)留言、密碼修改、論文上傳下載。本模塊的核心功能是文檔上傳下載功能。當(dāng)學(xué)生選題通過時才能獲取論文上傳的權(quán)限。本系統(tǒng)利用FileUpload控件進(jìn)行文件上傳操作,默認(rèn)情況下,上傳文件大小限制為4MB,本系統(tǒng)通過設(shè)置httpRuntime元素的maxRequestLength屬性來允許上載10MB的文件,且文件上傳在編碼時限制了上傳文檔的格式和文件的大小,只接受doc、pdf、txt格式且大小不能超過10MB的文檔。通過調(diào)用PostedFile屬性獲得一個與上傳文件相關(guān)的HttpPostedFile對象屬性以此進(jìn)行上傳,提交后文檔將被保存在預(yù)先設(shè)置的文件路徑,數(shù)據(jù)庫只保存文件的文件名和存放路徑等信息。模塊具體實現(xiàn)界面如圖3所示。

      圖2 系統(tǒng)登錄頁面

      圖3 學(xué)生模塊頁面

      (3)管理員模塊

      本系統(tǒng)設(shè)置多個管理員,按權(quán)限分為系統(tǒng)管理員和系部管理員兩個級別。系統(tǒng)管理員擁有最高管理權(quán)限,負(fù)責(zé)宏觀管理系統(tǒng)。系部管理員權(quán)限在系統(tǒng)管理員之下,負(fù)責(zé)日常事務(wù)處理。管理員模塊包括七個基本功能,分別是學(xué)生信息查詢、學(xué)生管理、教師管理、論文導(dǎo)師分配、公告發(fā)布、選題管理以及留言管理[2],其中學(xué)生信息查詢和論文導(dǎo)師分配為關(guān)鍵功能。

      學(xué)生信息查詢功能通過對Paper數(shù)據(jù)庫student表進(jìn)行模糊查詢,將得到數(shù)據(jù)儲存到SqlDataSource中,在前臺綁定GridView進(jìn)行數(shù)據(jù)顯示。系統(tǒng)通過獲取ListBox數(shù)據(jù)確定論文導(dǎo)師,以此更新后臺數(shù)據(jù)庫student表,實現(xiàn)論文導(dǎo)師分配功能。模塊具體實現(xiàn)界面如圖4所示。

      圖4 系統(tǒng)管理員頁面

      2 關(guān)鍵技術(shù)

      (1)訪問和操作數(shù)據(jù)庫

      當(dāng)系統(tǒng)成功連接數(shù)據(jù)庫后,就可以通過Command命令來對數(shù)據(jù)庫發(fā)出具體的操作指令,例如對數(shù)據(jù)庫進(jìn)行增加、刪除、查詢、更改等操作。Command對象有三個執(zhí)行方法,分別是ExecuteNonQuery、Execute Reader和ExecuteScalar。ExecuteNonQuery多用于執(zhí)行增加、刪除、更新數(shù)據(jù)。返回受影響的行數(shù)。ExecuteReader為執(zhí)行查詢語句,給SqlDataReader對象一個可以訪問查詢到的結(jié)果的渠道。ExecuteScalar的返回值類型多為int類型。它返回的多為執(zhí)行select查詢。登錄功能本質(zhì)就是查詢數(shù)據(jù)庫操作,下面以本系統(tǒng)登錄功能為例,演示查詢數(shù)據(jù)庫操作,具體代碼如下:

      (2)ADO.NET并發(fā)更新沖突的解決

      ①并發(fā)更新沖突的產(chǎn)生原因

      ADO.NET并發(fā)更新沖突是使用ADO.NET對數(shù)據(jù)庫中數(shù)據(jù)進(jìn)行操作時最常見的問題之一,出現(xiàn)根本原因是兩個或更多的用戶嘗試同時向同一條記錄的一個或多個字段提交沖突的值。ADO.NET通過把數(shù)據(jù)的副本讀取至客戶端,斷開連接的方式減少服務(wù)器負(fù)載,提高系統(tǒng)性能,但容易引起多個用戶同時修改一條記錄產(chǎn)生數(shù)據(jù)并發(fā)異常。

      ②并發(fā)更新沖突解決方法

      用戶A和用戶B同時對后臺數(shù)據(jù)庫修改了相同的數(shù)據(jù)行,出現(xiàn)了并發(fā)更新沖突。假設(shè)用戶A先執(zhí)行了update操作并成功將數(shù)據(jù)更新提交到后臺數(shù)據(jù)庫,需要解決的是后面提交修改的用戶B如何處理并發(fā)更新沖突。并發(fā)更新沖突解決原則應(yīng)是以最新的數(shù)據(jù)更新為準(zhǔn),解決方案應(yīng)是用戶B不考慮用戶A的修改,直接將數(shù)據(jù)提交到后臺數(shù)據(jù)庫中。具體的操作方法是調(diào)用用戶B的datatable.Merge方法把當(dāng)前數(shù)據(jù)庫的新值合并到datatable的原始表中去,實現(xiàn)被修改的行的原始值與當(dāng)前數(shù)據(jù)庫匹配,接著調(diào)用DataAdapter.Update使用用戶A提交的數(shù)據(jù)更新數(shù)據(jù)庫[3],通過直接將數(shù)據(jù)提交到后臺數(shù)據(jù)庫解決并發(fā)更新沖突。

      (3)AJAX無刷新技術(shù)

      AJAX無刷新技術(shù)能夠異步取回服務(wù)器端的數(shù)據(jù),不會在等待狀態(tài)限制用戶,也不會打斷用戶的操作,提高網(wǎng)站的響應(yīng)且不會因為PostBack使整頁重新加載,實現(xiàn)Web頁面的局部更新,使用戶不需要每次都刷新頁面來查看更新的部分?jǐn)?shù)據(jù),改善了用戶頁面操作體驗[4]。

      本系統(tǒng)管理模塊多處用到了此技術(shù),如學(xué)生信息查詢模塊。系統(tǒng)通過利用AJAX控件的UpdatePanel(局部更新面板)控件,與ScriptManager(腳本管理員)控件配合使用,用簡單的代碼就實現(xiàn)了異步通信功能。管理員無論使用模糊查詢或精確定位查詢,當(dāng)查詢條件有所變化,AJAX無刷新技術(shù)能在下方的表格實時更新數(shù)據(jù),而不需要再次刷新。系統(tǒng)利用UpdatePanel控件實現(xiàn)局部更新時,必須初始化一個回發(fā)動作,配合使用AJAX的Timer控件能夠每隔一段時間自動完成一次完整或局部頁面的刷新,但需要注意的是Timer控件可能會增加Web應(yīng)用程序的負(fù)載。因此,在引入自動回發(fā)前加入Timer控件十分必要,但間隔時間設(shè)置太短將會導(dǎo)致頁面回發(fā)頻率增加,加大服務(wù)器流量,因此應(yīng)盡可能把間隔時間設(shè)置得長一些。

      (4)防止腳本注入式攻擊技術(shù)

      本系統(tǒng)通過使用MD5加密、替換單引號和權(quán)限隔離的方法防止SQL注入式攻擊,然而當(dāng)用戶登錄時,還可能存在惡意腳本攻擊的問題,例如,如果用戶在表單中輸入

      高青县| 江阴市| 嘉峪关市| 诸城市| 滨州市| 英德市| 竹山县| 莱州市| 龙南县| 正定县| 萝北县| 淳安县| 长治市| 松阳县| 苏尼特左旗| 德庆县| 鄂伦春自治旗| 儋州市| 昌吉市| 高青县| 承德县| 宁河县| 遂溪县| 敦煌市| 万州区| 黄梅县| 个旧市| 西吉县| 绥棱县| 万荣县| 石嘴山市| 池州市| 平顶山市| 平利县| 万年县| 湟中县| 台北市| 玉树县| 石门县| 平和县| 根河市|