JSP课程设计
更新时间:2023-08-26 06:59:01 阅读量: 教育文库 文档下载
JSP课程设计 ——面向对象图书管理系统
南京信息工程大学
课程名称: JSP课程设计 题 目: 院 系: 班 级: 软件工程 学 号: 姓 名: 指导教师:
日期:2013 年 12月 20 日
JSP课程设计 ——面向对象图书管理系统
摘要:
本系统实现的是面向对象的图书管理系统。实现的功能有:用户登录、修改用户基本信息、图书管理(增删改查)、借书、查询自己的借阅情况。 该平台采用java语言,通过MVC模式进行项目搭建,利用Maven进行项目管理,前台采用Jquery技术,包括Kaptcha验证码框架和EasyUI的DataGrid表格技术,轻松的实现分页技术。后台采用SpringMVC+Hibernate+Spring 框架,通过SpringMVC进行控制选择,利用Hibernate对JDBC封装,毫无悬念的面向对象设计。利用Compass对Lucene的封装,与Spring整合,实现快速搜索,搜索速度大大提升。利用Junit进行单元测试,采用harmcrest对Junit的快速判断,同时利用EasyMock进行模拟测试,实现业务逻辑层和数据访问层开发速度不同步情况,最后采用cobertura对整个系统进行测试覆盖率评审。数据库采用MySql,服务器采用Jetty。
关键词: Jquery + SpringMVC + Hibernate + Spring + Compass + Junit
一、课程设计的目的与要求
通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。
具体如下:
1. 通过面向对象的系统分析与设计,编码和测试方面的知识; 2. 利用工具RSA对系统进行需求分析;
3. 进一步加强和提高软件工程文档的编写能力; 4. 采用流行的框架对系统进行快速部署;
二、设计正文 1. 概述
1.1课题题目:面向对象图书管理系统 1.2 系统的开发环境及运行环境:
操作系统: Window7 建模工具: RSA 数据库系统:MySql 开发工具: STS Web服务器:Jetty
2. 系统需求分析
图书管理系统主要的角色是用户和图书,而每个用户都应有一个固定的角色,去做他自己的事,而不能跨越自己的权限。系统中有两类用户:
JSP课程设计 ——面向对象图书管理系统
(1)普通用户是主要的需求者,主要是查询自己的图书借阅情况以及借阅图书,查看或修改个人的基本信息;
(2)管理员主要需求功能是管理用户的超级管理员,以及图书的管理;
系统模块如下:
2.1 系统用例图
用例图说明:
JSP课程设计 ——面向对象图书管理系统
(1)系统的外部角色有:普通用户和管理员。 (2)系统主要用例的文档描述:
①普通用户管理用例:学生用户可见的功能,图书查询与借阅四个用例功能。 ② 管理员管理用例:对普通用户可见的功能,包含了图书管理的五个用例功能。
2.2 类图
类图说明:
(1)User类是一个系统角色用户类,提供了所有的基本信息属性和set . get方法:
setXXX() 设置用户基本信息属性; getXXX() 获得用户基本信息属性。 (2)Log类是系统日志类。
(3)UserController类是用户请求的控制类,主要方法有:
login() 用于系统用户登录; updateUser() 用于更新用户信息; addUser() 用于添加用户;
(4)UserServiceImpl类实现UserService类,是封装用户的业务逻辑类,主要方法有:
add() 用于添加用户; delete() 用于删除用户; update() 用于更新用户信息; select() 用于获取用户列表。
(5)UserDaoImpl类是实现UserDao一个类,是业务展现类,主要方法有(同上)
JSP课程设计 ——面向对象图书管理系统
2.3 顺序图
(1)用户信息管理顺序图
(2)用户图书借阅顺序图
2.4 活动图
JSP课程设计 ——面向对象图书管理系统
(1)图书借阅活动图
2.5 组件图
JSP课程设计 ——面向对象图书管理系统
三、 系统总体设计
3.1 设计数据管理子系统
(1)数据库表
(2)数据表之间的关系
JSP课程设计 ——面向对象图书管理系统
(3)数据库表结构
t_book
Field Type Extra
P bId int(11) COMMENT '主键,自动生成' Auto Increment bName varchar(50) COMMENT '书的名称' Allow Null author varchar(20) COMMENT '作者' Allow Null cId int(11) COMMENT '外键,书的属性' Allow Null press varchar(20) COMMENT '出版社' Allow Null price varchar(10) COMMENT '价格' Allow Null isbn varchar(20)
wordCount int(11) COMMENT '总字数' Allow Null pageCount int(11) COMMENT '总页数' Allow Null
bookSize varchar(20) COMMENT '页面大小' Allow Null imageUrl varchar(30) COMMENT '图片地址' Allow Null bookCount int(11) COMMENT '总册数' Allow Null
avaiableCount int(11) COMMENT '可借数' Allow Null
Index Fields Extra cid cId
t_book_log
Field Type Extra
P id int(11) COMMENT '主键,自动增长' Auto Increment uId int(11) COMMENT '用户ID' bId int(11) COMMENT '图书ID'
loanTime date COMMENT '借阅时间' Allow Null IfReturn bit(1) COMMENT '是否归还' Allow Null
Index Fields Extra bId bId uId uId
t_category
Field Type Extra
P id int(11) COMMENT '主键,自动生成' Auto Increment name varchar(20) COMMENT '属性名称' subId int(11) COMMENT '类别ID'
subName varchar(20) COMMENT '类别名称'
JSP课程设计 ——面向对象图书管理系统
t_log
Field Type Extra
P LOG_ID int(11) COMMENT '主键,自动生成' Auto Increment USER_ID int(11) COMMENT '用户ID,外键' Allow Null USER_NAME varchar(255) COMMENT '用户名' Allow Null LOG_TIME datetime COMMENT '登录时间' Allow Null
t_role
Field Type Extra
P id int(11) COMMENT '主键,自动生成' Auto Increment name varchar(25) COMMENT '角色名称' Allow Null
role_type varchar(25) COMMENT '角色类型' Allow Null
t_user
Field Type Extra
P id int(11) COMMENT '主键,自动生成' Auto Increment username varchar(20) COMMENT '用户名' password varchar(36) COMMENT '登陆密码'
rId int(11) COMMENT '角色ID,外键' Allow Null sex char(2) COMMENT '性别' Allow Null age int(11) COMMENT '年龄' Allow Null
phone varchar(11) COMMENT '联系方式' Allow Null email varchar(50) COMMENT 'EMAIL' Allow Null deptName varchar(20) COMMENT '院系' Allow Null
Index Fields Extra
username username Unique rId rId
四、 系统实现
本系统采用了MVC模式的三层架构来实现,即分为用户界面层(UI)、业务逻辑层和数据访问层,用户界面层是展示给用户的界面,方便用户与系统进行交互;业务逻辑层是对系统业务实体的封装,完成系统业务功能;数据访问层直接与数据库打交道,为业务逻辑层提供底层的数据库操作。通过Jquery+SpringMVC+Hibernate+Spring的完美整合实现。
4.1 系统登录页面,代码及运行效果如下:
</style> </head> <body>
<img style="width:600px;position:relative; top:10px; left:320px;"
JSP课程设计 ——面向对象图书管理系统
src="extend/title.png"/>
<div id="alertMessage"></div> <div id="successLogin"></div> <div class="text_success">
<img src="extend/loader_green.gif" alt="Please wait" /> <span>登陆成功!请稍
后....</span>
</div>
<div id="login">
<div class="ribbon" style="background-image:url(extend/typelogin.png);"></div> <div class="inner">
<div class="logo">
<img src="extend/toplogo-jeecg.png" /> </div>
<div class="formLogin">
<form name="formLogin" action="login.action" id="formLogin" method="post">
<div class="tip">
<input class="userName" name="userName" type="text" id="userName"
title="用户名" ="true" value="admin" ="请输入用户名!" />
</div>
<div class="tip">
<input class="password" name="password" type="password"
id="password" title="密码" value="admin" ="请输入密码!" />
</div>
<div id="cap" class="tip">
<input class="captcha" name="captcha" type="text" id="captcha" <img style="width:85px;height:35px;margin-top: -10px;"
="请输入验证码!" />
align= id="Kaptcha" src="Kaptcha.jpg"/>
</div>
<div class="loginButton">
<div style="float: left; margin-left: -9px;">
<input type="checkbox" id="on_off" name="remember"
checked= class="on_off_checkbox" value="0" /> <span class="f_help">是否记住用户名?</span>
</div>
<div style="float: right; padding: 3px 0; margin-right: -12px;">
<div>
<ul class="uibutton-group">
<li><a class="uibutton normal" </li>
<li><a class="uibutton normal" </li>
href="javascript:void(0);" id="but_login">登陆</a>
href="javascript:void(0);" id="forgetpass">重置</a>
</ul>
</div>
JSP课程设计 ——面向对象图书管理系统
<div style="float: left; margin-left: 30px;">
<a href="javascript:void(0);"><span class="f_help">是否初
始化admin的密码</span></a>
</div> </div>
<div class="clear"></div>
</div>
</form>
</div>
</div>
<div class="shadow"></div>
</div>
<!--Login div-->
<div class="clear"></div> <div id="versionBar">
<div class="copyright">© 版权所有 <span class="tip"><a
(推荐使用IE9+,谷歌浏览器可以获得更快,更安全的页面响应速度)技术支持:<a
href="javascript:void(0);" title="sysErp"> LZ </a> href="javascript:void(0);" title="sysErp">LZ</a> </span>
</div> </div>
</body> 效果:
4.2 系统主界面代码及运行效果图如下:
<script type="text/javascript">
JSP课程设计 ——面向对象图书管理系统
$(function(){
var aa = document.cookie; var arrcookie=aa.split(";"); var userName;
//遍历cookie数组,处理每个cookie对 for(var i=0;i<arrcookie.length;i++){ var arr=arrcookie[i].split("="); //找到名称为userId的cookie,并返回它的值 if("userName"==arr[0]){ userName=arr[1]; break; } }
$(".user").html("用户: "" 欢迎使用!") ;
});
</script> </head>
<body class="easyui-layout" style="overflow-y: hidden" ="no"> <noscript>
<div style="position: absolute; z-index: 100000; height: 2046px; top: 0px; left: 0px; width: 100%; background: white; text-align: center;"> <img src="images/noscript.gif" alt='抱歉,请开启脚本支持!' /> </div> </noscript>
<div ="north" ="true" style="overflow: hidden; height: 30px; background: #D2E0F2 repeat-x center 50%;
line-height: 20px; color: #fff;"> <div class="user"> </div> </div>
<div ="south" style="height: 20px; background: #D2E0F2;"> <div style="text-align: center; font-weight: bold"> © 版权所有LZ </div> </div>
<div ="west" ="true" title="导航菜单" style="width: 180px;overflow:hidden;" ="icon-redo">
<div id="menu" class="easyui-accordion" ="true" ="false">
<div title="图书管理" style="overflow:auto; padding: 10px;" ="icon-edit"> <div title="图书设置"> <ul> <li> <div>
<a target="mainFrame" href="book.jsp">图书设置</a></div> </li> </ul> </div> </div>
JSP课程设计 ——面向对象图书管理系统
<div title="用户管理" style="padding: 10px;" ="icon-edit"> <div title="用户设置"> <ul> <li> <div>
<a target="mainFrame" href="user.jsp">用户设置</a></div> </li> </ul> </div> </div>
<div title="关于" ="icon-help"> <h4> 本系统只适用于在校学生</h4> </div> </div> </div>
<div ="center" id="mainPanle" style="background: #eee;overflow:hidden;"> <div id="tabs" class="easyui-tabs" ="true" ="false"> <div title="主页" style="padding: 20px;" id="home">
<div class="copyright">© 版权所有 <span class="tip"><a href="javascript:void(0);" title="sysErp">LZ</a>
(推荐使用IE9+,谷歌浏览器可以获得更快,更安全的页面响应速度)技术支持:<a </div>
href="javascript:void(0);" title="sysErp">LZ</a> </span> </div> </div> </div> </body>
JSP课程设计 ——面向对象图书管理系统
4.3 图书管理界面代码及运行效果图如下:
<body>
<table id="dg" title="图书管理" style="width:850px;height:380px" ="bookList"
="#toolbar" ="true" ="true" ="true"> <thead> <tr>
<th ="bname" width="30">书名</th> <th ="author" width="30">作者</th> <th ="press" width="30">出版社</th> <th ="price" width="30">价格</th> <th ="isbn" width="30">ISBN</th>
<!-- <th field="category" width="30">属性</th> --> <th ="pagecount" width="30">页数</th> <th ="wordcount" width="30">字数</th> <th ="booksize" width="30">页面</th>
<th ="imageurl" width="30" ="formatImagePerson">图片</th> <th ="bookcount" width="30">总册数</th> <th ="avaiablecount" width="30">可借数目</th> </tr> </thead> </table>
<div id="toolbar">
<a href="javascript:void(0)" class="easyui-linkbutton" ="icon-add" ="true" onclick="newItem()">新建</a>
<a href="javascript:void(0)" class="easyui-linkbutton" ="icon-remove" ="true" onclick="destroyItem()">删除</a>
<div><input id="search" type="text" name="search" style="width: 100px;" />
<div id="one">
<a href="javascript:void(0)" class="easyui-linkbutton" ="icon-search"
="true" >书目检索</a> </div> </div> </div>
<script type="text/javascript"> $(function(){
$('#dg').datagrid({ url:'book/show.action', view: detailview,
detailFormatter:function(index,row){ return '<div class="ddv"></div>'; },
onExpandRow: function(index,row){
var ddv = $(this).datagrid('getRowDetail',index).find('div.ddv');
JSP课程设计 ——面向对象图书管理系统
ddv.panel({ border:false, cache:true,
href:'book_form.jsp?index='+index, onLoad:function(){
$('#dg').datagrid('fixDetailRowHeight',index); $('#dg').datagrid('selectRow',index);
$('#dg').datagrid('getRowDetail',index).find('form').form('load',row); } });
$('#dg').datagrid('fixDetailRowHeight',index); } }); });
function formatImagePerson(value,rowData,rowIndex){
return "<a href='"+ value +"' class='jqzoom' title='图书照片'><img src='"+ value +"' style='width:20px;height:20px;border: 0px solid #666;' /></a>"; }
$('#one').click(function () {
var bname= $("input[name='search']").val(); bname = "'" + bname + "'"; $('#dg').datagrid({
url:'book/search.action?bname='+bname,
view: detailview,
detailFormatter:function(index,row){ return '<div class="ddv"></div>'; },
onExpandRow: function(index,row){
var ddv = $(this).datagrid('getRowDetail',index).find('div.ddv'); ddv.panel({ border:false, cache:true,
href:'book_form.jsp?index='+index, onLoad:function(){
$('#dg').datagrid('fixDetailRowHeight',index); $('#dg').datagrid('selectRow',index);
$('#dg').datagrid('getRowDetail',index).find('form').form('load',row); } });
$('#dg').datagrid('fixDetailRowHeight',index); } });
JSP课程设计 ——面向对象图书管理系统
});
function saveItem(index){
var'#dg').datagrid('getRows')[index];
$('#dg').datagrid('getRowDetail',index).find('form').form('submit',{ url: 'book/bookSave.action', onSubmit: function(){
return $(this).form('validate'); },
success: function(data){ data = eval('('+data+')'); data.isNewRecord = false;
$('#dg').datagrid('collapseRow',index); $('#dg').datagrid('updateRow',{ index: index, row: data.data }); } }); }
function cancelItem(index){
var row = $('#dg').datagrid('getRows')[index]; if (row.isNewRecord){
$('#dg').datagrid('deleteRow',index); alert(row + " " + index); } else {
$('#dg').datagrid('collapseRow',index); } }
function destroyItem(){
var row = $('#dg').datagrid('getSelected'); if (row){
$.messager.confirm('系统提示','您确定要删除这条记录吗?',function(r){ if (r){
var index = $('#dg').datagrid('getRowIndex',row); $.post('book/bookDelete.action', }); } }); } }
{id:row.bid}, function(){
$('#dg').datagrid('deleteRow',index);
JSP课程设计 ——面向对象图书管理系统
function newItem(){
$('#dg').datagrid('appendRow',{isNewRecord:true}); var index = $('#dg').datagrid('getRows').length - 1; $('#dg').datagrid('expandRow', index); $('#dg').datagrid('selectRow', index); } </script>
</body>
4.4 用户管理界面代码及运行效果图如下:
4.5 图书搜索界面代码及运行效果图如下:
JSP课程设计 ——面向对象图书管理系统
4.6 图书显示大图面代码及运行效果图如下:
4.7 图书借阅情况运行效果图如下:
JSP课程设计 ——面向对象图书管理系统
五. 系统测试
在系统测试中,我们首先对各个子模块进行单元测试(包括easymock 的模拟测试),即把每一个模块作为一个单独的实体来测试,保证每个模块作为一个单元能正确运行。然后在完成所有模块后,我们将各子模块集成起来,再对它进行系统测试,找出系统设计或编码上的错误,以及验证系统是否实现了指定的功能。最后通过测试覆盖率检查系统的测试效果(由于单元测试是从service层开始的所以有些类没有测试到,导致测试覆盖率不高)。
六、课程设计总结或结论
1. 通过这次软件工程课程设计的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实
际能力,培养工程设计能力和综合分析、解决问题的能力。 1.1 1.2 1.3 1.4 1.5
学习和实践了分析和设计软件系统的各种知识,包括面向对象的系统分析与设计,编码和测试方面的知识。
掌握了自动化的软件开发工具RSA,并将其运用于软件开发的全过程。 加深掌握了Java平台的三层架构模式设计。 进一步加强和提高软件工程文档的编写能力。 更一步了解SpringMVC的框架令人爱不释手
2. 本系统基本实现了关键的功能模块,在功能上基本满足了用户的需求,但是由于时间较紧,有些
模块以及整个系统还有许多不完善的地方。
七、参考文献
[1] 单东林.锋利的jQuery(第2 版).人民邮电出版社,2011
[2] Petar Tahchiev Felipe Leme.Junit In Action. 人民邮电出版社,2011 [3] 陈雄华.Spring 3.X 企业应用开发实战 电子工业出版社,2011
正在阅读:
JSP课程设计08-26
成功的因素作文800字共5篇03-31
自动控制常见MATLAB函数的应用12-29
浅谈重庆群山地形条件下居民建筑特色06-12
小学生战争与和平作文06-15
2014-2015年安徽省淮南市八年级上学期数学期末试卷及答案01-06
三年级上册科学教材分析05-28
百度眼中的优质移动站点是什么样的?05-02
基建部分试题11-06
诊断学复习题03-09
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 课程
- 设计
- JSP
- 2017年山东师范大学企业管理综合之财务管理考研复试核心题库
- 深大继教管理会计计算分析题
- 助学金贫困证明表样表
- 基于单片机的万年历的设计任务书(硬件)
- 三下Unit3 At the zoo B let's learn & let's do
- 《现代教育技术》实验报告本副本(1)
- 二(3)班民族团结一家亲
- 第一部分生命科学(第03讲 种群、生物群落、生态系统和生物圈)
- 华中科技大学2011年《数据库技术》A卷
- 电气工程及其自动化专业调研报告
- 口琴入门教程
- 关于集体荣誉感的故事
- 建筑工程施工中全站仪坐标放样步骤
- 汽车运用基础(第八章)
- 台湾民调机构一瞥
- 2011C程序实验报告wo带答案
- 幼儿园的教育幼儿园的小班英语学习的教案总结计划大全《听口令、学样儿、交朋友》的.doc
- 最新小学综合实践活动《社区我们的家》实地考察方法指导教学设计
- 商学院2012届学生毕业论文开题答辩安排(20120320定。发学生、教师)
- 企业在职培训的人力资本分析及其投资决策