第11章 网上报名系统开发案例 清华大学出版社
学习目的与要求 理解并掌握MVC模式; 掌握实体层、业务逻辑层和数据库访问层的实现技术; 掌握JSP在Web应用开发中的实用编程技术。 项目开发平台:开发工具为Myeclipse6.0,JSP引擎为Tomcat6.0,JDK版本为JavaSE6.0,数据库为MYSQL5.0。
本章主要内容 11.1 网上报名系统设计 11.2 数据库设计及实现 11.3 网上报名系统配置 11.4 三层架构设计与实现 11.1 网上报名系统设计 11.2 数据库设计及实现 11.3 网上报名系统配置 11.4 三层架构设计与实现 11.5 考生报名模块 11.6 考生登录模块 11.7 上传照片模块 11.8 浏览信息模块 11.9 修改密码模块 11.10 修改报名信息模块 11.11 注销考试模块 11.12 退出登录与返回主页模块
11.1 网上报名系统设计 一、网上报名系统的开发意义: 二、项目来源: 三、项目开发技术与目的: 11.1 网上报名系统设计 一、网上报名系统的开发意义: 通过互联网完成考试报名,可以方便考生报考,有效地提高报名信息的准确性、实效性。 二、项目来源: “职称计算机考试网上报名系统”项目实例是根据某省职称计算机报名考试系统需求而开发的项目实例。 三、项目开发技术与目的: 该实例采用MVC模式示范JSP+JavaBean+Servlet开发技术; 展示数据增、删、改、查等基本操作的编程技术,为后期基于框架技术Stuts2+Hibernate+Spring开发奠定理论和技术基础。
11.1 网上报名系统设计 11.1.1 需求分析 职称计算机网上报名系统,是收集、管理考生信息的一个平台,主要包括考生报名、登录、信息修改、上传照片、浏览信息、注销等功能。网上报名系统完成的主要任务如下: (1)考生报名:考生填写报名表,包括考生身份证号、考生姓名、工作单位、单位地址、联系电话、报考类别、Email地址、备注等信息。系统提供对填写信息的有效性检查。 (2)考生登录:完成已报名考生身份的验证任务。通过验证的考生才能有权限使用上传照片、浏览信息、修改密码、修改信息、注销考试功能。
11.1 网上报名系统设计 11.1.1 需求分析 (3)上传照片:登录后上传考生照片文件,实现照片与考生身份证号的一一对应。 11.1 网上报名系统设计 11.1.1 需求分析 (3)上传照片:登录后上传考生照片文件,实现照片与考生身份证号的一一对应。 (4)浏览信息:考生登录后,可浏览自己的详细信息和其他考生的报考信息,但不能查看其他考生的密码。 (5)修改密码:考生成功登录后可以修改自己的密码。 (6)修改信息:考生登录后,考生可对除身份证号、密码以外的个人信息进行修改。 (7)注销考试:成功登录的考生可以注销考试,也就是取消这次考试报名。
11.1 网上报名系统设计 11.1.1 需求分析 网上报名系统case图
11.1 网上报名系统设计 11.1.2 总体设计 根据网上考试报名系统的需求分析,可以将网上报名系统划分为9个模块,考生报名、考生登录、上传照片、浏览信息、修改密码、注销考试、退出登录、返回主页等模块。 网上报名系统上传照片、修改信息、浏览信息、修改密码模块是平行的,考生登录以后可以进行这些模块的操作。注销报考后,自动退出报名系统,失去对平行模块的操作权限。
11.1 网上报名系统设计 11.1.3 功能设计与系统组成 1.模块功能设计 11.1 网上报名系统设计 11.1.3 功能设计与系统组成 1.模块功能设计 (1)考生报名模块:考生填写报名表,包括考生身份证号、考生姓名、工作单位、单位地址、联系电话、报考类别、Email地址、备注等信息。系统对身份证号、密码、电子邮件地址进行有效性检查,对没有通过有效性检查的数据,提示用户更正。对考生性别和报考级别限定考生输入,性别限定为“男”或“女”,报考级别限定为“高级”或“中级”。
11.1 网上报名系统设计 11.1.3 功能设计与系统组成 1.模块功能设计 11.1 网上报名系统设计 11.1.3 功能设计与系统组成 1.模块功能设计 (2)考生登录模块:输入考生身份证号、密码登录系统。身份证号和密码正确,则进入系统,可进行浏览信息、上传照片、修改报考信息等操作。如果用户输入的身份证号或密码错误,系统将显示错误信息。 (3上传照片模块:成功登录的考生可以使用该模块上传考生照片。如果上传成功,系统将显示上传文件名称、服务器端的文件保存名称,并在页面上显示上传照片。如果失败,则显示错误信息。如果考生未登录,系统将跳转到考生登录页面。
11.1 网上报名系统设计 11.1.3 功能设计与系统组成 1.模块功能设计 11.1 网上报名系统设计 11.1.3 功能设计与系统组成 1.模块功能设计 (4)浏览信息模块:成功登录的考生可以使用该模块浏览自己的报名信息,也可以按身份证号浏览其他考生的详细信息,还可以分页浏览所有考生的部分信息(其他考生的密码信息不显示)。如果用户未登录直接进入该页面,系统则跳转到考生登录页面。 (5)修改密码模块:成功登录的用户,可以使用该模块修改自己的密码。修改密码必修输入原密码,原密码与新密码不能相同,新密码不能为空。如果用户未登录直接进入该模块,系统将跳转到登录页面。
11.1 网上报名系统设计 11.1.3 功能设计与系统组成 1.模块功能设计 11.1 网上报名系统设计 11.1.3 功能设计与系统组成 1.模块功能设计 (6)修改信息模块:成功登录的考生可以使用该模块修改报名信息,例如考生姓名、性别、工作单位等信息,但不能修改考生身份证号。系统对电子邮件等信息进行有效性检查。如果用户未登录直接使用该模块,系统将跳转到登录页面。 (7)注销考试模块:成功登录的考生可以使用该模块注销报名信息。执行此操作需要用户再次输入登录密码,系统验证密码通过后将彻底删除考生报名信息,并显示操作结果。
11.1 网上报名系统设计 11.1.3 功能设计与系统组成 用户在开发自己的Web应用系统时,要注意模块名称要符合命名规范,可以使用英文,也可以使用汉语拼音,不管用英文还是汉语拼音都要尽量简明知意,一般名称包含类型和功能的含义。
11.2 数据库设计及实现 11.2.1 数据库设计
11.2 数据库设计及实现 11.2.2 数据库实现 1.创建数据库 (1)创建dataExam数据库: 11.2 数据库设计及实现 11.2.2 数据库实现 1.创建数据库 (1)创建dataExam数据库: E:\mysql\bin> mysql –uroot mysql->create database dataExam; (2)切换到dataExam数据库: mysql->use dataExam (3)创建examinee表: 2.插入示例数据 插入示例数据的SQL语句如下: insert into examinee ( id, name, sex, company, address, phone, email, password, memo, examtype, pic) value ("130603198902021218","杨里海","男","□□大学","北京市海淀区","010-88765678"," yanglh@163.com "," yang","高校教学人员","高级","130603198902021218.JPG");
11.3 网上报名系统配置 系统文件目录结构如图 设置E:\programjsp\ch11\ch11\WebRoot为虚拟目录,在<host></host>节中加入<Context>,内容如下: <Host> … … <Context path="/ch11" docBase="E:\programJsp\ch11\ch11\WebRoot" debug="0" reloadable="true"> </Context> </Host>
11.3 网上报名系统配置 页面管理 所有页面的最上面是一个标题和广告,左侧是一列导航链接,下面是一个页脚。导航链接由考生报名、考生登录、上传照片、浏览信息、修改密码、修改信息、注销考试、退出登录、返回主页组成。所有页面布局采用分层技术,使用<div></div>标签,将整个页面分为标题区(header)、左侧导航链接(sidebar1)、主内容区(mainContent)、页脚区(clearfloat),为了便于维护页面,页面通过使用JSP的<%@ include file="……" %>标记将标题文件head.txt、左侧导航链接文件left.txt、页脚文件footer.txt嵌入其中。为了统一页面风格,页面使用了css样式表mystylesheet.css,页面通过使用<link href="css/mystylesheet.css" rel="stylesheet" type="text/css" />应用定义的样式。
11.3 网上报名系统配置 页面效果
11.4 三层架构设计与实现 三层架构设计,实体层、业务逻辑层、数据库访问层包名为myclass.bol、myclass.bll和myclass.dal包。
11.4 三层架构设计与实现 11.4.1.实体层 examinee类
11.4 三层架构设计与实现 11.4.2数据访问层 配置连接池 <Host> … … 11.4 三层架构设计与实现 11.4.2数据访问层 配置连接池 <Host> … … <Context path="/ch11" docBase="E:\programJsp\ch11\ch11\WebRoot" debug="0" reloadable="true"> <Resource name="jdbc/dataExam" auth="Container" type="javax.sql.DataSource" driverClassName="org.gjt.mm.mysql.Driver" url="jdbc:mysql://localhost:3306/dataExam" username="root" password="" maxActive="5000" maxIdle="10" maxWait="-1" /> </Context> </Host>
11.4 三层架构设计与实现 1.DBAccess类
11.4 三层架构设计与实现 2. examineeDal类
11.4 三层架构设计与实现 3. uploadFileDal类
11.4 三层架构设计与实现 11.4.3.业务逻辑层
11.4 三层架构设计与实现 11.4.3.业务逻辑层
11.5 考生报名模块 11.5.1 模型(JavaBean)
11.5 考生报名模块 11.5.2 视图
11.5 考生报名模块 11.5.2 视图
11.5 考生报名模块 11.5.2 视图
11.5 考生报名模块 11.5.3 控制器
11.6 考生登录模块 考生可在该模块输入自己的身份证号和密码登录,系统对身份证号和密码进行验证,通过验证的用户将进入系统,如果输入的身份证号或密码错误,将提示用户身份证号或密码错误。 该模块的模型JavaBean描述考生的登录信息,视图分两部分,login.jsp页面负责提交考生的登录信息到控制器,showLoginMess.jsp页面负责显示考生登录是否成功的信息。该模块的控制器Servlet负责调用examineeBll对象验证考生登录信息是否正确,并更新视图。
11.6 考生登录模块 模型
11.6 考生登录模块 视图
11.6 考生登录模块 控制器
11.7 上传照片模块
11.7 上传照片模块 模型
11.7 上传照片模块 视图
11.7 上传照片模块 控制器
11.8 浏览信息模块
11.8 浏览信息模块
11.8 浏览信息模块
11.8 浏览信息模块 模型
11.8 浏览信息模块 视图
11.8 浏览信息模块 控制器
11.9 修改密码模块
11.9 修改密码模块
11.9 修改密码模块 视图
11.9 修改密码模块 模型
11.9 修改密码模块 控制器
11.10 修改报名信息模块
11.10 修改报名信息模块
11.10 修改报名信息模块 视图
11.10 修改报名信息模块 模型
11.10 修改报名信息模块 控制器
11.11 注销考试模块
11.11 注销考试模块 视图
11.11 注销考试模块 模型
11.11 注销考试模块 控制器
11.12 退出登录与返回主页模块
习 题 实训题 1.构建开发环境,实现本章项目案例的代码编写、编译、测试。 习 题 实训题 1.构建开发环境,实现本章项目案例的代码编写、编译、测试。 2.在本章项目基础上,开发该项目的系统管理模块。系统管理模块的需求如下: (1)由考务管理人员使用,通过用户名和密码登录系统; (2)系统管理模块实现对考生报名信息删、改、查基本操作; (3)按考试级别、性别、地区对报考信息进行统计。