摘要摘要:在myeclipse8.6和tomcat6.0环境下,进行基于struts的图书信息管理系统设计与开发,着重探讨了图书信息管理系统的分析与设计,以及相关程序的设计与开发等具体问题,并对小型信息管理系统开发的基本步骤和方法进行了介绍。对该系统进行测试表明,系统运行良好,能够正常实现其功能。
关键词关键词:struts;信息管理系统;系统测试
中图分类号:tp319文献标识码:a文章编号文章编号:16727800(2014)006009603
基金项目基金项目:2013湖北省教育厅人文社会科学研究项目青年项目(2013012602);黄冈师范学院人文社科一般项目(2012011803);黄冈师范学院人文社科重点项目(2013019303)
作者简介作者简介:龙斌(1978-),女,硕士,黄冈师范学院图书馆馆员,研究方向为资源建设及图书馆管理和服务;刘朝辉(1968-),女,黄冈师范学院图书馆馆员,研究方向为图书馆管理和服务;张扬(1983-),男,硕士,黄冈师范学院图书馆馆员,研究方向为数字图书馆建设与管理。0引言
随着网络技术的飞速发展,借助计算机对图书馆的日常工作进行管理已颇为普遍。对于复杂的信息管理工作而言,计算机能够充分发挥它在计算和信息处理方面的优越性。目前,全国很多高校都有属于自己的图书馆,而市场上也有了比较成熟的图书馆管理系统模型。相对于中小型图书馆来说,市场上的图书馆管理系统较为昂贵,本系统的开发则以小型实惠为着眼点,对内而言可以提高工作效率,对外而言能够提升服务质量、获得竞争优势[12]。
1系统开发环境配置
系统开发环境配置如下:
(1)安装jdk6u22windowsi586.exe,安装完成后,添加java_home的环境变量即代表jdk的安装路径。添加path环境变量,该环境变量值为:%java_home%/bin,以及classpath:%java_home%/lib/tools.jar;%javahome%/lib/dr.jar。
(2)安装apache的tomcat6.5,双击安装程序,直到点击“finish”按钮,启动tomcate。可以通过浏览器查看tomcat本地主页来检验安装是否成功,打开浏览器,在url地址栏中输入http://localhost:8080/。如果显示tomcate 主页,则说明tomcate 安装成功。
(3) 安装sql 数据库。
(4) 安装 myeclipse 8.6开发工具my。
(5) 用struts2作为系统框架。打开myclipse 软件创建 web project 工程,然后导入struts2 jar 包。
4结语
数字化医院的基础是应用系统集成问题,在进行建设时必须全面考虑并选取合适的技术。本文介绍的yale cas因其开源、可扩展性好,支持模块自定义和代理模式,很适合作为数字化医院单点登录的解决方案。
参考文献参考文献:
\[1\]蒋昀昕.医院信息门户单点登录系统的设计与实现[j].应用技术与研究,2012(6):5455.
[2]张雄,朱建民,高靖.数字化医院建设初探[j].方法研讨,2006,19(2):8688.
[3]董昭.门户网站的统一认证与单点登录技术[j]. 电信工程技术与标准化,2010(5):5964.
[4]the open group.single signon[eb/ol].[20080721]. http://en.wikipedia.org/wiki/single_signon.
[5]jasig(cas)学习笔记[eb/ol]. http://www.javaeye.com/topic/165313.
[6]续岩, 季永志.单点登录技术在web应用中的研究与实现[j].计算机工程, 2006, 32( 10) : 271273.
[7]钟林栖.基于cas协议的单点登录系统的研究[d].成都:四川大学,2006.
责任编辑(责任编辑:杜能钢)2系统总体结构与数据库设计
2.1系统业务模块与目标分析
系统业务模块包括:①权限管理模块;②读者管理模块;③图书类别设置;④图书信息调整模块;⑤图书借还管理模块。
系统应达到如下目标:①系统界面友好;②数据存储安全、隐秘和可靠;③信息分类准确、明了;④数据查询敏捷;⑤能进行数据信息跟踪;⑥呈现图书借阅排行榜;⑦有借阅到期提醒的子功能模块;⑧有修改权限等功能设置。
2.2系统功能结构设计
按照 “低耦合、高内聚”的原则,系统主要功能模块包括:系统管理员功能模块、读者管理功能模块、图书管理功能模块、图书借还功能模块和系统查询功能模块。
2.3系统数据库设计
数据库是整个系统最为重要的部分,本系统采用 mysql数据库。系统中使用的数据库实体分别为读者信息、图书信息、图书借阅、图书归还和管理员。为了能让系统迅捷、简便而准确地对所需要的数据进行管理,必须首先确定一个合理的数据存储结构,这也是衡量信息系统质量的一个标准。
3系统模块设计
3.1主页面设计
通过“系统登录”可进入图书馆管理系统的主界面,该界面内主要包括信息栏、导航栏、排行榜和版权信息。
在jsp中包含文件有两种方法:一种是应用(%@include%)指令实现,另一种是采用(jsp:include)动作元素来实现。
3.2管理员模块设计
该模块包括管理员登录、查看管理员列表、添加管理员信息、管理员权限设置、管理员删除和更改口令。本系统主要采用 struts框架,在实现其模块时需要编写对应的 actionform类和 action类加以实现。为了实现表单的验证,用actionform类设置 html表单数据,从而得到最后的html表单数据。
系统登录就是系统的入口,也即整个系统的门禁所在。验证管理员的身份方法如下:
在managerlogin()中,首先把接收的表单信息转换成 actionform类型,接着把得到指定属性的getxxx()方法进行重新设置,变化成该属性的 set xxx()方法,再调用 managerdao类中的 checkmanager()方法,以验证登录管理员是否为正常登录。
系统管理员登录后,如果选择“系统设置/管理员设置”命令,就能够进入查看管理员列表页面,这时系统将在页面上显示出全部管理员的信息,也即名称和权限。而admin作为管理员可以对管理员发出添加、删除,以及权限设置操作的命令。
查看管理员信息的managerdaoimpl方法是query()。 在该方法中使用了表tb_manager和tb_purviewb的左连接。
3.3图书档案管理模块设计
该模块包括查看图书列表、添加图书信息、修改图书信息、删除图书信息和查看图书详细信息功能。查询图书信息所使用的方法是 bookdao类方法,其主要代码如下:
/** *********************查询所有图书的相关信息:
**************************** */
public list(book) queryallbook(int pagenow, int pagesize) {
int startnum = 0;
int endnum = 0;
string sql = "";
// 实现分页显示记录
if (pagenow !
= 0 && pagesize != 0) {startnum = pagenow * pagesize - pagesize;
endnum = pagesize;
sql =
" select b.*, c. name as the book case name, and p. pub name as publishing, and t. type name from tb_ book info b left of join tb_ bookcase c on b. bookcase;
= c. id join tb_ publishing p on b. isbn= p. isbn join tb_ booktype t on b. typeid
= t. id where b. del=0 limit"+ startnum + "," + end num;
} else {
sql =
" select b.*, c. name as bookcasename, p. pubname as publishing, t. typename from tb_ bookinfo b left join tb_ bookcase c on b. bookcase= c. id join tb_ publishing p on b. isbn= p. isbn join tb_ booktype t on b. typeid= t. id where b. del=0"list(book) booklist = new arraylist(book)();
book book = null;
try {
conn = db.get connection();
stmt = conn. of create statement();
rs = stmt.execute query(sql);
and while (rs.next()) { book = new book();
book.set barcode(rs.getstring(1).trim());
//其中,省略了获取并设置其他属性的代码
book.settypename(rs.getstring(18).trim());
booklist.add(book);
} catch (exception e) {
booklist = null;
e.
printstacktrace();system.out.println(
"查询所有图书信息时出错");} finally {
db.free(rs, stmt, conn,
"查询所有图书信息时(关闭)出错");return booklist;
}
添加图书信息方法是 bookadd(),表示把接收到的表单信息转换成string类型,把获得的属性 getxxx()方法重新设置为setxxx()方法
,再调用 managerdaoipml()类的 insert()方法把添加的管理员保存到数据库里,变量i保存着返回值,信息更新成功返回值为1,将该页面定向到成功界面;若返回值为2,表示管理员信息更新失败,若返回值为3,将提示的错误信息“该图书已经添加”保存到httpservletrequest中的error参数中,然后将该页面定向到错误提示页面;若返回值为4,表示添加成功,将成功信息重定向到成功页面,否则提示“添加管理员信息失败”。
3.4图书借还模块设计
该模块主要包括图书借阅、图书续借、图书归还、图书借阅查询、借阅到期提醒和图书借阅排行功能。
登录后,选择“图书借还/图书借阅”命令进入图书借阅页面,在文本框中输入读者条形码后, 单击“确定”,系统会自动检索出读者基本信息和未归还的借阅图书信息。
首先要把读者信息对应reader对象实例化,并把该对象setbarcode()方法设置页面获取读者条形码的值,再到readerdaoipml类中的query()方法查询读者信息。将结果保存到对象reader中后,把reader保存到httpservletrequest对象readerinfo里。调用borrowdaoimpl类 的borrowinfo()方法查询读者借阅信息,然后调用bookdaoimpl类的addborrow()方法添加图书信息。若添加成功,则将读者条形码保存到httpservletrequest对象的bar参数,不成功则提示“添加信息失败”,并保存到httpservletrequest对象error参数。否则将提示“没有该图书”。
登录后,选择“图书借还/图书续借”命令进入图书续借页面,在文本框中输入读者条形码后,单击“确定”,系统会自动检索出读者基本信息和未归还的借阅图书信息。如找到对应读者信息,则显示在页面中,此刻点击“续借”超链接,就可以续借所要的书。
登录后,选择“图书借还/图书归还”命令进入图书归还页面,在文本框中输入读者条形码后,单击“确定”,系统会自动检索出读者基本信息和未归还的借阅图书信息。如找到对应读者信息,则显示在页面中,此刻点击“归还”超链接,就可以将书归还。
3.5系统查询模块设计
该模块采用的方法是 borrowquery(),首先获取表单元素复选框flag的值,然后把它保存到字符串数组中,再根据其值查询字符串,并调用 borrowdaoimpl类的方法,最后把返回值保存到 httpservletrequest对象的 borrowquery参数中。
管理员登录后,选择“系统查询/图书借阅查询”命令进入图书借阅查询页面,可以根据图书名称、读者条形码、读者名称等关键字查询已经借阅的书。
管理员登录后,选择 “系统查询/图书到期提醒”命令进入图书到期提醒页面,是对借书超时的提醒。
4软件系统测试与运行
硬件环境:cpu amd athlon 64*2 4200+,内存1g;软件环境:window xp系统,loadrunner9.09。
4.1软件系统测试
软件系统测试包括如下方面:
(1)功能测试。测试范围包括数据精确度、数据类型、业务功能等相关方面的正确性测试。测试表明,所有功能均已正常实现。
(2)性能测试。对用户多且流量大时系统的性能进行测试,包括软件性能的稳定性、是否存在系统崩溃或异常现象,以及技术和自动化测试、方法动态测试等。
(3)安全性与访问测试。测试范围包括密码和权限等的测试,验证超级管理员、一般管理员、用户等的密码是否安全,核实用户只能操作其所拥有权限的操作功能,并确保系统无安全漏洞,能够正常使用。
4.2测试用例
以功能测试部分为例:
(1)登录测试模块用例分析。测试中输入用户名或者密码,如果输错其中任何一个,就会提示出错界面,按出错界面的“确定”后会返回登录界面,要求重新输入用户名和密码。
(2)更改密码测试模块。用户登录系统后可自行设置密码,在更改时需要通过原密码和新密码验证,如果原密码错误或者两次输入的新密码都有误,系统将无法进行操作。
(3)图书借阅测试模块。性能测试部分:①进入系统,打开所有系统子界面各子功能的相关信息,未发生系统崩溃;②进入系统,打开所有系统子界面各子功能的相关信息,每个界面响应时间不超过10s 。
参考文献参考文献:
\[1\]李刚.轻量级javaee企业应用实践[m].北京: 电子工业出版社,2011.
[3]张文健,王健.struts在j2ee web层中的应用[j].
>