【摘要】作為結(jié)合傳統(tǒng)考試模式與計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的系統(tǒng),它面向的對(duì)象既是大范圍的群體,這個(gè)群體中每個(gè)人的計(jì)算機(jī)操作水平參差不齊,所以首先整個(gè)操作系統(tǒng)務(wù)求界面簡(jiǎn)潔大方,操作簡(jiǎn)單方便,這樣,在系統(tǒng)使用過(guò)程中,使人一目了然,不至于因?yàn)榭荚嚳颇恐R(shí)以外的原因而影響了最終的科學(xué)評(píng)價(jià)得分。其次,網(wǎng)絡(luò)考試系統(tǒng)面向的對(duì)象又是特定的群體,所有考試者只有在獲得認(rèn)證的情況下,通過(guò)相應(yīng)的用戶名和密碼驗(yàn)證之后才能登陸系統(tǒng)進(jìn)行考試。通過(guò)AJAX交互頁(yè)面技術(shù)在頁(yè)面無(wú)需重新載入的情況之下,能夠?qū)?yè)面的局部進(jìn)行更新。
【關(guān)鍵詞】AJAX;數(shù)據(jù)閱讀器;getcon方法
一、應(yīng)用AJAX無(wú)刷新技術(shù)的注冊(cè)頁(yè)面實(shí)現(xiàn)
考試系統(tǒng)使用之前,需要注冊(cè)考生準(zhǔn)考證號(hào),設(shè)計(jì)制作考生注冊(cè)頁(yè)面。利用AJAX技術(shù),加入ScriptManage腳本管理員控件和UpdatePanel局部更新面板控件,采用異步數(shù)據(jù)的傳輸方式,把數(shù)據(jù)傳到數(shù)據(jù)庫(kù)中,經(jīng)過(guò)數(shù)據(jù)庫(kù)準(zhǔn)考證號(hào)比對(duì)驗(yàn)證沒(méi)有注冊(cè)過(guò)之后,方可注冊(cè)。注冊(cè)頁(yè)面提交注冊(cè)信息至數(shù)據(jù)庫(kù),再次比對(duì)該注冊(cè)準(zhǔn)考證號(hào)是否合法,如果與事先添加進(jìn)數(shù)據(jù)表的合法準(zhǔn)考證號(hào)字段相匹配,則驗(yàn)證通過(guò);如果并非事先確認(rèn)好的準(zhǔn)考證號(hào),則可以由管理員手動(dòng)驗(yàn)證,確認(rèn)是否通過(guò),通過(guò)之后,則可以使用準(zhǔn)考證號(hào)和密碼登陸考試系統(tǒng),否則將不能使用。
鑒于以上設(shè)計(jì)思路,在頁(yè)面注冊(cè)環(huán)節(jié)考慮加入一個(gè)Table控件來(lái)進(jìn)行結(jié)構(gòu)設(shè)計(jì),使用AJAX無(wú)重刷技術(shù),添加一個(gè)ScriptManage控件和一個(gè)UpdatePanel控件。在UpdatePanel控件中加入7個(gè)TextBox控件、2個(gè)DropDownList控件、4個(gè)Button按鈕控件、1個(gè)RequiredFieldValidator控件、1個(gè)CompareValidator控件以及1個(gè)ValidationSummary控件,具體用途與屬性設(shè)置如下:
表1-1 注冊(cè)頁(yè)面控件用途與屬性設(shè)置
Tab.1-1 Registration page control purpose and attribute set
控件類型 相關(guān)屬性設(shè)置 具體用途
ScriptManage 無(wú) 管理頁(yè)面中Atlas服務(wù)器控件
UpdatePanel 無(wú) 令A(yù)SP.NET服務(wù)器控件具有AJAX異步傳輸功用
TextBox 無(wú) 用于準(zhǔn)考證號(hào)、學(xué)生姓名、密碼、重復(fù)密碼、密碼問(wèn)題、密碼答案、電子郵件的輸入填寫
DropDownList 無(wú) 用于“性別”和“所屬班級(jí)”
Button Text屬性設(shè)置為“檢測(cè)注冊(cè)號(hào)”、“注冊(cè)”、“重置”、“關(guān)閉”四個(gè)內(nèi)容 檢測(cè)注冊(cè)號(hào)是否重復(fù)、注冊(cè)、重置和關(guān)閉按鈕功能
RequiredFieldValidator ControlToValidate屬性設(shè)為txtStuPwd,其中TextMode設(shè)為Password、ErrorMessage屬性設(shè)為“密碼不允許空” 用于驗(yàn)證第一個(gè)密碼輸入
CompareValidator ControlToValidate屬性設(shè)為txtStuPwd,其中TextMode設(shè)為Password、ErrorMessage屬性設(shè)為“兩次密碼不一致” 用于驗(yàn)證兩次密碼是否輸入一致
ValidationSummary ShowMessageBox的屬性設(shè)為True 顯示錯(cuò)誤的信息
二、注冊(cè)號(hào)檢測(cè)是否重復(fù)的實(shí)現(xiàn)
為避免在注冊(cè)時(shí)發(fā)生與已注冊(cè)準(zhǔn)考證號(hào)相重復(fù)沖突的情況,設(shè)置在注冊(cè)頁(yè)面中添加一個(gè)檢測(cè)注冊(cè)號(hào)按鈕,利用SqlDataReader(數(shù)據(jù)閱讀器)調(diào)用ExceRead方法,讀取User數(shù)據(jù)表中的準(zhǔn)考證號(hào),來(lái)判別是否已存在,具體采用如下語(yǔ)句:
SqlDataReader read = dataconn.ExceRead(\"select * from user where registrationnumbers='\" + this.txtStuID.Text + \"'\");
三、系統(tǒng)登錄頁(yè)面設(shè)計(jì)
為了使合法用戶能夠正常使用考試系統(tǒng),設(shè)置建立用戶登錄頁(yè)面。登陸頁(yè)面分普通考生登錄、教師登錄與管理員登錄三種,對(duì)應(yīng)各自不同的權(quán)限進(jìn)入。普通考生登錄即進(jìn)入考試系統(tǒng),準(zhǔn)備考試;教師與管理員登錄則進(jìn)入相應(yīng)后臺(tái)進(jìn)行管理。
通過(guò)使用自定義方法getcon(),來(lái)判別用戶是admin、teacher、還是student。判斷是否管理員的部分代碼如下:
private void getcon(int j)
{
SqlConnection con = dataconn.getcon();
con.Open();
SqlCommand com = con.CreateCommand();
switch (j)
{
case 1:
com.CommandText = \"select count(*) from user.Administrator where Name='\" + this.txtUserName.Text + \"'and PWD='\" + this.txtPwd.Text + \"'\";
int count1 = Convert.ToInt32(com.ExecuteScalar());
if (count1 gt; 0)
{
Application[\"Name\"] = txtUserName.Text;
Application[\"PWD\"] = txtPwd.Text;
Page.Response.Redirect(\"user/admin.aspx\");
}
else
{
Response.Write(“l(fā)t;script lanuage= javascriptgt;alert(‘該用戶名或密碼有誤!’); location=’javascript:history.go(-1)’lt;/scriptgt;”);
}
break;
四、密碼找回功能設(shè)計(jì)
針對(duì)有的用戶經(jīng)常會(huì)忘記自己密碼的情況,考慮設(shè)計(jì)找回密碼功能。通過(guò)登錄頁(yè)面的“找密”按鈕來(lái)進(jìn)入密碼找回頁(yè)面,主要分2步進(jìn)行,首先是確認(rèn)自己的準(zhǔn)考證號(hào)碼,輸入完成之后點(diǎn)擊確定,將會(huì)通過(guò)公共類Datacon的getcon()方法建立與數(shù)據(jù)庫(kù)表User的連接,通過(guò)比對(duì)數(shù)據(jù)庫(kù)文件,判斷是否存在此準(zhǔn)考證號(hào),如存在,則進(jìn)入第二個(gè)頁(yè)面,出現(xiàn)相應(yīng)密碼提示問(wèn)題,否則顯示無(wú)此學(xué)生編號(hào)或者輸入有誤。當(dāng)回答了相應(yīng)密碼提示答案之后,點(diǎn)擊確定,進(jìn)行判斷是否正確。如正確,則自動(dòng)發(fā)送至注冊(cè)登錄郵箱。
綜上所述,采用基于AJAX的在線考試系統(tǒng)注冊(cè)登錄頁(yè)面使得網(wǎng)頁(yè)應(yīng)用能夠向更小、更快、更友好的方向發(fā)展,并能被所有主流瀏覽器所支持,有比較好的效果。
參考文獻(xiàn)
[1]石志國(guó).ASP.NET程序設(shè)計(jì)實(shí)用教程[M].電子工業(yè)出版社,2006:32-40.
[2]王會(huì)林.Hibernate、Struts和AJAX在Web開發(fā)中的綜合應(yīng)用[J].現(xiàn)代計(jì)算機(jī)(下半月)版,2007(17):129-231.
[3]陳磊.通用考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2007,17(2):140-143.