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