javaweb简单的图书管理系统_第1页
javaweb简单的图书管理系统_第2页
javaweb简单的图书管理系统_第3页
javaweb简单的图书管理系统_第4页
javaweb简单的图书管理系统_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南昌大手

实验报告

实验课程:Web应用开发

学生姓名:______________________________

学号:__________________________

专业班级:

南日大学实验报告

学生姓名:学号:专业班级:___________________

实险类型:口验证■综合口设计口创新实验日期:实验成绩:—

一、实验项目名称

«Web应用开发》综合训练

二、实验目得和要求

使用Java+JSP+Scrvlet技术,选用EL、JSTL>StrutsHibernate>myBa

tis、jQucry等技术,开发一个基本Web得应用程序,以达到掌握Web应用开发得底本

原理、具备使,用Java+JSP+Serv1et技术结合流行框架技术开发Web应用程序得

能力,从而提升学生得Web编程能力。

要求学生自选题目,开发一个模拟得Web应用程序。可以一人一题,也可以多人一

题。但就就是每人必须单独完成动态Web页面10页以上。

要求学生根据需求描述独自完成需求分析,软件设计、程序模块设计以及程序得编

写、调试和测试。

设计和程序完成后,要求根据指定得格式要求,独自完成设计报告得撰写。

三、实验基本情况

本实训要求根据下述需求陈述写出需求分析文本并进行软件开发,并列出源代码和

运行结果。

四、需求分析

项目介绍

这就就是一个简单得图书管理系统,由一个管理员来实现对用户得删除,图书得增加,修

改和图书得删除功能,用户注册登录后可以实现对图书得借阅和归还。由于时间关系在

设计项目时有很多不好得地方,未来得及修改,在管理员登录界面采用了图形验证码,由

于就就是同样得技术,在用户登录界面就没有采用图形验证技术。

功能需求

1.用户注册

2.图书添加

3.图书修改

4.用户管理

5.图书借阅

6.归还图书

五、软件设计

ER图

程序流程

用户注册

数据库设计

mysql>descuser;

FieldTypeNullKeyDefaultExtra

J__________________1_________________________________1________________1______________1_______________________1__________________L

rrnrrrr

namevarchar(15)NOPRINULL

pwdvarchar(15)NO|NULL|

Li___________________i1__________________________________1________________1______________i1________________________!L__________________1L

1丁1

mysql>descbook_info;

+++

FieldTypeNullKeyDefaultExtra

+++++++

bnoint(11)NOPRINULL

bnamevarchar(20)NONULL

authorvarchar(20)NONULL

pricefloatNONULL

othervarchar(20)YESNULL

+++++++

5rowsinset(0.01sec)

mysql>desclendbook;

4-x

FieldType|Null|Key|Default|Extra|

d1

usernamevarchar(15)YESNULL

bnoint(11)YESNULL

bnamevarchar(20)YESNULL

authorvarchar(20)YESNULL

pricefloatYESNULL

othervarchar(20)YESNULL

H++++++

6rowsinset(0.10sec)

mysql>

模块设计及运行结果

项目整体采用MVC模式,整体上运用jsp+javabean+serv1et+jdbc+daO,每个jsp页面采

用jQuery技术作为背景,实现简单得动态背景,部分页面运用EL、JSTL、js中得点击事件、Boots

rap、图形验证码、分页技术以及邮箱页面。

六、源代码

1N用户类User、Java

packagevo;

pub1icclassUser{

privateStringname,pwd;

publiCStringgetName(){

§returnname;

)

pub1icvoidsetName(Stringname){

this、name=name;

}

publiCStringgetPwdQ{

returnpwd;

)

publiCvo1dsetP\vd(Stringpwd){

。this、pwd=pwd;

)

)

2、图书类bo。kinfoxjava

packagevo;

publieclassbookinfo

{

privateStringbno,bname,author,price,other;

。publicStringgetBno(){

oreturnbno;

°}

®pUb1icvoidsetBno(Stringbno){

»this>bno=bno;

)

pub1iCStringgetBname0{

retumbname;

0}

。pub1icvoidsetBname(Stringbname){

。thiS、bname=bname;

}

。publicStringgetAuthor。{

06retUmauthor;

)

3pub1icvoidsctAuthor(Stringauthor){

。。this、author=author;

0}

publicStringgetPrice(){

s°returnprice;

}

§pub1icvoidsetPrice(Stringprice){

thiS、price=price;

)

。publicStringget()thcr(){

。retumother;

°publicvoidsetOther(Stringother){

this、other=other;

)

)

3、借书信息类lendbooksinfo

packagevo;

puhlicClasslendbook

{

。ptivateStringusername,bno,bname,author,price,other;

3pub1iCStringgetUSernameO{

°returnusername;

}

spub1icvoidsetUsername(Stringusername){

this、uSernamc=uscrname;

)

publieStringgetBno(){

retumbno;

}

publicvoidsetBno(Stringbno){

。this、bno=bno;

)

opub1iCStringgetBname0{

。returnbnamc;

)

。publicvoidsetBname(Stringbname){

。this、bname=bname;

)

publieStringgetAuthor。{

oreturnauth0r;

°}

pub1icVoidsetAuthor(Stringauthor){

this、author=author;

)

publiCStringgetPrice(){

。3returnprice;

)

publicvOidsetPrice(Stringprice){

thisxprice=price;

)

0publicStringgctOther。{

§sretumothcr;

°}

publicvoidsetOther(Stringother){

。°this>other=odier;

4^用户功能UserDao、java

packagedao;

importjava、util、List;

importjava、sqk*;

importjava、util、ArrayList;

importvo、bookinfb;

importvoUser;

importvo>lendbook;

importdbc、JdbcUtil;

publicclassUserDao

(

,pub1icvoidadd(Useruser)throwsException{//添加用

ooConnectionconn=nul1;

°PreparedStatementps=nu11;

otry

°{

,0conn习dbcUti1getConnectionQ;白

,,Sttingsql="insertintouserva1ues(?,?)11;

s6ps=conn、prepareStatement(sq1);

3ps、setString(l,user、getName。);

ops、setString(2,user、getPwdQ);

,ops、exeCuteUpdate();

}

s。finally

ddd{

3JdbcUtil、free(null,ps,conn);

)

pub1icvoidadd_book(bookinfobook)throwsExcept

ion{〃添加图书

oConnectionconn=nu11;

PreparedStatementps=nu11;

stry

°{

,oconn=JdbcUtikgetConnection();,

s,Stringsql=ninsertintobook_infovalues(?,?,?,?,?)n;

oooops=conn>prepareStatement(sql);

dd

psNsetString(1,book、getBnoO);

6ps、setString(2,book、getBname());

asps>setString(3,book、getAuthor0);

§,ps、setString(4,book、getPrice());

6dps、setString(5,book、getOther());

ps、executeUpdate();

o,,}

3,,finally

ddo{

3JdbcUtil、free(nul1,ps,conn);

8}

°}

opub1icvoidlend_book(lendbookbook)throwsException{//

借出图书

。Connectionconn=null;

o3PreparedStatementps=nul1;

try

a(

6conn=JdbcUtil、getConnection();

,,Stringsq1=nins6rtintolendbookva1ues(?,?,?,?,?,?)11;

3ps=conn>prepareStatement(sql);

sps、setString(l,book>getUsemameO);

ddps、setint(2,1nteger、parseint(book>getBno()));

6d6ps>setString(3,book、getBnameQ);

0,,pSAsetString(4,book、getAuthor());

66ps、setString(5,book>getPrice。);

ps、setString(6,book>getOther。);

3,ps、executeUpdate();

,3}

o''finally

9(

6

3JdbCUHINfree(null,ps,conn);

°}

}

publicList<User>QueryAHQthrowsException//列出全部用户

(

Connectionconn=null;

PreparedStatementps=nul1;

oResultSetrs=nu11;

sList<User>userList=newArrayList<User>0;

try

{

sconn=JdbcUtil、getConnection();

dStringsql=nselect*fromuser";

dd6ps=conn>prepareStatement(sql);

6

rs=pSNexeCuteQuery();

aswhile(rsNnext()){

dooUseruser=newUser();

suser、setName(rs>getString(1));

o3user、setPwd(rs>getString(2));

os。userListNadd(user);

d0}

…fina1ly

9{

d66JdbcUtikfree(rs,ps,conn);

9)

dreturnuserList;

)

publicvoiddelete(Stringbookno)throwsException//

删除图书

{

3Connectionconn=null;

oPreparedStatementps=null;

…try{

conn=JdbcUtil、getConnection();

Stringsq1=ndeletefrombook_infowhere

bno=?H;

…ps=conn^prepareStatement(sql);

sps、setString(1,bookno);

3sps、exeCuteUpdate();

3)

finally{

sJdbcUtil、free(null,ps,conn);

so}

9)

3publievoidretumbook(Stringbno,Stringusemame)throws

Exception〃归还图书

{

o,Connecdonconn=nu11;

PrepatedStatementps=nu11;

try{

ooconn=JdbcUtil、getConnectionQ;

Stringsql=Hdeletefromlendbookwherebno=?and

usemame=?

oops=conn、prepareStatement(sql);

oops、SetString(l,bno);

d。ps、setString(2,usemame);

dps、executeUpdate();

}

§fina1ly{

s。JdbcUtil>free(nu11,ps,conn);

')

3}

pub1icvoiddelete_user(Stringusername)throwsExceptio

n//删除用户

(

oConnectionconn=nul1;

o。PreparedStatementps=nu11;

,try{

d,conn=JdbcUtil、getConnection();

Stringsql=ndeletefromuserwherename=?";

ops=conn>prepareStatement(sql);

,ps>setString(l,usemame);

,ps、executeUpdate();

33}

o,final1y{

,JdbcUtikfree(null,ps,conn);

6)

}

pub1icintgetPageCount。throwsException{〃分页

Connectionconn=null;

6PreparedStatementps=nu11;

s,ResultSetrs=null;

sintrecordCount=0,tl=0,t2=0;

try

3,,conn=JdbcUtil、getConnectionQ;

sdStringsql=11se1ectcount(*)frombook_info11;

o3ps=conn>prepareStatement(sql);

Drs=ps、executeQuery0;

s6TSNnext();

6drecordCount=rs>getInt(1);

6tl=recordCount%5;

o3,t2=recordCount/5;

6}

fina1ly

a(

oJdbcUtil、firee(null,ps,conn);,

°}

,returntl==0?t2:t2+l;

)

pub1icList<bookinfb>QueryAll_book(intpageN0)

throwsException//歹可出全部图书

(

Connectionconn=nu11;

,sPreparedStatementps=null;

3ResultSetrs=null;

intpageSize=5;

3,intstartRecno=(pageNo-1)*pageSize;

dList<bookinfo>bookList=newArrayList<bookinfo

>0;

otry

(

030conn=JdbcUtilsgetConnection0;

oo^Stringsql=Mselect*frombook_infoorderbybno1

imit?,?”;

osps=conn、prepareStatement(sq1);

ooops、setlnt(l,startReeno);

Soops、se11nt(2,pageSize);

o3rs=ps、executeQuery();

o,,while(rsxnext()){

3o,,bookinfobook=newbookinfoQ;

o。3book、setBno(rs、getString(1));

。book>setBname(rs>getString(2));

obook、setAuthor(rs、getstring(3));

°book、setPrice(rs>getString(4));

6ddbook>setOther(rs、getString(5));

6obookList>add(book);

33}

00}

3finally

oo{

3,6JdbcUti1>free(rs,ps,conn);

do}

oreturnbookList;

}

pub1icList<lendbook>QueryAll-lendbook(Stringusernam

e)throwsException//歹【J出已借图书

9{

,Connectionconn=null;

PreparedStatementps=nu11;

o,Resu1tSetrs=null;

,List<lendbook>bookList=newArrayList<lendbook>Q;

try

9{

3conn=Jdbcllti1>getConnection();

Stringsq1=Hselect*fromlendbookwhereuser

name=?H;

,ps二conn、prepareStatement(sql);

,,ps、setString(l,username);

3,rs=ps>executeQuery();

,,3while(rsNnext。){

,o1endbookbook=new1endbook。;

。sbook、setUsername(rs>getString(1));

obook^setBno(rs>getString(2));

a。book、setBname(rs、getString(3));

a。。,book、setAuthor(rs、getString(4));

os,,book、setPrice(rs、getString(5));

,,Dbook、setOther(rs、getString(6));

o0。bookList、add(book);

do}

00}

3finally

dd{

ooJdbcUri1xftee(rs,ps,conn);

od|

oreturnbookList;

9)

opublievoidmodify_book(bookinfobook)throwsException{/

/修改图书

sConnectionconn=nu11;

osPreparedStatementps=nu11;

3try

3conn=JdbcUtil、getConnection();

6Stringsql=nupdatebook_infosetbname

=?,author=?,price=?,other=?wherebno=?n;

ps=conn、preparestatement(sq1);

o6ps、setString(l,book、getBname());

oops、setString(2,book、getAuthor());

d6ps>setString(3,book、getPriceQ);

pSNSetString(4,book、getOther());

ps、setString(5,book、getBno());

oooops、executeUpdate();

do}

…finally

30{

,oJdbcUtil、free(null,ps,conn);

3}

}

)

5、获取表格值代码:

fiinctiongctTab1eContcnt(node){

vartr1=node^parcntNode、parentNodc;

varname=tr1>cells[0]、innerText;

window>1ocationhref=n<%=path%>/deIete_user?name="+name;

alert(name);

)

7.背景jQuery代码

由于代码过长,不展示;

七、运行结果

1、管理员登录页面:管理员登录界面采用简单得CSS、jQuery、以及图形脸证码,当图形验证

码输入不正确以及账号密码输入不正确会出现相相应提示,同时点击相信得输入框,提示输入对应类

型得背景字体会消失,当鼠标点击其她地方时会相应出现,采用得就就是placeholder属性,我们平时

单纯得html得输入框以及提交得按钮,让人感觉不就就是很舒适,采用简单得CSS将她们得边框去

除,然后加上相应得边框。

2、登录主界面:

导航栏感谢bootstrap开源,运用了始终悬浮在顶部得导航栏,奈何页面长度有限不能向下滚动,无

法看出这一功能,页面内容由于思维过于局限,暂时没有想出用什么内容来填充,只想到类似于积分

得东西,这一内容在以后会作出改进,目前只有一个大概得模板,同时在改变页面得分辨率时导航栏

中得功能选项会变成一个按钮,用一个<nva>便签来装载,本页也有一人亮点便就就是响应式,在改

变分辨率时板块并不会发生错乱得现象,运用栅格系统思想,在第二张图张可以看到效果,由于调各

种分辨率国语繁琐,所以这一技术只在两个页面运用到,以后有时间会加以改善。

3、管理用户页面:

点击管理用户得小便签会出现用户得列表,点击删除用户可以将用户从数据库中删除,同时页面中得

几个小符号也就就是运用bootstrap中得组件,给人以更直观清楚得描述功能,在本页面我并没有

采用分页技术,但就就是在后面几个页面中有采用分页技术,在做页面得时候并没有考虑到有很多得

用户,只就就是用几个来验证,所以就没有用分页技术,在这个点击就删除得技术上一开始遇到了难

题,并不知道怎么样去些控制得后台,后来在页面中运用了js得技术,可以利用表格得结点来获取每个

表格单元格得内容,再将按键设置为this,点击便就就是获取当前行得值,并传到serv1et中调用dao

中删除用户得函数,便实现了。同时利用js得鼠标事件,鼠标移动到当前行时会改变颜色。

4、添加图书页面:

添加图书得页面并没有多么得新奇,同样还导航栏加动态背景,同样输入框也

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论