第十章 综合编程实例 前9章分别介绍了JSP概念、运行环境、页面组成、各种技术的应用方法。本章将综合各章概念、技术和方法,把这些概念、技术和方法运用到实际应用当中,使读者对JSP技术和应用有更深刻的理解。本章涉及到4个应用:留言板、成绩管理、问卷调查和在线考试。 学习目标 理解4个应用的设计原理和设计方法.

Slides:



Advertisements
Similar presentations
高三英语有效复习策略 程国学. 一、高考备考的方向把握 1. 认真研究普通高中《英语课程标准》和《福建 省考试说明》关注高考命题原则和发展方向,定 准复习教学起点 1. 认真研究普通高中《英语课程标准》和《福建 省考试说明》关注高考命题原则和发展方向,定 准复习教学起点 一是明确高考英语可能考什么,我们应该怎样准.
Advertisements

考纲研读 语言知识要求 语言运用能力 附录 1: 语音项目表 附录 2: 语法项目表 附录 3: 功能意念项目表 附录 4: 话题项目表 附录 5: 词汇表 听力 阅读 写作 口语.
颐高集团项目中心 海亮地产开发模式研究报告. 目 录 目 录 第四部分:海亮地产高周转模式执行 第二部分:海亮地产高周转模式原因 第三部分:海亮地产高周转模式内涵 第一部分:海亮地产企业背景 第五部分:海亮地产高周转支撑体系.
第二章 JSP 编译指令. 课程目标  JSP 编译指令  JSP 页面的表达式  JSP 页面的注释  JSP 页面的声明  Scriptlets.
第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
JSP 与数据库 SQL 语言简介 SQL 语言简介 JDBC 简介 JDBC 简介 使用 JDBC 连接数据库 使用 JDBC 连接数据库 访问数据库 数据库访问应用举例.
1 南郭國小 翁正雄 95/06/09 教育部健康醫學學習網傳統醫 學學習館交流研習 資料來源:教育部六大學習網及簡介 健康醫學學習網及簡介.
100 學年度 勞委會就業學程 國際企業管理學系-物業管理學程介紹. 何謂物業管理? 以台灣物業管理學會 所述,物業管理區分為 「物」、「業」、「人」三區塊。台灣物業管理學會 「物」係指傳統的建物設備、設施 「業」為不動產經營的資產管理 「人」則以生活服務、商業服務為主,並以人為 本位連結物與業,形成今日物業管理三足鼎立新.
化腐朽為神奇-爐石水泥 指導老師:蔡明雄 報告學生:陳宇德 4A 楊鎮宇 4A 賴兪亘 4A
图书馆管理实务.
第 5 章 中國的都市.
行政命令.
共产党领导的多党合作和政治协商制度: 中国特色的政党制度.
主讲:材料工程学院党总支宣传委员、党务秘书 教工党支部书记 王国志 2015年12月7日
职业教育.课程改革.项目课程 江苏省太仓中等专业学校校长 江苏省职业教育教学改革创新指导委员会委员 江苏省职业教育课程开发研究中心组组长
普通高中新课程实验 若干问题 广东省教育厅教研室 吴惟粤 2004年4月29日 广州.
前言 採購程序每一環節所涉及人員,無論是訂定招標文件、招標、審標、決標、訂約、履約管理、驗收及爭議處理,如缺乏品德操守,有可能降低採購效率與品質,影響採購目標之達成,甚有違法圖利情事發生,致阻礙政府政策之推動並損害公共利益。因此,較之一般公務人員,採購人員更需遵循較高標準之道德規範。 主講人:林中財.
欢迎新同学.
2015年新课标高考历史试题分析 暨考试方向研判 李树全 西安市第八十九中学.
课题四 以天池、博斯腾湖 为重点的风景旅游区
“健康的基督徒” 入门.
第四章 心理健康.
校园信息管理系统 河北科技大学网络中心 2000/4/10.
中五級中史科及通識科跨科研習 研習大澳的「宗教文化」─ 廟宇的研習 指導老師:周婉儀老師 組員: 陳偉欽 5a (15)
系统简介 理财顾问 业务 是基于通信平台的技术优势,整合《理财周刊》、第一理财网、乾隆集团等合作伙伴提供的理财产品内容和权威的理财专家资源,以集中式呼叫中心为主的服务方式,让普通百姓可以享受到快捷、全面、专业、权威的资讯及投资理财的服务平台。
“淡雅浓香 中国风尚” 山东低度浓香白酒整合传播侧记
配合< JSP程序设计>例子源代码一起使用
您買美元了嗎? 退休規劃 全球外幣保單.
宦官那些事儿 宦官那些事儿 主讲:小学部李永善 主讲:小学部李永善.
徵收苗栗市福全段147、1588及文心段10、11地號等4筆土地之
MVC Servlet与MVC设计模式.
古文閱讀 – 像虎伏獸 明 劉基 組員: 5號江依倫 6號江若薇 12號張珉芫 32號蔡燕如.
讲 义 大家好!根据局领导的指示,在局会计科和各业务科室的安排下,我给各位简要介绍支付中心的工作职能和集中支付的业务流程。这样使我们之间沟通更融洽,便于我们为预算单位提供更优质的服务。 下面我主要从三方面介绍集中支付业务,一是网上支付系统,二是集中支付业务流程及规定等,
电视教育课 【5】 小学生行为习惯养成教育.
中国人民公安大学经费管理办法(试行) 第一章总则 第四条:“一支笔” “一支笔”--仅指单位主要负责人。负责对本 单位的经费进行审核审批。
让微笑伴您一生.
宁波爱地房产市场年报 郊五区
契約之成立 楊智傑.
第四章 地理資訊與地理資訊系統.
第15章 Java数据库连接(JDBC) 15.1 创建数据源 15.2 JDBC-ODBC桥接器 15.3 顺序查询
國語文好點子趴辣客教學食譜 甜點:〈焦糖鳥布蕾〉
语言表达的十八般武艺 ——修辞手法.
体育选项课件 健美操理论课 任课教师:黄明礼 湄洲湾职业技术学院.
JAVA 程式設計與資料結構 第十一章 JDBC.
11-1 JDBC的基礎-說明 昇陽公司提出的資料庫中介軟體(Middleware)稱為「JDBC」(Java Database Connectivity),這是一種開放標準的Java程式介面,可以讓Java程式連接資料庫管理系統, 以Java技術來說,就是實作JDBC驅動程式介面(JDBC Driver.
Hello World 體驗實作第一個JSP程式.
专题4:JSP脚本和指令.
JAVA vs. SQL Server 建國科技大學 資管系 饒瑞佶 2013/4 V1.
Chapter 12 T-SQL 語法與 ASP.NET.
崑山科技大學資訊管理系 伺服網頁程式設計 系統開發細部流程 教師:游峰碩.
電子商務網站建制技術與實習(II) 助教:江宜政 吳昇洋.
2018/11/23 面向对象与多线程综合实验-数据库操作 教师:段鹏飞.
简单的介绍,简单的配置,简单的扩展 By jfm
資料庫管理(Access 2003) 第五章 利用查詢來 統計與分析資料 許欽嘉 老師.
第11章 ListView延迟加载效果 授课老师:高成珍 QQ号: QQ群: 、
共有六個運算性質 包括它的證明以及相關題型
办公自动化基础 主讲教师:韩伟颖. 办公自动化基础 主讲教师:韩伟颖 第十章 数据的处理与分析 10.1 数据排序 10.2 数据筛选 10.3 分类汇总 10.4 创建与编辑图表.
第一章 打开物理世界的大门.
Chapter 2 基本語法.
學這些有什麼好處呢? 為了把資料作更客觀之總結描述或比較多組資料。總而言之,就是要找出一個數能代表整組數據。
Node.js专题 (2) 做一个留言板 2017/3/24 – Payne
微信商城系统操作说明 色卡会智能门店.
本节内容 Lua基本语法.
報告人:采玲 班級:六年二班 指導老師:陳妙菁
僅首頁出現本title即可 責任的故事(二年級) 生命最美麗動人的本能 簡報製作:瑞柑國民小學 鄭雙慧 文/ 何秀芳.
智慧財產權管理講次36 積體電路電路布局保護法(1) 主講:吳銘圳
大綱 一.受試者之禮券/禮品所得稅規範 二.範例介紹 三.自主管理 四.財務室提醒.
第5章 表达式语言.
96 教育部專案補助計畫案明細 單位 系所 教育部補助款 學校配合款 工作໨目 計畫主 持人 備註 設備費 業務費 579,000
園區多元智能教育中心 一年級課表 科園、龍山、實小
Presentation transcript:

第十章 综合编程实例 前9章分别介绍了JSP概念、运行环境、页面组成、各种技术的应用方法。本章将综合各章概念、技术和方法,把这些概念、技术和方法运用到实际应用当中,使读者对JSP技术和应用有更深刻的理解。本章涉及到4个应用:留言板、成绩管理、问卷调查和在线考试。 学习目标 理解4个应用的设计原理和设计方法 学会设计合理的程序结构 提高综合运用各项编程技术和方法

10.1 留言板 10.1.1 留言设计原理 本系统实现客户在留言版上留下自已的姓名、邮箱和留言内容。 1. 系统构成。 10.1 留言板 本系统实现客户在留言版上留下自已的姓名、邮箱和留言内容。 10.1.1 留言设计原理 1. 系统构成。 本系统由三个页面文件和一个文本文件构成。它们的作用如表10-1所示。 表10-1 文件名 作用 Form.jsp 提供一个窗口,客户在此窗口中输入留言 setMsg.jsp 将客户输入的留言写入文件Message.txt,并输出留言 showMsg.jsp 将所有留言显示出来 Message.txt 客户每次输入的留言都保存在该文件中

2.系统执行流程 本系统执行流程如图10-1所示。 setMsg.jsp 页面 showMsg.jsp Form.jsp 写好了 showMsg.jsp Form.jsp 回留言板 Message.txt 写入 读出 查看留言 图10-1 系统执行流程

10.1.2输入留言 Form.jsp: 提供一个客户输入留言的窗口。本模块由Form.jsp页面实现。 程序算法: Form.jsp: 1.创建表单,该表单包含两个文本框和一个文本区,分别用来录入留言者姓名、邮箱和留言内容。  2.创建一个连接,连接到showMsg.jsp页面。

10.1.3保存留言 将客户输入的留言保存到文件Message.txt中。本模块由setMsg.jsp页面实现。 程序算法: 2.以文件名Message.txt为参数构造文件输出流:fw 3.以fw为参数构造缓冲输出流:bw 4.将客户留言信息(Msg)写入缓冲输出流bw中。 5.关闭流bw,fw 6.将客户留言输出到客户端。 7.建立超连接,连接到Form.jsp页面。

10.1.4查看留言 读取文件Message.txt中的所有留言,输出到客户端。本模块由showMsg.jsp页面实现。 程序算法: showMsg.jsp:   1.以文件名Message.txt为参数,构造文件对象:f 2.以f为参数,构造文件输入流:in 3.以in为参数,构造缓冲输入流:bufferin 4.将缓冲输入流(bufferin)中的数据输出到客户端。 5.建立超连接,连接到Form.jsp页面。

10.2 成绩管理系统 本系统实现用户登录、成绩管理、成绩录入、修改、查询、删除等6个摸块。 10.2.1成绩管理系统设计原理 系统构成。 10.2 成绩管理系统 本系统实现用户登录、成绩管理、成绩录入、修改、查询、删除等6个摸块。 10.2.1成绩管理系统设计原理  系统构成。 本系统由6个模块组成。它们是用户登录模块、成绩管理模块、成绩录入模块、成绩修改模块、成绩查询模块、成绩删除模块共6个摸块组成。

模块设计 本系统模块结构如图10-2所示。 用户登录模块 成绩管理模块 成绩录入 成绩修改 成绩查询 成绩删除 图10-2 系统模块结构

学生表(students)的结构如表10-2所示;帐号表(Login)的结构如表10-3所示。  数据库设计 本系统包含两张表。一个是学生成绩表(students),该表保存学生成绩;一个是用户登录网站的帐号表(Login),该表保存用户帐号。两张表属于数据库db.mdb中。 学生表(students)的结构如表10-2所示;帐号表(Login)的结构如表10-3所示。 表(students)10-2 字段名 数据类型 字段宽度 number 文本 5 name 10 math 单精度数字 自动 english phics

假设管理员在Login表中加入一条记录XM是ken,PW是123。则客户可以用此帐号和密码登录本系统。 字段名 数据类型 字段宽度 XM 文本 10 PW 假设管理员在Login表中加入一条记录XM是ken,PW是123。则客户可以用此帐号和密码登录本系统。

LogFrm.htm页面检查输入帐号的合法性;Login.jsp检查输入帐号的正确性。本登录模块与其它页面关系如图10-3所示。 10.2.2用户登录 在网站设计中,希望某些网页只有具有特定权限的用户才能访问。这时需要建立登录机制。这里假设由系统管理员给访问者分配帐号。只有具有帐号的客户才能访问网页。本系统实现登录模块的页面由LogFrm.htm和Login.jsp组成。 程序结构: LogFrm.htm页面检查输入帐号的合法性;Login.jsp检查输入帐号的正确性。本登录模块与其它页面关系如图10-3所示。

1.定义一函数datacheck(),检查帐号和密码输入的完整性。 2.创建一表单,该表单包含两个文本框,用于登录客户输入用户名和密码。 Login.jsp LoginSuccess.jsp LogFrm.htm 登录成功才进入此页面 登录失败 请重新登录 登录 图10-3 登录页面 程序算法: LogFrm.htm: 1.定义一函数datacheck(),检查帐号和密码输入的完整性。 2.创建一表单,该表单包含两个文本框,用于登录客户输入用户名和密码。

Login.jsp: 1.定义函数CheckLogin(String Login1, String Password1),检查帐号和密码的正确性。   2.获取表单的帐号(UserNm)和密码(UserPasswd)。 3.若帐号或密码为空,则转向LogFrm.htm页面。 4.检查帐号与密码的正确性 5.若帐号和密码正确,则将帐号和密码保存到session中,并转向LoginSuccess.jsp页面(成绩管理)。若登录失败,则执行以下语句。 6.输出登录失败原因(strCheckLogin)。 7. 建立超连接,连接到LogFrm.htm页面。

该模块只是提供一个界面,通过该界面进入成绩录入、成绩修改、成绩查询、成绩删除界面。 10.2.3成绩管理 该模块只是提供一个界面,通过该界面进入成绩录入、成绩修改、成绩查询、成绩删除界面。 程序结构: 该模块由LoginSuccess.jsp页面实现。下面是该模块与其它页面的交互关系如图10-4所示。 append_1.jsp (成绩录入) update_1.jsp (成绩修改) LoginSuccess.jsp (成绩管理) del/del_1.jsp (删除记录) query_1.jsp (成绩查询) LogFrm.htm (登录模块) 若客户未登录 成绩录入 成绩查询 成绩修改 删除记录 图10-4 成绩管理模块

若帐号为空(表示客户还未登录),则定向到LogFrm.htm页面。 创建4个超连接,分别连接到4个页面。 程序算法: LoginSuccess.jsp 获取session中的帐号: Name 若帐号为空(表示客户还未登录),则定向到LogFrm.htm页面。 创建4个超连接,分别连接到4个页面。

10.2.4 成绩录入 该模块提供一个界面,用户在此界面录入学生成绩。 程序结构: 该模块由两个页面完成。append_1.jsp页面提供成绩录入界面,把成绩提交给append_2.jsp页面,由append_2.jsp页面把成绩保存到数据表(students)中。页面交互关系如图10-5所示。 append_1.jsp 成绩录入 append_2.jsp LoginSuccess.jsp (成绩管理) 添加 返回 添加数据 表(students) 图10-5 成绩录入模块

程序算法: 创建一个表单,该表单包含5个文本框,这些文本框用于输入学生成绩。   append_1.jsp: 创建一个表单,该表单包含5个文本框,这些文本框用于输入学生成绩。  提交该表单后,从session中获取添加执行标志(tianjia=成功|失败)。 创建一个超连接,该连接指向LoginSuccess.jsp页面。 append_2.jsp: 定义boolean insert()方法,该方法向students表中添加记录。 从表单中获取要添加的数据 调用insert(number,name,m,e,p)方法,添加数据到students表中。 若添加成功,则把属性-值对("tianjia","成功")加入session中。 否则把属性-值对("tianjia","失败")加入到session中。 返回到append_1.jsp页面。

10.2.5 成绩修改 该模块提供一个界面,用户通过此界面根据学号修改学生成绩。 程序结构:   该模块提供一个界面,用户通过此界面根据学号修改学生成绩。 程序结构: 该模块由两个页面完成。update_1.jsp页面提供一个修改成绩的界面,它把修改后的数据提交给update_2.jsp页面,update_2.jsp页面首先在表中查询该学号是否存在,若存在该学号,则执行查询。页面交互关系如图10-6所示。 update_1.jsp 成绩修改 update_2.jsp LoginSuccess.jsp (成绩管理) 更新 返回 修改数据 表(students) 图10-6 成绩修改模块

程序算法: update_1.jsp: 1. 创建一个表单,该表单包含4个文本框,用于输入关键字(学号)和修改后的成绩。 2. 提交该表单后,从session中获取修改执行标志(xiugai=成功|失败|无此学号) 3. 输出修改执行标志:xiugai 4.创建一个超连接,连接到LoginSuccess.jsp页面。

update_2.jsp: 1.定义方法boolean query(String number),该方法查询学号为number的学生是否存在,若存在返回值为true,否则为false。 2.定义方法String update(),该方法修改学号为number的成绩。方法返回值有三种情况:"修改成功"| "修改失败"| "没有这个学号" 3.从表单中获取学号和新的成绩数据。 4.执行修改操作:del=update(number, math,english, physics)。 5. 根据执行情况,将属性-值对 ("xiugai",del)加入到session中。 6.重新定向到update_1.jsp页面。

10.2.6 成绩查询 根据学号查询学生的成绩。 程序结构: 该模块由两个页面完成。在query_1.jsp页面中输入学号,提交给query_2.jsp页面,query_2.jsp页面完成学生查询。页面交互关系如图10-7所示。 query_1.jsp 成绩查询 query_2.jsp LoginSuccess.jsp (成绩管理) 查询 返回 查询数据 表(students) 图10-7 成绩查询模块

程序算法: query_1.jsp: 1.创建一个表单,该表单包含一个文本框,客户在此框输入学号。 2.提交该表单后,从session中获取结果集:rs。 3.以表格形式输出结果集数据:rs。 4.创建一超连接,连接到LoginSuccess.jsp页面。 query_2.jsp: 1.定义方法ResultSet chaxun(String number),该方法获取学号是number的结果集。 2.从表单中获取学号:number。 3.执行查询,获得结果集数据:shu 4.如果shu不为空,则把属性-值对("rs",shu)加入session 中。 5.重新定向到query_1.jsp页面。

10.2.7 删除记录 根据学号删除学生记录。 程序结构: 10.2.7 删除记录 根据学号删除学生记录。 程序结构:   该模块由两个页面完成。在del_1.jsp页面中输入学号,提交给del_2.jsp页面,del_2.jsp页面完成学生记录删除。页面交互关系如图10-8所示。 del_1.jsp 删除记录 del_2.jsp LoginSuccess.jsp (成绩管理) 删除 返回 表(students) 图10-8 成绩删除模块

程序算法: del_1.jsp: 1.创建一个表单,该表单包含一文本框,客户在此框中输入学号。 2.提交表单后,从session中获取删除标志(del),del有3种取值:"删除成功"|"删除失败"|"没有这个学号" 。 3.输出删除标志del。 4.创建一个超连接,连接到LoginSuccess.jsp页面。

del_2.jsp: 定义方法boolean query(String number),查询学号是number的学生。查找成功,则返回值为true,否则返回值是false。 定义方法String del(String number) ,删除学号是number的学生。返回结果标志有3种值:"删除成功"|"删除失败"|"没有这个学号"。 获取表单提交的学号number 。 执行删除操作:del(number)。 根据删除返回的标志("删除成功"|"删除失败"|"没有这个学号"),向session中,添加相应的属性-值对。 重新定向到del_1.jsp页面。

10.3 问卷调查 本题以试卷的方式,调查客户意见,并对调查结果作出统计。问卷包括3道题目,每道题目包含相同的5个选项。 10.3.1问卷设计原理 系统构成  本系统由4个模块构成。它们是问卷界面模块、数据库连接模块(组件)、保存问卷记录模块(组件)、查看问卷结果模块。

模块的作用 4个模块的作用如表10-4所示。 模块名 模块作用 DBCon.java 建立与数据库的连接:组件 QusBean.java 保存问卷题目,选项,问卷记录:组件 QusFrm.jsp 产生问卷调查界面,客户在此界面选择选项 QusRes.jsp 从库中获取调查结果,并加以统计显示

本系统包含一张问卷表(Qus),该表保存问卷数据。表(Qus)保存在数据库db.mdb中。问卷表(Qus)的结构如表10-5所示 。 数据库设计 本系统包含一张问卷表(Qus),该表保存问卷数据。表(Qus)保存在数据库db.mdb中。问卷表(Qus)的结构如表10-5所示 。 表(Qus)10-5 字段名 数据类型 字段宽度 字段作用 ID 文本 自动 关键字段 Qus1 数字 第一题选项值 Qus2 第二题选项值 Qus3 第三题选项值 说明:问卷中,每一题有5个选项,当客户选择第1选项时,其选项值就是1,如此类推,当客户选择第i个选项时,其选项值就是i。i的取值是:1~5。

该模块产生一个问卷界面,客户在此界面选择自已对问题的答案。该模块由QusFrm.jsp页面实现。 10.3.2 创建问卷界面 该模块产生一个问卷界面,客户在此界面选择自已对问题的答案。该模块由QusFrm.jsp页面实现。 程序结构:   QusFrm.jsp页面从Qus组件(由类QusBean.class创建)中获取问题和选项,创建问卷界面。然后把客户选择的答案提交给Qus组件。由Qus组件把客户选择的答案保存到数据表Qus中。本页面与其它页面(组件)的交互关系如图10-9所示。

QusFrm.jsp QusRes.jsp 统计结果 表Qus Param(客户答案) Return( ) Param( ) Return(试题) 连接 客户答案写入Qus表中 提交客户答案 DBCon.java (组件) QusBean.java 图10-9 创建问卷界面

用类small.dog.QusBean创建组件,组件名为qus。 程序算法: QusFrm.jsp 用类small.dog.QusBean创建组件,组件名为qus。 若提交控件(submit1)的值为空(还未创建问卷界面), 则执行下面步骤(来创建问卷界面),否则转第5步。 输出组件qus的标题(title)和副标题(subTitle)属性值。 输出问卷题目和选项,转第6步。 将问卷数据加入数据库表Qus中。 结束。

本模块由两个组件来完成。其功能是把客户的答案保存到数据库表中。 10.3.3 保存问卷答案 本模块由两个组件来完成。其功能是把客户的答案保存到数据库表中。 程序结构: DBCon.java 组件实现数据库连接。QusBean.java 组件有两个方面的作用: 保存问卷题目和每个题目的选项(用于创建问卷界面)。 将用户选择的问卷答案加入数据库表Qus中。 说明:两个类文件(DBCon.class, QusBean.class)部署在small.dog包中。

此模块由一个QusRes.jsp页面实现,其作用是从数据库中获取客户的答卷数据并加以统计,用条状图方式输出问卷结果。 10.3.4 查看问卷结果 此模块由一个QusRes.jsp页面实现,其作用是从数据库中获取客户的答卷数据并加以统计,用条状图方式输出问卷结果。 程序算法: QusRes.jsp 用类small.dog.DBCon创建连接对象:con。  用类small.dog.QusBean创建问卷对象:qus。 输出问卷bean(qus)的标题(title)和副标题(subTitle)  属性值 。 用第1层循环输出问卷题目 用第2层循环输出选项和该选项选中的百分比(用长形条表示)

10.4 在线考试 本系统的考试题由系统从题库中随机抽取,每道试题包含4个选项(单选),考生做完试题交卷后,系统自动改卷,自动评分。 10.4 在线考试 本系统的考试题由系统从题库中随机抽取,每道试题包含4个选项(单选),考生做完试题交卷后,系统自动改卷,自动评分。 10.4.1 考试设计原理 系统构成 本系统由三个模块组成。它们是产生试卷模块、获取试题题(组件)和改卷模块。

本数据库包含一张表(Exam),该表用来存放考试题目、每道题的四个选项、答案编号。该表结构如表10-7所示。 模块的作用 各模块的作用如表10-6所示。 表10-6 文件名 作用 TopicBean 组件。获取库中的题目,选项,答案 Exam.jsp 产生考题界面 ExamRes.jsp 改卷 数据库设计 本数据库包含一张表(Exam),该表用来存放考试题目、每道题的四个选项、答案编号。该表结构如表10-7所示。

字段名 数据类型 字段宽度 字段作用 QID 文本 自动 关键字段 Qus 255 考题 Opt1 50 第1选项。对应编号是:1 Opt2 表(Exam)10-7 字段名 数据类型 字段宽度 字段作用 QID 文本 自动 关键字段 Qus 255 考题 Opt1 50 第1选项。对应编号是:1 Opt2 第2选项。对应编号是:2 Opt3 第3选项。对应编号是:3 Opt4 第4选项。对应编号是:4 Ans 1 答案编号,取值:1~4

系统执行流程 本系统执行流程如图10-10所示。 Exam.jsp ExamRes.jsp 表:Exam TopicBean.java 提交答案 表:Exam Param( ) Return(题目,选项,答案编号) 从表Exam中读取题目,选项,答案编号 TopicBean.java (组件) 图10-10 执行流程

10.4.2 产生试卷 本模块由Exam.jsp页面实现。它从Exam表中获取题目、选项和 答案编号,创建试卷,客户在试卷上选择答案。 程序算法: Exam.jsp 用类small.dog.TopicBean 创建一个bean,其名称是top。 声明一个结果集类型的变量:rs 创建表单,该表单数据提交给ExamRes.jsp页面。 获取组件top的结果集:rs(包含Exam表的所有记录) 创建一个布尔型数组chcQus[],用来标识表中已被选取的题目。 创建随机数对象:Rnd。 通过外循环随机产生7道试题。把正确答案编号(Ans) 、试题(Qus)、正确答案(Opt),分别以属性名"Ans" + i 、"Qus" + i 、"RghOpt" + i保存到session对象中。 通过内循环为每道试题产生4个单选按钮和选项。

10.4.3 获取试题 本模块由组件(TopicBean.java)实现的。其功能是从试题库(表:Exam)中获取试题和答案(rs)。 程序算法: TopicBean.java 定义三个成员变量,分别保存连接对象(con)、语句对象(stmt)、结果集对象(rs)。 定义构造方法TopicBean()。加载驱动程序、创建连接对象和语句对象。 定义方法ResultSet getRs(String sql)。获取sql语句的结果集。 定义方法closeBean()。释放各种对象

本模块(ExamRes.jsp)获取客户提交的答案,并与试题库(表:Exam)中的正确答案比较来批改试题,最后统计考生的得分。 10.4.4 批改试卷 本模块(ExamRes.jsp)获取客户提交的答案,并与试题库(表:Exam)中的正确答案比较来批改试题,最后统计考生的得分。 程序算法: ExamRes.jsp 声明变量(RightAns),用来保存客户答对试题的数目。 通过循环语句(遍历试题),批改每道试题 。批改步骤如下: 从session对象中获取正确答案编号(Ans)。 从表单中获取客户提交的答案编号(UserAns)。 若客户提交的答案编号为空,即未选择答案(UserAns == null),则输出:试题,正确答案编号,答案。 若客户选择的答案与正确答案相同,则输出信息:答对了 若客户选择了错误的答案,则输出信息:答错了,试题,正确答案编号,答案。 输出答对题的数目:RightAns。

本章小结 本章具体实例介绍了四个应用系统的编程思路,它们是留言板、成绩管理、问卷调查和在线考试,他们综合运用了JSP技术和方法。通过本章的学习,使我们加深对相关的概念、方法和技术的理解和灵活运用。

习题 1.以你所在的学校的教学业务为例,请用JSP技术开发网上教学评估系统。