版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第十章 綜合編程實(shí)例,前9章分別介紹了JSP概念、運(yùn)行環(huán)境、頁(yè)面組成、各種技術(shù)的應(yīng)用方法。本章將綜合各章概念、技術(shù)和方法,把這些概念、技術(shù)和方法運(yùn)用到實(shí)際應(yīng)用當(dāng)中,使讀者對(duì)JSP技術(shù)和應(yīng)用有更深刻的理解。本章涉及到4個(gè)應(yīng)用:留言板、成績(jī)管理、問卷調(diào)查和在線考試。 學(xué)習(xí)目標(biāo) 理解4個(gè)應(yīng)用的設(shè)計(jì)原理和設(shè)計(jì)方法 學(xué)會(huì)設(shè)計(jì)合理的程序結(jié)構(gòu) 提高綜合運(yùn)用各項(xiàng)編程技術(shù)和方法,10.1 留言板,本系統(tǒng)實(shí)現(xiàn)客戶在留言版上留下自已的姓名、郵箱和留言內(nèi)容。 10.1.1 留言設(shè)計(jì)原理 1. 系統(tǒng)構(gòu)成。 本系統(tǒng)由三個(gè)頁(yè)面文件和一個(gè)文本文件構(gòu)成。它們的作用如表10-1所示。 表10-1,2系統(tǒng)執(zhí)行流程 本系統(tǒng)執(zhí)行流程如
2、圖10-1所示。,圖10-1 系統(tǒng)執(zhí)行流程,10.1.2輸入留言 提供一個(gè)客戶輸入留言的窗口。本模塊由Form.jsp頁(yè)面實(shí)現(xiàn)。 程序算法: Form.jsp: 1創(chuàng)建表單,該表單包含兩個(gè)文本框和一個(gè)文本區(qū),分別用來錄入留言者姓名、郵箱和留言內(nèi)容。 2創(chuàng)建一個(gè)連接,連接到showMsg.jsp頁(yè)面。,10.1.3保存留言 將客戶輸入的留言保存到文件Message.txt中。本模塊由setMsg.jsp頁(yè)面實(shí)現(xiàn)。 程序算法: setMsg.jsp: 1獲取客戶提交的姓名、郵箱和留言內(nèi)容,并構(gòu)造客戶留言信息:Msg 2以文件名Message.txt為參數(shù)構(gòu)造文件輸出流:fw 3以fw為參數(shù)構(gòu)造緩沖
3、輸出流:bw 4將客戶留言信息(Msg)寫入緩沖輸出流bw中。 5關(guān)閉流bw,fw 6將客戶留言輸出到客戶端。 7建立超連接,連接到Form.jsp頁(yè)面。,10.1.4查看留言 讀取文件Message.txt中的所有留言,輸出到客戶端。本模塊由showMsg.jsp頁(yè)面實(shí)現(xiàn)。 程序算法: showMsg.jsp: 1以文件名Message.txt為參數(shù),構(gòu)造文件對(duì)象:f 2以f為參數(shù),構(gòu)造文件輸入流:in 3以in為參數(shù),構(gòu)造緩沖輸入流:bufferin 4將緩沖輸入流(bufferin)中的數(shù)據(jù)輸出到客戶端。 5建立超連接,連接到Form.jsp頁(yè)面。,10.2 成績(jī)管理系統(tǒng),本系統(tǒng)實(shí)現(xiàn)用戶
4、登錄、成績(jī)管理、成績(jī)錄入、修改、查詢、刪除等6個(gè)摸塊。 10.2.1成績(jī)管理系統(tǒng)設(shè)計(jì)原理 系統(tǒng)構(gòu)成。 本系統(tǒng)由6個(gè)模塊組成。它們是用戶登錄模塊、成績(jī)管理模塊、成績(jī)錄入模塊、成績(jī)修改模塊、成績(jī)查詢模塊、成績(jī)刪除模塊共6個(gè)摸塊組成。,模塊設(shè)計(jì) 本系統(tǒng)模塊結(jié)構(gòu)如圖10-2所示。,圖10-2 系統(tǒng)模塊結(jié)構(gòu),數(shù)據(jù)庫(kù)設(shè)計(jì) 本系統(tǒng)包含兩張表。一個(gè)是學(xué)生成績(jī)表(students),該表保存學(xué)生成績(jī);一個(gè)是用戶登錄網(wǎng)站的帳號(hào)表(Login),該表保存用戶帳號(hào)。兩張表屬于數(shù)據(jù)庫(kù)db.mdb中。 學(xué)生表(students)的結(jié)構(gòu)如表10-2所示;帳號(hào)表(Login)的結(jié)構(gòu)如表10-3所示。 表(students)1
5、0-2,表(Login)10-3,假設(shè)管理員在Login表中加入一條記錄XM是ken,PW是123。則客戶可以用此帳號(hào)和密碼登錄本系統(tǒng)。,10.2.2用戶登錄 在網(wǎng)站設(shè)計(jì)中,希望某些網(wǎng)頁(yè)只有具有特定權(quán)限的用戶才能訪問。這時(shí)需要建立登錄機(jī)制。這里假設(shè)由系統(tǒng)管理員給訪問者分配帳號(hào)。只有具有帳號(hào)的客戶才能訪問網(wǎng)頁(yè)。本系統(tǒng)實(shí)現(xiàn)登錄模塊的頁(yè)面由LogFrm.htm和Login.jsp組成。 程序結(jié)構(gòu): LogFrm.htm頁(yè)面檢查輸入帳號(hào)的合法性;Login.jsp檢查輸入帳號(hào)的正確性。本登錄模塊與其它頁(yè)面關(guān)系如圖10-3所示。,圖10-3 登錄頁(yè)面,程序算法: LogFrm.htm: 1定義一函數(shù)da
6、tacheck(),檢查帳號(hào)和密碼輸入的完整性。 2創(chuàng)建一表單,該表單包含兩個(gè)文本框,用于登錄客戶輸入用戶名和密碼。,Login.jsp: 1定義函數(shù)CheckLogin(String Login1, String Password1),檢查帳號(hào)和密碼的正確性。 2獲取表單的帳號(hào)(UserNm)和密碼(UserPasswd)。 3若帳號(hào)或密碼為空,則轉(zhuǎn)向LogFrm.htm頁(yè)面。 4檢查帳號(hào)與密碼的正確性 5若帳號(hào)和密碼正確,則將帳號(hào)和密碼保存到session中,并轉(zhuǎn)向LoginSuccess.jsp頁(yè)面(成績(jī)管理)。若登錄失敗,則執(zhí)行以下語句。 6輸出登錄失敗原因(strCheckLogin
7、)。 7. 建立超連接,連接到LogFrm.htm頁(yè)面。,10.2.3成績(jī)管理 該模塊只是提供一個(gè)界面,通過該界面進(jìn)入成績(jī)錄入、成績(jī)修改、成績(jī)查詢、成績(jī)刪除界面。 程序結(jié)構(gòu): 該模塊由LoginSuccess.jsp頁(yè)面實(shí)現(xiàn)。下面是該模塊與其它頁(yè)面的交互關(guān)系如圖10-4所示。,圖10-4 成績(jī)管理模塊,程序算法: LoginSuccess.jsp 獲取session中的帳號(hào): Name 若帳號(hào)為空(表示客戶還未登錄),則定向到LogFrm.htm頁(yè)面。 創(chuàng)建4個(gè)超連接,分別連接到4個(gè)頁(yè)面。,10.2.4 成績(jī)錄入 該模塊提供一個(gè)界面,用戶在此界面錄入學(xué)生成績(jī)。 程序結(jié)構(gòu): 該模塊由兩個(gè)頁(yè)面完成
8、。append_1.jsp頁(yè)面提供成績(jī)錄入界面,把成績(jī)提交給append_2.jsp頁(yè)面,由append_2.jsp頁(yè)面把成績(jī)保存到數(shù)據(jù)表(students)中。頁(yè)面交互關(guān)系如圖10-5所示。,圖10-5 成績(jī)錄入模塊,程序算法: append_1.jsp: 創(chuàng)建一個(gè)表單,該表單包含5個(gè)文本框,這些文本框用于輸入學(xué)生成績(jī)。 提交該表單后,從session中獲取添加執(zhí)行標(biāo)志(tianjia=成功|失敗)。 創(chuàng)建一個(gè)超連接,該連接指向LoginSuccess.jsp頁(yè)面。 append_2.jsp: 定義boolean insert()方法,該方法向students表中添加記錄。 從表單中獲取要添
9、加的數(shù)據(jù) 調(diào)用insert(number,name,m,e,p)方法,添加數(shù)據(jù)到students表中。 若添加成功,則把屬性-值對(duì)(tianjia,成功)加入session中。 否則把屬性-值對(duì)(tianjia,失敗)加入到session中。 返回到append_1.jsp頁(yè)面。,10.2.5 成績(jī)修改 該模塊提供一個(gè)界面,用戶通過此界面根據(jù)學(xué)號(hào)修改學(xué)生成績(jī)。 程序結(jié)構(gòu): 該模塊由兩個(gè)頁(yè)面完成。update_1.jsp頁(yè)面提供一個(gè)修改成績(jī)的界面,它把修改后的數(shù)據(jù)提交給update_2.jsp頁(yè)面,update_2.jsp頁(yè)面首先在表中查詢?cè)搶W(xué)號(hào)是否存在,若存在該學(xué)號(hào),則執(zhí)行查詢。頁(yè)面交互關(guān)系如
10、圖10-6所示。,圖10-6 成績(jī)修改模塊,程序算法: update_1.jsp: 1 創(chuàng)建一個(gè)表單,該表單包含4個(gè)文本框,用于輸入關(guān)鍵字(學(xué)號(hào))和修改后的成績(jī)。 2. 提交該表單后,從session中獲取修改執(zhí)行標(biāo)志(xiugai=成功|失敗|無此學(xué)號(hào)) 3. 輸出修改執(zhí)行標(biāo)志:xiugai 4創(chuàng)建一個(gè)超連接,連接到LoginSuccess.jsp頁(yè)面。,update_2.jsp: 1定義方法boolean query(String number),該方法查詢學(xué)號(hào)為number的學(xué)生是否存在,若存在返回值為true,否則為false。 2定義方法String update(),該方法修改學(xué)號(hào)
11、為number的成績(jī)。方法返回值有三種情況:修改成功| 修改失敗| 沒有這個(gè)學(xué)號(hào) 3從表單中獲取學(xué)號(hào)和新的成績(jī)數(shù)據(jù)。 4執(zhí)行修改操作:del=update(number, math,english, physics)。 5 根據(jù)執(zhí)行情況,將屬性-值對(duì) (xiugai,del)加入到session中。 6重新定向到update_1.jsp頁(yè)面。,10.2.6 成績(jī)查詢 根據(jù)學(xué)號(hào)查詢學(xué)生的成績(jī)。 程序結(jié)構(gòu): 該模塊由兩個(gè)頁(yè)面完成。在query_1.jsp頁(yè)面中輸入學(xué)號(hào),提交給query_2.jsp頁(yè)面,query_2.jsp頁(yè)面完成學(xué)生查詢。頁(yè)面交互關(guān)系如圖10-7所示。,圖10-7 成績(jī)查詢模塊
12、,程序算法: query_1.jsp: 1創(chuàng)建一個(gè)表單,該表單包含一個(gè)文本框,客戶在此框輸入學(xué)號(hào)。 2提交該表單后,從session中獲取結(jié)果集:rs。 3以表格形式輸出結(jié)果集數(shù)據(jù):rs。 4創(chuàng)建一超連接,連接到LoginSuccess.jsp頁(yè)面。 query_2.jsp: 1定義方法ResultSet chaxun(String number),該方法獲取學(xué)號(hào)是number的結(jié)果集。 2從表單中獲取學(xué)號(hào):number。 3執(zhí)行查詢,獲得結(jié)果集數(shù)據(jù):shu 4如果shu不為空,則把屬性-值對(duì)(rs,shu)加入session 中。 5重新定向到query_1.jsp頁(yè)面。,10.2.7 刪除
13、記錄 根據(jù)學(xué)號(hào)刪除學(xué)生記錄。 程序結(jié)構(gòu): 該模塊由兩個(gè)頁(yè)面完成。在del_1.jsp頁(yè)面中輸入學(xué)號(hào),提交給del_2.jsp頁(yè)面,del_2.jsp頁(yè)面完成學(xué)生記錄刪除。頁(yè)面交互關(guān)系如圖10-8所示。,圖10-8 成績(jī)刪除模塊,程序算法: del_1.jsp: 1創(chuàng)建一個(gè)表單,該表單包含一文本框,客戶在此框中輸入學(xué)號(hào)。 2提交表單后,從session中獲取刪除標(biāo)志(del),del有3種取值:刪除成功|刪除失敗|沒有這個(gè)學(xué)號(hào) 。 3輸出刪除標(biāo)志del。 4創(chuàng)建一個(gè)超連接,連接到LoginSuccess.jsp頁(yè)面。,del_2.jsp: 定義方法boolean query(String num
14、ber),查詢學(xué)號(hào)是number的學(xué)生。查找成功,則返回值為true,否則返回值是false。 定義方法String del(String number) ,刪除學(xué)號(hào)是number的學(xué)生。返回結(jié)果標(biāo)志有3種值:刪除成功|刪除失敗|沒有這個(gè)學(xué)號(hào)。 獲取表單提交的學(xué)號(hào)number 。 執(zhí)行刪除操作:del(number)。 根據(jù)刪除返回的標(biāo)志(刪除成功|刪除失敗|沒有這個(gè)學(xué)號(hào)),向session中,添加相應(yīng)的屬性-值對(duì)。 重新定向到del_1.jsp頁(yè)面。,10.3 問卷調(diào)查,本題以試卷的方式,調(diào)查客戶意見,并對(duì)調(diào)查結(jié)果作出統(tǒng)計(jì)。問卷包括3道題目,每道題目包含相同的5個(gè)選項(xiàng)。 10.3.1問卷設(shè)計(jì)
15、原理 系統(tǒng)構(gòu)成 本系統(tǒng)由4個(gè)模塊構(gòu)成。它們是問卷界面模塊、數(shù)據(jù)庫(kù)連接模塊(組件)、保存問卷記錄模塊(組件)、查看問卷結(jié)果模塊。,模塊的作用 4個(gè)模塊的作用如表10-4所示。 表10-4,數(shù)據(jù)庫(kù)設(shè)計(jì) 本系統(tǒng)包含一張問卷表(Qus),該表保存問卷數(shù)據(jù)。表(Qus)保存在數(shù)據(jù)庫(kù)db.mdb中。問卷表(Qus)的結(jié)構(gòu)如表10-5所示 。 表(Qus)10-5,說明:?jiǎn)柧碇?,每一題有5個(gè)選項(xiàng),當(dāng)客戶選擇第1選項(xiàng)時(shí),其選項(xiàng)值就是1,如此類推,當(dāng)客戶選擇第i個(gè)選項(xiàng)時(shí),其選項(xiàng)值就是i。i的取值是:15。,10.3.2 創(chuàng)建問卷界面 該模塊產(chǎn)生一個(gè)問卷界面,客戶在此界面選擇自已對(duì)問題的答案。該模塊由QusFrm
16、.jsp頁(yè)面實(shí)現(xiàn)。 程序結(jié)構(gòu): QusFrm.jsp頁(yè)面從Qus組件(由類QusBean.class創(chuàng)建)中獲取問題和選項(xiàng),創(chuàng)建問卷界面。然后把客戶選擇的答案提交給Qus組件。由Qus組件把客戶選擇的答案保存到數(shù)據(jù)表Qus中。本頁(yè)面與其它頁(yè)面(組件)的交互關(guān)系如圖10-9所示。,圖10-9 創(chuàng)建問卷界面,程序算法: QusFrm.jsp 用類small.dog.QusBean創(chuàng)建組件,組件名為qus。 若提交控件(submit1)的值為空(還未創(chuàng)建問卷界面), 則執(zhí)行下面步驟(來創(chuàng)建問卷界面),否則轉(zhuǎn)第5步。 輸出組件qus的標(biāo)題(title)和副標(biāo)題(subTitle)屬性值。 輸出問卷題目
17、和選項(xiàng),轉(zhuǎn)第6步。 將問卷數(shù)據(jù)加入數(shù)據(jù)庫(kù)表Qus中。 結(jié)束。,10.3.3 保存問卷答案 本模塊由兩個(gè)組件來完成。其功能是把客戶的答案保存到數(shù)據(jù)庫(kù)表中。 程序結(jié)構(gòu): DBCon.java 組件實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接。QusBean.java 組件有兩個(gè)方面的作用: 保存問卷題目和每個(gè)題目的選項(xiàng)(用于創(chuàng)建問卷界面)。 將用戶選擇的問卷答案加入數(shù)據(jù)庫(kù)表Qus中。 說明:兩個(gè)類文件(DBCon.class, QusBean.class)部署在small.dog包中。,10.3.4 查看問卷結(jié)果 此模塊由一個(gè)QusRes.jsp頁(yè)面實(shí)現(xiàn),其作用是從數(shù)據(jù)庫(kù)中獲取客戶的答卷數(shù)據(jù)并加以統(tǒng)計(jì),用條狀圖方式輸出問卷結(jié)果
18、。 程序算法: QusRes.jsp 用類small.dog.DBCon創(chuàng)建連接對(duì)象:con。 用類small.dog.QusBean創(chuàng)建問卷對(duì)象:qus。 輸出問卷bean(qus)的標(biāo)題(title)和副標(biāo)題(subTitle) 屬性值 。 用第1層循環(huán)輸出問卷題目 用第2層循環(huán)輸出選項(xiàng)和該選項(xiàng)選中的百分比(用長(zhǎng)形條表示),10.4 在線考試,本系統(tǒng)的考試題由系統(tǒng)從題庫(kù)中隨機(jī)抽取,每道試題包含4個(gè)選項(xiàng)(單選),考生做完試題交卷后,系統(tǒng)自動(dòng)改卷,自動(dòng)評(píng)分。 10.4.1 考試設(shè)計(jì)原理 系統(tǒng)構(gòu)成 本系統(tǒng)由三個(gè)模塊組成。它們是產(chǎn)生試卷模塊、獲取試題題(組件)和改卷模塊。,模塊的作用 各模塊的作用
19、如表10-6所示。 表10-6,數(shù)據(jù)庫(kù)設(shè)計(jì) 本數(shù)據(jù)庫(kù)包含一張表(Exam),該表用來存放考試題目、每道題的四個(gè)選項(xiàng)、答案編號(hào)。該表結(jié)構(gòu)如表10-7所示。,表(Exam)10-7,系統(tǒng)執(zhí)行流程 本系統(tǒng)執(zhí)行流程如圖10-10所示。,圖10-10 執(zhí)行流程,10.4.2 產(chǎn)生試卷 本模塊由Exam.jsp頁(yè)面實(shí)現(xiàn)。它從Exam表中獲取題目、選項(xiàng)和 答案編號(hào),創(chuàng)建試卷,客戶在試卷上選擇答案。 程序算法: Exam.jsp 用類small.dog.TopicBean創(chuàng)建一個(gè)bean,其名稱是top。 聲明一個(gè)結(jié)果集類型的變量:rs 創(chuàng)建表單,該表單數(shù)據(jù)提交給ExamRes.jsp頁(yè)面。 獲取組件top的結(jié)果集:rs(包含Exam表的所有記錄) 創(chuàng)建一個(gè)布爾型數(shù)組chcQus,用來標(biāo)識(shí)表中已被選取的題目。 創(chuàng)建隨機(jī)數(shù)對(duì)象:Rnd。 通過外循環(huán)隨機(jī)產(chǎn)生7道試題。把正確答案編號(hào)(Ans) 、試題(Qus)、正確答案(Opt),分別以屬性名Ans + i 、Qus + i 、RghOpt + i保存到session對(duì)象中。 通過內(nèi)循環(huán)為每道試題產(chǎn)生4個(gè)單選按鈕和選項(xiàng)。,10.4.3 獲取試題 本模塊由組件(TopicBean.java)實(shí)現(xiàn)的。其功能是從試題庫(kù)(表:Exam)中獲取試題和答案(rs)。 程序算法: TopicBean.java 定義
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中職體育保健與康復(fù)(運(yùn)動(dòng)損傷防護(hù))試題及答案
- 2025年大學(xué)三年級(jí)(醫(yī)學(xué)檢驗(yàn)技術(shù))臨床血液學(xué)檢驗(yàn)試題及答案
- 2025年大學(xué)三年級(jí)(網(wǎng)絡(luò)工程)網(wǎng)絡(luò)安全技術(shù)試題及答案
- 2026年注冊(cè)公用設(shè)備工程師(給水排水-基礎(chǔ)考試上)試題及答案
- 2026年中職第三學(xué)年(報(bào)關(guān)實(shí)務(wù))報(bào)關(guān)流程綜合測(cè)試題及答案
- 2025年大學(xué)大四(酒店管理)酒店戰(zhàn)略管理基礎(chǔ)試題及答案
- 2025年大學(xué)建筑設(shè)備(暖通空調(diào)運(yùn)行)試題及答案
- 2026年黑龍江旅游職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)筆試模擬試題帶答案解析
- 2026年河南科技職業(yè)大學(xué)單招綜合素質(zhì)筆試備考試題帶答案解析
- 2026年甘肅有色冶金職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)考試模擬試題帶答案解析
- 2025年中職食品雕刻(食品雕刻技術(shù))試題及答案
- 2026青海西寧市湟源縣水務(wù)發(fā)展(集團(tuán))有限責(zé)任公司招聘8人考試參考試題及答案解析
- 2025年大學(xué)(運(yùn)動(dòng)康復(fù))運(yùn)動(dòng)康復(fù)治療技術(shù)測(cè)試試題及答案
- 1256《數(shù)據(jù)庫(kù)應(yīng)用技術(shù)》國(guó)家開放大學(xué)期末考試題庫(kù)
- 配電紅外測(cè)溫課件
- 美容院店長(zhǎng)年度總結(jié)課件
- 江蘇省2025年普通高中學(xué)業(yè)水平合格性考試歷史試卷(含答案詳解)
- 小學(xué)階段人工智能在激發(fā)學(xué)生學(xué)習(xí)動(dòng)機(jī)中的應(yīng)用研究教學(xué)研究課題報(bào)告
- 2025年山西大地環(huán)境投資控股有限公司社會(huì)招聘116人備考題庫(kù)及完整答案詳解一套
- 民爆三大員培訓(xùn)題庫(kù)及答案
- 小學(xué)蘇教版科學(xué)三年級(jí)上冊(cè)(2024新教材)知識(shí)點(diǎn)梳理及2025秋期末測(cè)試卷及答案
評(píng)論
0/150
提交評(píng)論