国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

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

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

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

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

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

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

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

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

0 引言

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

1 項(xiàng)目設(shè)計(jì)

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

(1)登錄模塊

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

(2)學(xué)生模塊

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

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

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

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

(3)管理員模塊

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

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

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

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

(1)訪問(wèn)和操作數(shù)據(jù)庫(kù)

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

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

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

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

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

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

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

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

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

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

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

巍山| 北流市| 元朗区| 勃利县| 黄平县| 阿拉善盟| 格尔木市| 龙岩市| 余庆县| 冕宁县| 汝城县| 梓潼县| 安塞县| 启东市| 丰县| 营口市| 鄂托克前旗| 万安县| 沙河市| 穆棱市| 大埔区| 日土县| 台东县| 江口县| 青岛市| 集安市| 甘洛县| 呼和浩特市| 西贡区| 大连市| 驻马店市| 香河县| 乐业县| 江安县| 花莲县| 长春市| 永州市| 南岸区| 浦城县| 古交市| 建阳市|