XX学
数库课程设计报告
系 院 应科学学院
年 级 2013级
专 业 信息计算科学
学 号
学 生 姓 名 XXXXXX
指导教师姓名 XXXXXX
课程设计(文)题目 XX学学生理系统
目 录
第章 绪 1
11 研究背景意义 1
111 选题背景 1
112 研究意义 1
12 系统目标 2
13 应技术 2
131 Servlet技术 2
132 JSP技术 3
133 JDBC 3
134 MySQL 3
135 myEclipse 3
136 Tomcat 4
137 JSTL标签 4
138 XML 4
第二章 需求分析 5
21 功需求 5
211 系统模块分解 5
212 功需求描述 5
22 非功需求 8
221 性需求 8
222 需求 8
第三章 总体设计 10
31 运行环境 10
32 模块结构 11
第四章 数库设计 12
41 概念结构设计 12
411 设计思路 12
412 ER图 12
42 逻辑结构设计 15
421 设计思路 15
43 物理结构设计 15
431 存取方式 15
432 存储结构 15
第五章 界面设计 18
51 界面关系图 18
52 界面设计成果 19
521 登录界面 19
522 功菜单界面 20
第六章 详细设计 25
61 登录注册设计 27
611 算法描述 27
612 程序流程图 27
6 13 关键类说明 28
62 户理设计 28
621 程序流程图 28
622 关键类说明 29
第七章 编码 30
71 部分核心代码 30
711 JDBC连接JAVA web数库 30
712 登录注册页面理 34
72 代码优化开发需知事项 40
第七章 总结 41
参考文献 42
第章 绪
11 研究背景意义
111 选题背景
着教育事业断发展学校规模断扩学生数量信息量急剧增加关学生种信息处理展开学生理信息系统应运生理学生信息提高系统理工作效率学生信息理系统Visual Basic(前台开发)MYSQL(台理)机结合运流行ADO等相关技术完成学生信息规范理科学统计快速查询减少该理工作量
数库信息理系统中占非常重位数库结构设计坏直接应系统效率实现效果产生影响合理数库结构设计提高数库存储效率保证数完整性致性时合理数结构利程序利实现
112 研究意义
学生学籍理系统学校等机构学生信息理查询更新维护方便易性强图形界面清晰明该软件java语言编写SQLServer2012数库作台数库进行信息存储SQL语句完成添加查询修改删操作JDBC驱动实现前台Java台SQL数库连接Java语言跨台性强Windows等系统方便简单安全性
12 系统目标
该系统建立基BS模式实验室信息理系统户理员需载客户端通浏览器访问学生理系统快捷方便网页获取前学生信息时更新信息修改信息保证信息正确性时效性更更快捷更便利理学生信息实现学生信息直观视化时化系统针系统相关两类户实现信息理:
1实验室理员:登陆理员页面方便进行学籍信息理班级信息理成绩信息理户理系统理
2教师:教师进行注册成网站户通登录进入普通户界面学籍信息理班级信息理成绩信息理系统理法查修改户信息
13 应技术
131 Servlet技术
Servlet服务器端Java应程序具独立台协议特性生成动态Web页面 担客户请求服务器响应中间层 Servlet位Web 服务器部服务器端Java应程序传统命令行启动Java应程序ServletWeb服务器进行加载该Web服务器必须包含支持ServletJava虚拟机
早支持Servlet技术JavaSoftJava Web Server基JavaWeb服务器开始支持标准Servlet APIServlet功交互式浏览修改数生成动态Web容执行程:客户端发送请求服务器端服务器请求信息发送ServletServlet生成响应结果传服务器响应容动态生成通常取决客户端请求服务器响应返回客户端Servlet起s通常Java程序差Servlet导入特定属Java Servlet API程序包象字节码动态网络加载说ServletServerAppletClient样Servlet运行Server中需图形户界面角度说Servlet称Faceless ObjectServletJava编程语言中类扩展服务器性服务器驻留着通请求响应编程模型访问应程序Servlet类型请求产生响应通常扩展Web服务器应程序
132 JSP技术
Java Server Pages 技术项纯Java台技术产生动态网页容传统网页HTML文件中加入Java程序片段JSP标记构成JSP网页Web服务器接收访问JSP网页请求时首先执行中程序片段然执行结果HTML格式返回客户JSP基Java Servlet整Java体系Web开发技术利技术建立先进安全快速跨台动态网页
133 JDBC
JDBC组Java语言编写类接口组成嵌式SQL实现三方面功:建立数库连接执行SQL声明处理SQL执行结果JDBC支持基SQL功方便关系型数库建立连接进行相关操作需DBMS分编写程序
134 MySQL
MySQL户线程SQL数库客户机服务器结构应服务器守护程序mysqld客户程序库组成MySQL快速灵活性足满足网站信息理工作 许证灵活目免费修改分发 PostgreSQL私商学术研究命令执行速度快许现快简单效户特权系统
135 myeclipse
Eclipse非常优秀集成开发环境旨简化操作系统软件工具开发程理种开发务中包括测试性调整程序调试等集成供应商第三方应程序开发工具通集成量插件 myeclipse功断扩展支持种应
myeclipse台成熟精心设计扩展体系结构组成结构图示myeclipse开发插件适应台需 具良扩展性灵活性
myeclipse开放源代码基 Java 扩展开发台身言框架组服务通插件组件构建开发环境幸运myeclipse 附带标准插件集包括 Java 开发工具(Java Development ToolsJDT)
136 Tomcat
Tomcat服务器Apache Group Jakarta组开发免费服务器软件适合嵌入Apache中源代码免费获进行扩充Tomcat服务器兼容性WebLogic服务器采Web服务器引擎Jbuilder作标准测试服务器Sun公司作JSP技术应示例服务器Tomcat服务器众软件公司支持服务器性稳定发展前景次开发Tomcat7x
137 JSTL标签
JSTLapacheEL表达式扩展(说JSTL赖EL)JSTL标签语言JSTL标签非常方便JSP动作标签样JSP置标签需导包指定标签库已
果MyEclipse开发JavaWeb项目发布Tomcat时会发现MyEclipse会lib目录存放jstlJar包果没MyEclipse开发需导入JSTLJar包:jstl12jar
1378 XML
XML扩展标识语言(eXtensibleMarkupLanguage)先驱SGMLHTMLSGML通标识语言标准(StandardGeneralizedMarkupLanguage)国际定义电子文件结构容描述标准种非常复杂文档结构量高度结构化数防卫区种工业领域便分类索引XML相SGML定义功强然适Web数描述价格非常昂贵
第二章 需求分析
21 功需求
211 系统模块分解
学生信息理系统总体功模块构成:
学籍信息理班级信息理成绩信息理户理系统理
图示:
图 2 1系统功模块分解图
212 功需求描述
1) 学籍信息理模块
描述:户注册成功合法账号密码登陆理系统页面页面公告栏中理员时发布公告提醒户需注意信息学生信息变动理员需时常改动学生信息通系统实现学生学号姓名性班级出生日期等添加查修改删
例图:
图 2 – 2学生理子系统例图
2) 班级选课信息理模块
描述:班级信息理包括班号年纪班教室添加查修改删老师调动职期更改等原班级班时发生更改需时修改保证信息准确性户通查信息清楚明指导该学校班级详细准确班级信息
例图:
班级信息
添加班级信息
删班级信息
查班级信息
修改班级信息
添加班级信息
删班级信息
查班级信息
修改班级信息
理员
理员
图 2 – 3学生理子系统例图
3) 成绩信息
描述:包括学生考姓名学号班级课程名称获成绩理员完成学生信息统计成绩登记时信息进行删添加查修改操作确保成绩信息真实性
例图:
实验选课信息
添加学生成绩
删学生信息
查成绩信息
修改学生信息
添加学生成绩
删学生信息
查学生信息
修改学生信息
理员
理员
图 2 – 3学生理子系统例图
4) 户理模块
描述:实际程中户会较长时间没系统忘记信息找理员进行户信息查次通理员直接添加户前台页面操作权限进行信息修改注销
例图:
图 2 4 户理子系统例图
图 2 5 实验室理员理子系统例图
22 非功需求
221 性需求
1) 发户数:15(数库时访问数限制导致)
2) 时线数100
3) 访问高峰时期时线数:300
4) 访问高峰时期时提交事务数:30
5) 高峰时期系统响应时间:10s
注:信息开发员估计具体情况具体
222 需求
精度
户名求长度超320字符
密码长度求320字符
日期:精确某年某月某日
软件需求
1Windows XP操作系统
2SQL数库
3MyEclipse90 开发工具
4Tomcat 7X 服务器
5SQLyogTunnelphp MySql辅助工具
硬件需求
1Web服务器1台
2数库服务器1台
3备份服务器1台
4开发服务器1台
5硬件防火墙1台
6软件防火墙服务器1台
7千兆路器1台
810M网络宽带1条
第三章 总体设计
31 运行环境
1) 设备
客户程序硬件求:具Pentium II处理器满足求计算机:低512M存20GB硬盘鼠标键盘
WEB服务器硬件求:具Pentium IV处理器满足求计算机:低512MB存80GB硬盘鼠标键盘
2) 支持软件
客户程序软件:
Windows982000XP更高版
IE60 者更高版Firefox等浏览器
网络支持
WEB服务器软件:Tomcat 70
Windows982000XP更高版
数库服务器软件
Windows982000XP更高版
数库:XML
32 模块结构
1) 节理员户角度出发列出系统提供功系统功模块表示:
表 31系统功模块列表
序号
功模块名称
子功模块名称
备注
1
首页
11 注册
12 登录
2
理员模块
21 学生学籍信息
211 添加学籍信息
212 修改学籍信息
213 查学籍信息
214 删学籍信息
22 班级信息理
221 添加班级信息
222 修改班级信息
223 查班级信息
224 删班级信息
23成绩信息理
231 成绩信息添加
232 成绩信息修改
233 成绩信息查
234 成绩信息删
24户理
241 添加户
242 修改户信息
243 查户信息
244 删户信息
25系统理
251 修改登陆密码
252 功开发
3
户模块
35 查信息
36 修改登陆密码
第四章 数库设计
41 概念结构设计
411 设计思路
概念模型数库系统核心基础概念设计阶段务目标根需求分析结果找出数实体画出应ER图较复杂系统通常首先根户数权限画出应局部ER图然局部ER综合起形成系统整体ER图针系统说根实际业务首先抽象学生学籍信息班级信息理成绩理户等4实体根业务需求分析出实体拥属性设计出系统概念模型
412 ER图
理员
实验科目
实验成绩
实验选课信息实验科目
理员
学籍
成绩
班级
户
图 4 2 1系统页面ER图
理员
实验科目
实验成绩
实验选课信息实验科目
学籍信息
增加学籍信息
修改学籍信息
查学籍信息
删学籍信息
图 4 2 –2实验科目模块ER图
理员
实验科目
实验成绩
实验选课信息实验科目
班级信息信息
增加班级信息
修改班级信息
查班级信息
删班级信息
图 4 2 –2选课信息理ER图
理员
实验科目
实验成绩
实验选课信息实验科目
户信息
户账号密码查
户账号密码增加
户账号密码修改
删户信息
图 4 2 –3户信息理ER图
户名
密码
注册
登陆
系统页面
学籍信息理
班级信息理
成绩理
户理
图 4 24系统页面理ER图
42 逻辑结构设计
421 设计思路
逻辑设计阶段务目标根概念设计结果设计出数库逻辑结构模式包括全局模式外模式系统说理员系统时必须先成功注册然注册张号密码进行登陆操作进入系统页面系统包括学籍信息理班级信息理成绩信息理户理系统理五模块普通户具户理模块实验室科目模块中包含学号姓名性班级出生日期入学日期六模块班级信息包含班号年纪班姓名教室四模块成绩信息模块包含考班级学生名字学号课程成绩六模块户理包含户名密码性三模块理员通系统模块模块进行增改删查等操作
43 物理结构设计
431 存取方式
数库结构物理设计指定逻辑数模型选取适合应环境物理结构程设计表结构系统数库设计中实体应表实体属性应表列实体间关系成表约束基逻辑设计中实体转换成物理设计中表系统通关系表形式存取数
432 存储结构
表 41系统数库组成表
数库名:userdemo
序号
表名
标签说明
功说明
1
user
表 普通户
存储户相关信息
2
student
表 学生学籍信息
存储学生学籍信息
3
Cla
表 班级信息
班级信息
4
grade
表 学生成绩信息
存储学生成绩信息信息
表 42户信息表
表名:user
序号
列名
数类型
长度
数位
标识
键
允许空
默认值
说明
1
username
varchar
255
否
2
password
varchar
255
否
3
sex
varchar
255
否
表 44学生学籍信息
表名:student
序号
列名
数类型
长度
数位
标识
键
允许空
默认值
说明
1
Stunum
varchar
255
否
2
stuname
varchar
255
否
3
stusex
varchar
255
否
4
stucla
varchar
255
否
5
stubirth
varchar
255
否
6
stutosch
varchar
255
否
表 45b班级信息表
表名:cla
序号
列名
数类型
长度
数位
标识
键
允许空
默认值
说明
1
clanum
varchar
255
否
2
clagra
varchar
255
否
3
clatea
varchar
255
否
4
claroom
varchar
255
否
表 46成绩信息表
表名:grade
序号
列名
数类型
长度
数位
标识
键
允许空
默认值
说明
1
gradnum
varchar
255
否
2
gradcla
varchar
255
否
3
gradxue
varchar
255
否
4
gtadname
varchar
255
否
5
gradproj
varchar
255
否
6
grade
varchar
255
否
第五章 界面设计
51 界面关系图
注册页面
登陆页面
系统页面
学生信息理页面
添加信息页面
查信息页面
修改学籍页面
图 5 1界面关系图
注:页面班级信息理成绩理户理流程图面类似
52 界面设计成果
521 登录界面
图51登录界面
图52注册界面
图53理员登录界面
图53普通户登录界面
522 功菜单界面
图54学生信息理页面
图55查学籍页面
图56添加学生学籍信息页面
图57修改学生学籍户
图57删户
图57班级信息
图58查修改删班级信息
图59添加班级信息
图510修改班级信息
图511学生成绩信息理
图512查删修改修改成绩信息
图513户信息理页面(理员权限)
图514查删页面(理员权限)
图514添加户信息(理员权限)
图515修改户信息(理员权限)
图516工具展示myEclipse
图517工具展示mySql
第六章 详细设计
61 登录注册设计
611 算法描述
户输入户名密码选中户种类数提交服务器先检查户类型根户类型读取出户名数库中数进行核查数库中否存该户名果存核输入密码否正确户名密码正确时完成验证跳转成功页面果户名正确必核密码直接提示输入信息误需重新输入户名密码注册时户填写完信息提交服务器服务器先读取户名数库中数进行核果该户名存提示户该户已存
612 程序流程图
图 6 1登录注册程序流程图
6 13 关键类说明
DB:负责数库连接类包含连接创建数库关闭创建预处理象结果集象
User:户实体类JavaBean囊括户属性getsetter方法
UserDAO:DAO层处理数实现接口类定义读者业务操作方法
UserService:service层户相关业务方法类该类中户登录验证方法public boolean check(String username String password)方法实现户名密码验证通方法public boolean save(String username String password)实现户注册
Regist:负责注册处理跳转Servlet类该类doGet()方法中调UserService类中save()方法户提交信息提交服务器完成注册根save()返回值跳转相应页面
Login:负责登录处理跳转Servlet类该类doGet()方法中调UserService类中方法进行户名密码验证根验证结果跳转相应页面
62 户理设计
621 程序流程图
图 6 2户理流程图
622 关键类说明
User:教师实体类JavaBean囊括读者属性getsetter方法
UserDAO:DAO层处理数实现接口类定义读者业务操作方法
UserService:service层读者相关业务方法类包括public boolean save(String username String password)方法进行注册添加户操作 public boolean delete(int userId)方法完成户删完成户注销 public boolean update(int userId String username String password)方法完成户信息更新通public User findById(int userId)方法根户Id查户信息 通public User findByName(String name)方法根户名进行查询户信息通public ArrayList findAll()取出数库中读者信息
AddUser:负责户添加跳转Servlet类该类doGet()方法中调UserService类中save()方法户提交数通处理提交数库中完成户添加根save()返回值跳转相应页面
UpdateUser:负责户信息更新跳转Servlet类该类doGet()方法中调UserService类中update()方法户提交数通处理提交数库中完成户更新根update()返回值跳转相应页面
DeleteUser:负责户注销跳转Servlet类该类doGet()方法中调UserService类中delete()方法户提交数通处理提交数库中完成读者注销根delete()返回值确定否删成功跳转相应页面
注:模块设计思路述思路方法相似予说明
第七章 编码
71 部分核心代码
711 JDBC连接JAVA web工程数库
1) 连接数库
public static Connection getConnection() throws Exception{
Properties pronew Properties()
InputStream inStream UserUtilsclassgetResourceAsStream(jdbcproperties)
proload(inStream)
ClassforName(progetProperty(driverClassName))
Connection con DriverManagergetConnection(progetProperty(url) progetProperty(username) progetProperty(password))
return con
}
2) 连接数库实现数层增删改查
**增删改查 crud
* @author Administrator
* DOM4J 解析 xml
* ①导包
* ② jdbc 数程序存入数库 者 数库读取程序
*
public class UserDAO {
public void addUser(User u) throws Exception{
Connection con UserUtilsgetConnection()
String sqlinsert into user (usernamepasswordsex)values()
PreparedStatement p conprepareStatement(sql)
psetString(1 ugetUsername())
psetString(2 ugetPassword())
psetString(3 ugetSex())
pexecuteUpdate()
pclose()
conclose()
}
删户
public void deleteUser(User u) throws Exception{
Connection con UserUtilsgetConnection()
String sqldelete from user where username
PreparedStatement p conprepareStatement(sql)
psetString(1 ugetUsername())
pexecuteUpdate()
pclose()
conclose()
}
修改属性
public void alterUser(User olduUser newu) throws Exception{
Connection con UserUtilsgetConnection()
String sqlupdate user set username password sex where username
PreparedStatement p conprepareStatement(sql)
psetString(1 newugetUsername())
psetString(2 newugetPassword())
psetString(3 newugetSex())
psetString(4 oldugetUsername())
pexecuteUpdate()
pclose()
conclose()
}
查找 通户名查找
public User findByUsername(String username) throws Exception{
Connection con UserUtilsgetConnection()
String sqlselect * from user where username
PreparedStatement p conprepareStatement(sql)
psetString(1username)
ResultSet rs pexecuteQuery()
User unull
if(rsnext()){
unew User(rsgetString(username) rsgetString(password) rsgetString(sex))
}
rsclose()
pclose()
conclose()
return u
}
通性查找户
public List findBySex(String sex) throws Exception{
Connection con UserUtilsgetConnection()
String sqlselect * from user where sex
PreparedStatement p conprepareStatement(sql)
psetString(1sex)
ResultSet rs pexecuteQuery()
List uListnew ArrayList()
while(rsnext()){
uListadd(new User(rsgetString(username) rsgetString(password) rsgetString(sex)))
}
rsclose()
pclose()
conclose()
return uList
}
查找全部户
public List findALL() throws Exception{
Connection con UserUtilsgetConnection()
String sqlselect * from user
PreparedStatement p conprepareStatement(sql)
ResultSet rs pexecuteQuery()
List uListnew ArrayList()
while(rsnext()){
uListadd(new User(rsgetString(username) rsgetString(password) rsgetString(sex)))
}
rsclose()
pclose()
conclose()
return uList
}
}
712 登陆注册
1)登陆静态页面实现代码
<@ page languagejava importjavautil* pageEncodingUTF8>
<@ taglib prefixc urihttpjavasuncomjspjstlcore >
XX学
数库课程设计报告
系 院 应科学学院
年 级 2013级
专 业 信息计算科学
学 号
学 生 姓 名 XXXXXX
指导教师姓名 XXXXXX
课程设计(文)题目 XX学学生理系统
目 录
第章 绪 1
11 研究背景意义 1
111 选题背景 1
112 研究意义 1
12 系统目标 2
13 应技术 2
131 Servlet技术 2
132 JSP技术 3
133 JDBC 3
134 MySQL 3
135 myEclipse 3
136 Tomcat 4
137 JSTL标签 4
138 XML 4
第二章 需求分析 5
21 功需求 5
211 系统模块分解 5
212 功需求描述 5
22 非功需求 8
221 性需求 8
222 需求 8
第三章 总体设计 10
31 运行环境 10
32 模块结构 11
第四章 数库设计 12
41 概念结构设计 12
411 设计思路 12
412 ER图 12
42 逻辑结构设计 15
421 设计思路 15
43 物理结构设计 15
431 存取方式 15
432 存储结构 15
第五章 界面设计 18
51 界面关系图 18
52 界面设计成果 19
521 登录界面 19
522 功菜单界面 20
第六章 详细设计 25
61 登录注册设计 27
611 算法描述 27
612 程序流程图 27
6 13 关键类说明 28
62 户理设计 28
621 程序流程图 28
622 关键类说明 29
第七章 编码 30
71 部分核心代码 30
711 JDBC连接JAVA web数库 30
712 登录注册页面理 34
72 代码优化开发需知事项 40
第七章 总结 41
参考文献 42
第章 绪
11 研究背景意义
111 选题背景
着教育事业断发展学校规模断扩学生数量信息量急剧增加关学生种信息处理展开学生理信息系统应运生理学生信息提高系统理工作效率学生信息理系统Visual Basic(前台开发)MYSQL(台理)机结合运流行ADO等相关技术完成学生信息规范理科学统计快速查询减少该理工作量
数库信息理系统中占非常重位数库结构设计坏直接应系统效率实现效果产生影响合理数库结构设计提高数库存储效率保证数完整性致性时合理数结构利程序利实现
112 研究意义
学生学籍理系统学校等机构学生信息理查询更新维护方便易性强图形界面清晰明该软件java语言编写SQLServer2012数库作台数库进行信息存储SQL语句完成添加查询修改删操作JDBC驱动实现前台Java台SQL数库连接Java语言跨台性强Windows等系统方便简单安全性
12 系统目标
该系统建立基BS模式实验室信息理系统户理员需载客户端通浏览器访问学生理系统快捷方便网页获取前学生信息时更新信息修改信息保证信息正确性时效性更更快捷更便利理学生信息实现学生信息直观视化时化系统针系统相关两类户实现信息理:
1实验室理员:登陆理员页面方便进行学籍信息理班级信息理成绩信息理户理系统理
2教师:教师进行注册成网站户通登录进入普通户界面学籍信息理班级信息理成绩信息理系统理法查修改户信息
13 应技术
131 Servlet技术
Servlet服务器端Java应程序具独立台协议特性生成动态Web页面 担客户请求服务器响应中间层 Servlet位Web 服务器部服务器端Java应程序传统命令行启动Java应程序ServletWeb服务器进行加载该Web服务器必须包含支持ServletJava虚拟机
早支持Servlet技术JavaSoftJava Web Server基JavaWeb服务器开始支持标准Servlet APIServlet功交互式浏览修改数生成动态Web容执行程:客户端发送请求服务器端服务器请求信息发送ServletServlet生成响应结果传服务器响应容动态生成通常取决客户端请求服务器响应返回客户端Servlet起s通常Java程序差Servlet导入特定属Java Servlet API程序包象字节码动态网络加载说ServletServerAppletClient样Servlet运行Server中需图形户界面角度说Servlet称Faceless ObjectServletJava编程语言中类扩展服务器性服务器驻留着通请求响应编程模型访问应程序Servlet类型请求产生响应通常扩展Web服务器应程序
132 JSP技术
Java Server Pages 技术项纯Java台技术产生动态网页容传统网页HTML文件中加入Java程序片段JSP标记构成JSP网页Web服务器接收访问JSP网页请求时首先执行中程序片段然执行结果HTML格式返回客户JSP基Java Servlet整Java体系Web开发技术利技术建立先进安全快速跨台动态网页
133 JDBC
JDBC组Java语言编写类接口组成嵌式SQL实现三方面功:建立数库连接执行SQL声明处理SQL执行结果JDBC支持基SQL功方便关系型数库建立连接进行相关操作需DBMS分编写程序
134 MySQL
MySQL户线程SQL数库客户机服务器结构应服务器守护程序mysqld客户程序库组成MySQL快速灵活性足满足网站信息理工作 许证灵活目免费修改分发 PostgreSQL私商学术研究命令执行速度快许现快简单效户特权系统
135 myeclipse
Eclipse非常优秀集成开发环境旨简化操作系统软件工具开发程理种开发务中包括测试性调整程序调试等集成供应商第三方应程序开发工具通集成量插件 myeclipse功断扩展支持种应
myeclipse台成熟精心设计扩展体系结构组成结构图示myeclipse开发插件适应台需 具良扩展性灵活性
myeclipse开放源代码基 Java 扩展开发台身言框架组服务通插件组件构建开发环境幸运myeclipse 附带标准插件集包括 Java 开发工具(Java Development ToolsJDT)
136 Tomcat
Tomcat服务器Apache Group Jakarta组开发免费服务器软件适合嵌入Apache中源代码免费获进行扩充Tomcat服务器兼容性WebLogic服务器采Web服务器引擎Jbuilder作标准测试服务器Sun公司作JSP技术应示例服务器Tomcat服务器众软件公司支持服务器性稳定发展前景次开发Tomcat7x
137 JSTL标签
JSTLapacheEL表达式扩展(说JSTL赖EL)JSTL标签语言JSTL标签非常方便JSP动作标签样JSP置标签需导包指定标签库已
果MyEclipse开发JavaWeb项目发布Tomcat时会发现MyEclipse会lib目录存放jstlJar包果没MyEclipse开发需导入JSTLJar包:jstl12jar
1378 XML
XML扩展标识语言(eXtensibleMarkupLanguage)先驱SGMLHTMLSGML通标识语言标准(StandardGeneralizedMarkupLanguage)国际定义电子文件结构容描述标准种非常复杂文档结构量高度结构化数防卫区种工业领域便分类索引XML相SGML定义功强然适Web数描述价格非常昂贵
第二章 需求分析
21 功需求
211 系统模块分解
学生信息理系统总体功模块构成:
学籍信息理班级信息理成绩信息理户理系统理
图示:
图 2 1系统功模块分解图
212 功需求描述
1) 学籍信息理模块
描述:户注册成功合法账号密码登陆理系统页面页面公告栏中理员时发布公告提醒户需注意信息学生信息变动理员需时常改动学生信息通系统实现学生学号姓名性班级出生日期等添加查修改删
例图:
图 2 – 2学生理子系统例图
2) 班级选课信息理模块
描述:班级信息理包括班号年纪班教室添加查修改删老师调动职期更改等原班级班时发生更改需时修改保证信息准确性户通查信息清楚明指导该学校班级详细准确班级信息
例图:
班级信息
添加班级信息
删班级信息
查班级信息
修改班级信息
添加班级信息
删班级信息
查班级信息
修改班级信息
理员
理员
图 2 – 3学生理子系统例图
3) 成绩信息
描述:包括学生考姓名学号班级课程名称获成绩理员完成学生信息统计成绩登记时信息进行删添加查修改操作确保成绩信息真实性
例图:
实验选课信息
添加学生成绩
删学生信息
查成绩信息
修改学生信息
添加学生成绩
删学生信息
查学生信息
修改学生信息
理员
理员
图 2 – 3学生理子系统例图
4) 户理模块
描述:实际程中户会较长时间没系统忘记信息找理员进行户信息查次通理员直接添加户前台页面操作权限进行信息修改注销
例图:
图 2 4 户理子系统例图
图 2 5 实验室理员理子系统例图
22 非功需求
221 性需求
1) 发户数:15(数库时访问数限制导致)
2) 时线数100
3) 访问高峰时期时线数:300
4) 访问高峰时期时提交事务数:30
5) 高峰时期系统响应时间:10s
注:信息开发员估计具体情况具体
222 需求
精度
户名求长度超320字符
密码长度求320字符
日期:精确某年某月某日
软件需求
1Windows XP操作系统
2SQL数库
3MyEclipse90 开发工具
4Tomcat 7X 服务器
5SQLyogTunnelphp MySql辅助工具
硬件需求
1Web服务器1台
2数库服务器1台
3备份服务器1台
4开发服务器1台
5硬件防火墙1台
6软件防火墙服务器1台
7千兆路器1台
810M网络宽带1条
第三章 总体设计
31 运行环境
1) 设备
客户程序硬件求:具Pentium II处理器满足求计算机:低512M存20GB硬盘鼠标键盘
WEB服务器硬件求:具Pentium IV处理器满足求计算机:低512MB存80GB硬盘鼠标键盘
2) 支持软件
客户程序软件:
Windows982000XP更高版
IE60 者更高版Firefox等浏览器
网络支持
WEB服务器软件:Tomcat 70
Windows982000XP更高版
数库服务器软件
Windows982000XP更高版
数库:XML
32 模块结构
1) 节理员户角度出发列出系统提供功系统功模块表示:
表 31系统功模块列表
序号
功模块名称
子功模块名称
备注
1
首页
11 注册
12 登录
2
理员模块
21 学生学籍信息
211 添加学籍信息
212 修改学籍信息
213 查学籍信息
214 删学籍信息
22 班级信息理
221 添加班级信息
222 修改班级信息
223 查班级信息
224 删班级信息
23成绩信息理
231 成绩信息添加
232 成绩信息修改
233 成绩信息查
234 成绩信息删
24户理
241 添加户
242 修改户信息
243 查户信息
244 删户信息
25系统理
251 修改登陆密码
252 功开发
3
户模块
35 查信息
36 修改登陆密码
第四章 数库设计
41 概念结构设计
411 设计思路
概念模型数库系统核心基础概念设计阶段务目标根需求分析结果找出数实体画出应ER图较复杂系统通常首先根户数权限画出应局部ER图然局部ER综合起形成系统整体ER图针系统说根实际业务首先抽象学生学籍信息班级信息理成绩理户等4实体根业务需求分析出实体拥属性设计出系统概念模型
412 ER图
理员
实验科目
实验成绩
实验选课信息实验科目
理员
学籍
成绩
班级
户
图 4 2 1系统页面ER图
理员
实验科目
实验成绩
实验选课信息实验科目
学籍信息
增加学籍信息
修改学籍信息
查学籍信息
删学籍信息
图 4 2 –2实验科目模块ER图
理员
实验科目
实验成绩
实验选课信息实验科目
班级信息信息
增加班级信息
修改班级信息
查班级信息
删班级信息
图 4 2 –2选课信息理ER图
理员
实验科目
实验成绩
实验选课信息实验科目
户信息
户账号密码查
户账号密码增加
户账号密码修改
删户信息
图 4 2 –3户信息理ER图
户名
密码
注册
登陆
系统页面
学籍信息理
班级信息理
成绩理
户理
图 4 24系统页面理ER图
42 逻辑结构设计
421 设计思路
逻辑设计阶段务目标根概念设计结果设计出数库逻辑结构模式包括全局模式外模式系统说理员系统时必须先成功注册然注册张号密码进行登陆操作进入系统页面系统包括学籍信息理班级信息理成绩信息理户理系统理五模块普通户具户理模块实验室科目模块中包含学号姓名性班级出生日期入学日期六模块班级信息包含班号年纪班姓名教室四模块成绩信息模块包含考班级学生名字学号课程成绩六模块户理包含户名密码性三模块理员通系统模块模块进行增改删查等操作
43 物理结构设计
431 存取方式
数库结构物理设计指定逻辑数模型选取适合应环境物理结构程设计表结构系统数库设计中实体应表实体属性应表列实体间关系成表约束基逻辑设计中实体转换成物理设计中表系统通关系表形式存取数
432 存储结构
表 41系统数库组成表
数库名:userdemo
序号
表名
标签说明
功说明
1
user
表 普通户
存储户相关信息
2
student
表 学生学籍信息
存储学生学籍信息
3
Cla
表 班级信息
班级信息
4
grade
表 学生成绩信息
存储学生成绩信息信息
表 42户信息表
表名:user
序号
列名
数类型
长度
数位
标识
键
允许空
默认值
说明
1
username
varchar
255
否
2
password
varchar
255
否
3
sex
varchar
255
否
表 44学生学籍信息
表名:student
序号
列名
数类型
长度
数位
标识
键
允许空
默认值
说明
1
Stunum
varchar
255
否
2
stuname
varchar
255
否
3
stusex
varchar
255
否
4
stucla
varchar
255
否
5
stubirth
varchar
255
否
6
stutosch
varchar
255
否
表 45b班级信息表
表名:cla
序号
列名
数类型
长度
数位
标识
键
允许空
默认值
说明
1
clanum
varchar
255
否
2
clagra
varchar
255
否
3
clatea
varchar
255
否
4
claroom
varchar
255
否
表 46成绩信息表
表名:grade
序号
列名
数类型
长度
数位
标识
键
允许空
默认值
说明
1
gradnum
varchar
255
否
2
gradcla
varchar
255
否
3
gradxue
varchar
255
否
4
gtadname
varchar
255
否
5
gradproj
varchar
255
否
6
grade
varchar
255
否
第五章 界面设计
51 界面关系图
注册页面
登陆页面
系统页面
学生信息理页面
添加信息页面
查信息页面
修改学籍页面
图 5 1界面关系图
注:页面班级信息理成绩理户理流程图面类似
52 界面设计成果
521 登录界面
图51登录界面
图52注册界面
图53理员登录界面
图53普通户登录界面
522 功菜单界面
图54学生信息理页面
图55查学籍页面
图56添加学生学籍信息页面
图57修改学生学籍户
图57删户
图57班级信息
图58查修改删班级信息
图59添加班级信息
图510修改班级信息
图511学生成绩信息理
图512查删修改修改成绩信息
图513户信息理页面(理员权限)
图514查删页面(理员权限)
图514添加户信息(理员权限)
图515修改户信息(理员权限)
图516工具展示myEclipse
图517工具展示mySql
第六章 详细设计
61 登录注册设计
611 算法描述
户输入户名密码选中户种类数提交服务器先检查户类型根户类型读取出户名数库中数进行核查数库中否存该户名果存核输入密码否正确户名密码正确时完成验证跳转成功页面果户名正确必核密码直接提示输入信息误需重新输入户名密码注册时户填写完信息提交服务器服务器先读取户名数库中数进行核果该户名存提示户该户已存
612 程序流程图
图 6 1登录注册程序流程图
6 13 关键类说明
DB:负责数库连接类包含连接创建数库关闭创建预处理象结果集象
User:户实体类JavaBean囊括户属性getsetter方法
UserDAO:DAO层处理数实现接口类定义读者业务操作方法
UserService:service层户相关业务方法类该类中户登录验证方法public boolean check(String username String password)方法实现户名密码验证通方法public boolean save(String username String password)实现户注册
Regist:负责注册处理跳转Servlet类该类doGet()方法中调UserService类中save()方法户提交信息提交服务器完成注册根save()返回值跳转相应页面
Login:负责登录处理跳转Servlet类该类doGet()方法中调UserService类中方法进行户名密码验证根验证结果跳转相应页面
62 户理设计
621 程序流程图
图 6 2户理流程图
622 关键类说明
User:教师实体类JavaBean囊括读者属性getsetter方法
UserDAO:DAO层处理数实现接口类定义读者业务操作方法
UserService:service层读者相关业务方法类包括public boolean save(String username String password)方法进行注册添加户操作 public boolean delete(int userId)方法完成户删完成户注销 public boolean update(int userId String username String password)方法完成户信息更新通public User findById(int userId)方法根户Id查户信息 通public User findByName(String name)方法根户名进行查询户信息通public ArrayList
AddUser:负责户添加跳转Servlet类该类doGet()方法中调UserService类中save()方法户提交数通处理提交数库中完成户添加根save()返回值跳转相应页面
UpdateUser:负责户信息更新跳转Servlet类该类doGet()方法中调UserService类中update()方法户提交数通处理提交数库中完成户更新根update()返回值跳转相应页面
DeleteUser:负责户注销跳转Servlet类该类doGet()方法中调UserService类中delete()方法户提交数通处理提交数库中完成读者注销根delete()返回值确定否删成功跳转相应页面
注:模块设计思路述思路方法相似予说明
第七章 编码
71 部分核心代码
711 JDBC连接JAVA web工程数库
1) 连接数库
public static Connection getConnection() throws Exception{
Properties pronew Properties()
InputStream inStream UserUtilsclassgetResourceAsStream(jdbcproperties)
proload(inStream)
ClassforName(progetProperty(driverClassName))
Connection con DriverManagergetConnection(progetProperty(url) progetProperty(username) progetProperty(password))
return con
}
2) 连接数库实现数层增删改查
**增删改查 crud
* @author Administrator
* DOM4J 解析 xml
* ①导包
* ② jdbc 数程序存入数库 者 数库读取程序
*
public class UserDAO {
public void addUser(User u) throws Exception{
Connection con UserUtilsgetConnection()
String sqlinsert into user (usernamepasswordsex)values()
PreparedStatement p conprepareStatement(sql)
psetString(1 ugetUsername())
psetString(2 ugetPassword())
psetString(3 ugetSex())
pexecuteUpdate()
pclose()
conclose()
}
删户
public void deleteUser(User u) throws Exception{
Connection con UserUtilsgetConnection()
String sqldelete from user where username
PreparedStatement p conprepareStatement(sql)
psetString(1 ugetUsername())
pexecuteUpdate()
pclose()
conclose()
}
修改属性
public void alterUser(User olduUser newu) throws Exception{
Connection con UserUtilsgetConnection()
String sqlupdate user set username password sex where username
PreparedStatement p conprepareStatement(sql)
psetString(1 newugetUsername())
psetString(2 newugetPassword())
psetString(3 newugetSex())
psetString(4 oldugetUsername())
pexecuteUpdate()
pclose()
conclose()
}
查找 通户名查找
public User findByUsername(String username) throws Exception{
Connection con UserUtilsgetConnection()
String sqlselect * from user where username
PreparedStatement p conprepareStatement(sql)
psetString(1username)
ResultSet rs pexecuteQuery()
User unull
if(rsnext()){
unew User(rsgetString(username) rsgetString(password) rsgetString(sex))
}
rsclose()
pclose()
conclose()
return u
}
通性查找户
public List
Connection con UserUtilsgetConnection()
String sqlselect * from user where sex
PreparedStatement p conprepareStatement(sql)
psetString(1sex)
ResultSet rs pexecuteQuery()
List
while(rsnext()){
uListadd(new User(rsgetString(username) rsgetString(password) rsgetString(sex)))
}
rsclose()
pclose()
conclose()
return uList
}
查找全部户
public List
Connection con UserUtilsgetConnection()
String sqlselect * from user
PreparedStatement p conprepareStatement(sql)
ResultSet rs pexecuteQuery()
List
while(rsnext()){
uListadd(new User(rsgetString(username) rsgetString(password) rsgetString(sex)))
}
rsclose()
pclose()
conclose()
return uList
}
}
712 登陆注册
1)登陆静态页面实现代码
<@ page languagejava importjavautil* pageEncodingUTF8>
<@ taglib prefixc urihttpjavasuncomjspjstlcore >