javaweb简单的图书管理系统.docx
《javaweb简单的图书管理系统.docx》由会员分享,可在线阅读,更多相关《javaweb简单的图书管理系统.docx(28页珍藏版)》请在冰点文库上搜索。
![javaweb简单的图书管理系统.docx](https://file1.bingdoc.com/fileroot1/2023-7/21/e620f199-5302-4042-b3b1-760cb67ac054/e620f199-5302-4042-b3b1-760cb67ac0541.gif)
javaweb简单的图书管理系统
实验 报 告
实验课程:
Web应用开发
学生姓名:
学 号:
专业班级:
2018年6月18日
南昌大学实验报告
学生姓名:
学 号:
专业班级:
实验类型:
□ 验证■ 综合□设计□创新实验日期:
实验成绩:
一、实验项目名称
《Web应用开发》综合训练
二、实验目得与要求
使用Java+JSP+Servlet技术,选用EL、JSTL、Struts、Hibernate、myBatis、jQuery等技术,开发一个基本Web得应用程序,以达到掌握Web应用开发得基本原理、具备使用Java+JSP+Servlet技术结合流行框架技术开发Web应用程序得能力,从而提升学生得Web编程能力。
要求学生自选题目,开发一个模拟得Web应用程序。
可以一人一题,也可以多人一题。
但就是每人必须单独完成动态Web页面10页以上。
要求学生根据需求描述独自完成需求分析,软件设计、程序模块设计以及程序得编写、调试与测试.
设计与程序完成后,要求根据指定得格式要求,独自完成设计报告得撰写。
三、实验基本情况
本实训要求根据下述需求陈述写出需求分析文本并进行软件开发,并列出源代码与运行结果。
四、需求分析
项目介绍
这就是一个简单得图书管理系统,由一个管理员来实现对用户得删除,图书得增加,修改与图书得删除功能,用户注册登录后可以实现对图书得借阅与归还.由于时间关系在设计项目时有很多不好得地方,未来得及修改,在管理员登录界面采用了图形验证码,由于就是同样得技术,在用户登录界面就没有采用图形验证技术。
功能需求
1.用户注册
2.图书添加
3.图书修改
4.用户管理
5.图书借阅
6.归还图书
五、软件设计
ER图
程序流程
数据库设计
模块设计及运行结果
项目整体采用MVC模式,整体上运用jsp+javabean+servlet+jdbc+dao,每个jsp页面采用jQuery技术作为背景,实现简单得动态背景,部分页面运用EL、JSTL、js中得点击事件、Bootsrap、图形验证码、分页技术以及邮箱页面.
六、源代码
1、用户类User、Java
packagevo;
publicclassUser{
privateStringname,pwd;
publicString getName() {
returnname;
}
publicvoid setName(Stringname){
ﻩthis、name=name;
}
publicString getPwd() {
returnpwd;
}
public voidsetPwd(Stringpwd){
this、pwd=pwd;
}
}
2、图书类bookinfo、java
packagevo;
publicclassbookinfo
{
privateStringbno,bname,author,price,other;
public StringgetBno(){
ﻩﻩreturnbno;
ﻩ}
publicvoid setBno(Stringbno){
this、bno=bno;
}
ﻩpublic StringgetBname(){
returnbname;
ﻩ}
publicvoidsetBname(Stringbname){
ﻩthis、bname = bname;
ﻩ}
ﻩpublic StringgetAuthor(){
ﻩreturn author;
}
ﻩpublicvoidsetAuthor(String author){
ﻩﻩthis、author=author;
ﻩ}
ﻩpublicStringgetPrice(){
ﻩreturn price;
}
publicvoid setPrice(Stringprice){
this、price=price;
ﻩ}
ﻩpublicStringgetOther() {
ﻩreturnother;
ﻩ}
ﻩpublicvoidsetOther(Stringother){
this、other= other;
}
}
3、借书信息类lendbook、info
packagevo;
public class lendbook
{
ﻩprivate String username,bno,bname,author,price,other;
publicStringgetUsername(){
return username;
ﻩ}
publicvoid setUsername(Stringusername) {
ﻩthis、username = username;
ﻩ}
publicStringgetBno(){
ﻩreturnbno;
}
ﻩpublic voidsetBno(Stringbno) {
this、bno=bno;
ﻩ}
publicString getBname(){
ﻩreturnbname;
}
publicvoidsetBname(String bname){
ﻩthis、bname=bname;
ﻩ}
public StringgetAuthor(){
ﻩﻩreturn author;
}
ﻩpublic void setAuthor(String author) {
ﻩthis、author= author;
}
ﻩpublicStringgetPrice(){
ﻩﻩreturnprice;
ﻩ}
publicvoid setPrice(Stringprice) {
ﻩthis、price=price;
}
public StringgetOther(){
ﻩreturnother;
ﻩ}
publicvoidsetOther(String other) {
ﻩthis、other =other;
}
}
4、用户功能UserDao、java
packagedao;
importjava、util、List;
importjava、sql、*;
importjava、util、ArrayList;
importvo、bookinfo;
importvo、User;
importvo、lendbook;
importdbc、JdbcUtil;
public classUserDao
{
ﻩpublicvoidadd(Useruser) throws Exception{//添加用户
Connection conn=null;
ﻩPreparedStatement ps=null;
ﻩtry
ﻩ{
ﻩconn=JdbcUtil、getConnection();ﻩ
ﻩﻩStringsql="insertintouser values(?
,?
)";
ﻩﻩﻩps=conn、prepareStatement(sql);
ﻩﻩﻩps、setString(1,user、getName());
ﻩﻩﻩps、setString(2,user、getPwd());
ﻩﻩps、executeUpdate();
ﻩﻩ}
ﻩﻩfinally
ﻩﻩﻩ{
ﻩﻩﻩJdbcUtil、free(null,ps,conn);
ﻩﻩﻩ}
}
publicvoidadd_book(bookinfo book) throwsException{//添加图书
ﻩConnection conn=null;
ﻩPreparedStatementps=null;
try
ﻩ{
ﻩﻩﻩconn=JdbcUtil、getConnection();ﻩﻩ
ﻩStringsql=”insertintobook_infovalues(?
,?
,?
,?
,?
)";
ﻩﻩps=conn、prepareStatement(sql);
ﻩﻩps、setString(1,book、getBno());
ﻩﻩps、setString(2, book、getBname());
ﻩﻩps、setString(3,book、getAuthor());
ﻩﻩﻩps、setString(4,book、getPrice());
ﻩﻩps、setString(5,book、getOther());
ﻩﻩﻩps、executeUpdate();
ﻩﻩﻩ}
ﻩﻩﻩﻩfinally
ﻩﻩ{
ﻩJdbcUtil、free(null, ps,conn);
ﻩﻩﻩ}
ﻩ}
ﻩpublicvoidlend_book(lendbookbook) throws Exception{//借出图书
Connectionconn=null;
ﻩﻩPreparedStatementps=null;
ﻩtry
{
ﻩﻩﻩconn=JdbcUtil、getConnection();
ﻩString sql=”insert intolendbookvalues(?
?
,?
,?
,?
,?
)”;
ps=conn、prepareStatement(sql);
ﻩﻩﻩps、setString(1,book、getUsername());
ﻩps、setInt(2,Integer、parseInt(book、getBno()));
ﻩps、setString(3,book、getBname());
ﻩﻩps、setString(4, book、getAuthor());
ﻩﻩﻩﻩps、setString(5,book、getPrice());
ﻩﻩﻩﻩps、setString(6,book、getOther());
ﻩﻩﻩps、executeUpdate();
ﻩ}
ﻩﻩﻩfinally
ﻩﻩ{
ﻩﻩJdbcUtil、free(null, ps,conn);
ﻩﻩﻩﻩ}
ﻩ}
ﻩpublicList〈User>QueryAll() throwsException//列出全部用户
ﻩ{
ﻩConnectionconn=null;
ﻩﻩPreparedStatement ps=null;
ﻩResultSet rs=null;
List〈User> userList=newArrayList<User〉();
ﻩtry
{
ﻩﻩﻩconn=JdbcUtil、getConnection();
ﻩStringsql="select*from user";
ﻩﻩﻩps=conn、prepareStatement(sql);
ﻩﻩrs=ps、executeQuery();
ﻩﻩwhile(rs、next()){
ﻩﻩﻩUseruser=newUser();
ﻩﻩuser、setName(rs、getString
(1));
ﻩﻩﻩﻩﻩuser、setPwd(rs、getString(2));
ﻩﻩﻩﻩuserList、add(user);
ﻩﻩ}
ﻩ}
ﻩﻩﻩﻩfinally
ﻩﻩ{
ﻩﻩJdbcUtil、free(rs, ps, conn);
ﻩ}
ﻩreturnuserList;
ﻩ}
ﻩpublic voiddelete(String bookno) throwsException//删除图书
ﻩ{
ﻩConnectionconn=null;
ﻩPreparedStatementps=null;
ﻩtry{
conn=JdbcUtil、getConnection();
ﻩﻩStringsql="deletefrombook_info wherebno=?
";
ps=conn、prepareStatement(sql);
ﻩps、setString(1,bookno);
ﻩﻩps、executeUpdate();
}
ﻩﻩfinally{
ﻩﻩJdbcUtil、free(null,ps,conn);
}
}
publicvoidreturnbook(String bno,Stringusername)throwsException//归还图书
ﻩ{
ﻩﻩConnectionconn=null;
ﻩPreparedStatement ps=null;
ﻩﻩtry{
ﻩconn=JdbcUtil、getConnection();
Stringsql="deletefrom lendbookwhere bno=?
and username=?
";
ﻩﻩps=conn、prepareStatement(sql);
ﻩﻩps、setString(1,bno);
ﻩps、setString(2, username);
ﻩps、executeUpdate();
ﻩﻩ}
ﻩfinally{
ﻩﻩﻩJdbcUtil、free(null, ps,conn);
}
}
ﻩpublicvoiddelete_user(Stringusername)throws Exception//删除用户
ﻩ{
Connectionconn=null;
ﻩPreparedStatementps=null;
ﻩﻩtry{
ﻩﻩconn=JdbcUtil、getConnection();
ﻩStringsql="deletefromuserwherename=?
";
ps=conn、prepareStatement(sql);
ﻩps、setString(1,username);
ﻩﻩps、executeUpdate();
ﻩ}
ﻩﻩfinally{
ﻩﻩJdbcUtil、free(null,ps,conn);
}
}
ﻩpublicintgetPageCount()throwsException{//分页
ﻩConnectionconn=null;
PreparedStatementps=null;
ResultSetrs=null;
intrecordCount=0,t1=0,t2=0;
ﻩﻩtry
ﻩ{
ﻩconn=JdbcUtil、getConnection();
ﻩString sql="selectcount(*)frombook_info";
ﻩﻩps=conn、prepareStatement(sql);
ﻩﻩrs=ps、executeQuery();
ﻩﻩﻩﻩrs、next();
ﻩrecordCount=rs、getInt
(1);
ﻩﻩt1=recordCount%5;
ﻩt2=recordCount/5;
}
finally
{
JdbcUtil、free(null,ps,conn);ﻩ
ﻩﻩ}
ﻩreturnt1==0?
t2:
t2+1;
}
ﻩpublicList<bookinfo> QueryAll_book(int pageNo)throwsException//列出全部图书
ﻩ{
Connectionconn=null;
PreparedStatementps=null;
ResultSetrs=null;
ﻩintpageSize=5;
ﻩﻩintstartRecno=(pageNo-1)*pageSize;
List<bookinfo〉bookList=new ArrayList<bookinfo〉();
ﻩﻩtry
ﻩﻩ{
ﻩﻩﻩconn=JdbcUtil、getConnection();
Stringsql=”select*frombook_info orderbybnolimit?
?
";
ﻩﻩps=conn、prepareStatement(sql);
ﻩﻩps、setInt(1,startRecno);
ﻩps、setInt(2, pageSize);
ﻩﻩrs=ps、executeQuery();
ﻩﻩwhile(rs、next()){
ﻩﻩbookinfobook=newbookinfo();
ﻩﻩﻩbook、setBno(rs、getString
(1));
ﻩﻩﻩﻩbook、setBname(rs、getString
(2));
ﻩﻩﻩbook、setAuthor(rs、getString(3));
ﻩbook、setPrice(rs、getString(4));
ﻩbook、setOther(rs、getString(5));
ﻩﻩﻩbookList、add(book);
ﻩ}
ﻩﻩﻩﻩ}
ﻩﻩﻩfinally
{
ﻩﻩﻩﻩJdbcUtil、free(rs,ps, conn);
ﻩﻩ}
returnbookList;
}
public List〈lendbook>QueryAll_lendbook(Stringusername)throwsException//列出已借图书
{
Connectionconn=null;
ﻩPreparedStatement ps=null;
ResultSetrs=null;
ﻩﻩList〈lendbook〉bookList=newArrayList();
ﻩtry
ﻩﻩ{
ﻩconn=JdbcUtil、getConnection();
ﻩStringsql="select*fromlendbookwhere username=?
”;
ﻩﻩps=conn、prepareStatement(sql);
ﻩps、setString(1,username);
rs=ps、executeQuery();
ﻩﻩﻩﻩwhile(rs、next()){
ﻩﻩﻩlendbookbook=new lendbook();
ﻩﻩﻩbook、setUsername(rs、getString
(1));
ﻩﻩﻩﻩbook、setBno(rs、getString
(2));
ﻩﻩﻩbook、setBname(rs、getString(3));
ﻩﻩbook、setAuthor(rs、getString(4));
ﻩﻩﻩbook、setPrice(rs、getString(5));
ﻩﻩﻩbook、setOther(rs、getString(6));
ﻩﻩﻩﻩbookList、add(book);
ﻩﻩﻩ}
ﻩﻩﻩ}
ﻩﻩﻩfinally
ﻩ{
ﻩﻩﻩﻩJdbcUtil、free(rs,ps,conn);
ﻩﻩ}
ﻩﻩreturnbookList;
}
publicvoidmodify_book(bookinfobook)throwsException{//修改图书
ﻩConnection conn=null;
ﻩﻩPreparedStatement ps=null;
try
ﻩﻩ{
ﻩﻩﻩconn=JdbcUtil、getConnection();
ﻩﻩStringsql="updatebook_infoset bname=?
author=?
,price=?
,other=?
wherebno=?
";
ﻩﻩﻩﻩps=conn、prepareStatement(sql);
ﻩﻩps、setString(1,book、getBname());
ﻩﻩﻩps、setString(2,book、getAuthor());
ﻩﻩﻩps、setString(3,book、getPrice());
ﻩﻩps、setString(4,book、getOther());
ﻩﻩps、setString(5,book、getBno());
ps、executeUpdate();
ﻩﻩﻩ}
ﻩﻩﻩfinally
ﻩﻩ{
ﻩJdbcUtil、free(null,ps,conn);
ﻩ}ﻩ
ﻩ}
ﻩ}
5、获取表格值代码:
functiongetTableContent(node){
vartr1=node、parentNode、parentNode;
var name=tr1、cells[0]、innerText;
window、location、href=”<%=path%>/delete_user?
name="+name;
alert(name);
}
7.背景jQuery代码
由于代码过长,不展示;
七、运行结果
1、管理员登录页面:
管理员登录界面采用简单得CSS、jQuery、以及图形验证码,当图形验证码输入不正确以及账号密码输入不正确会出现相相应提示,同时点击相信得输入框,提示输入对应类型得背景字体会消失,当鼠标点击其她地方时会相应出现,采用得就是placeholder属性,我们平时单纯得html得输入框以及提交得按钮,让人感觉不就是很舒适,采用简单得CSS将她们得边框去除,然后加上相应得边框.
2、登录主界面:
导航栏感谢bootstrap开源,运用了始终悬浮在顶部得导航栏,奈何页面长度有限不能向下滚动,无法瞧出这一功能,页面内容由于思维过于局限,暂时没有想出用什么内容来填充,只想到类似于积分得东西,这一内容在以后会作出改进,目前只有一个大概得模板,同时在改变页面得分辨率时导航栏中得功能选项会变成一个按钮,用一个〈nva>便签来装载,本页也有一个亮点便就是响应式,在改变分辨率时板块并不会发生错乱得现象,运用栅格系统思想,在第二张图张可以瞧到效果,由于调各种分辨率国语繁琐,所以这一技术只在两个页面运用到,以后有时间会加以改善。
3、管理用户页面:
点击管理用户得小便签会出现用户得列表,点击删除用户可以将用户从数据库中删除,同时页面中得几个小符号也就是运用bootstrap中得组件,给人以更直观清楚得描述功能,在本页面我并没有采用分页技术,但就是在后面几个页面中有采用分页技术,在做页面得时候并没有考虑到有很多得用户,只就是用几个来验