版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
xxxx学院《JavaWeb开发技术》课程设计成果报告图书管理系统设计与开发学生学号:2014422091xx学生姓名:xxx专业班级:软件技术学院:计算机学院专业课程:数据库系统原理与应用指导教师:xxx2016年1月8日课程设计指导教师评分表课程设计题目图书管理系统设计与开发成员姓名学号任务分工Xxx2014422091xx系统框架搭建、数据库设计、测试Xxx2014422091xx系统管理实现、留言模块设计Xxx2014422091xx首页功能模块、图书管理实现评分项目及分值要素成绩评定项目最高分评分要素成绩1.学习态度20上机出勤及端正的学习态度、认真刻苦程度,工作量饱满程度等2.软件设计质量40采用的算法、设计方案,设计结果,界面友好等方面进行综合评定3.答辩过程20能简明扼要地阐述设计的主要内容,能准确流利地回答各种问题4.设计报告书写10内容按要求步骤书写,条理清晰,表述清楚、措词得当5.实际动手能力10熟练使用开发工具,能够迅速准确的进行调试、纠错和运行;组长全面负责,承担复杂的模块设计分值就高总成绩等级评语目录第一章图书馆管理系统需求分析 5第一节图书馆管理系统应用需求 5第二节图书馆管理系统设计模式 6第二章图书馆管理系统总体设计 9第一节功能模块构成 9第二节系统流程图 10第三节数据库的设计 11第三章图书馆管理系统详细设计及处理技术 13第一节发布首页功能模块 16第二节留言板功能模块 20代码部分 21第三节系统管理员的登录功能模块 30代码部分 32第四节图书查询功能模块 35代码部分 37第四章图书馆管理系统系统测试 40测试: 40第五章总结 41第一章图书馆管理系统需求分析第一节图书馆管理系统应用需求一个现代化的图书馆在正常运营中总是面对大量的读者信息,书籍信息以及两者相互作用产生的借书信息,还书信息。面对图书馆数以万几计的图书,纷繁复杂的读者信息,频繁更替的借还书信息,传统的直接方法不但管理出现漏洞,造成损失。图书馆管理系统需要满足来自两方面的需求,分别是图书借阅者和图书馆工作人员。图书借阅者的需求是查询图书馆所存的各种图书信息;图书馆工作人员对图书借阅者的借阅及还书要求进行操作,同时形成借书或还书操作,有修改图书借阅者借书和还书记录的权限,实现对图书信息、借阅者信息、总体借阅情况信息的管理和统计、工作人员和管理人员信息查看及维护。图书馆管理员可以浏览、查询、添加、删除、修改、统计图书的基本信息;浏览、查询、统计、添加、删除和修改图书借阅者的基本信息,浏览、查询、统计图书馆的借阅信息,发布公告,回复留言,以下就是本系统实现的功能。1.设计不同用户的操作权限和登陆方法2.对所有用户开放的图书查询3.查询及统计各种信息4.维护图书信息5.维护工作人员和管理员信息6.维护借阅者信息7.处理信息的完整性第二节图书馆管理系统设计模式设计模式是面向对象的程序设计人员用来解决编程问题的一种形式化表示。本系统开发采用目前一种目前广泛流行的软件设计模式MVC。MVC(Model-View-Controller)应用程序结构被用来分析分布式应用程序的特征。这种抽象结构能有助于将应用程序分割成若干逻辑部件,使程序设计变得更加容易。把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层,它们各自处理自己的任务。视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括AdobeFlash和象XHTML,XML/XSL,WML等一些标识语言和Webservices.如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJBs和ColdFusionComponents这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器(例如:servlet)本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。现在我们总结MVC的处理过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。这种设计模式的好处是:◆低耦合性。视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。◆高重用性和可适用性。随着技术的不断进步,现在需要用越来越多的方式来访问应用程序。MVC模式允许你使用各种不同样式的视图来访问同一个服务器端的代码。它包括任何WEB(HTTP)浏览器或者无线浏览器(wap),比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。例如,很多数据可能用HTML来表示,但是也有可能用WAP来表示,而这些表示所需要的仅令是改变视图层的实现方式,而控制层和模型层无需做任何改变。◆较低的生命周期成本。MVC使降低开发和维护用户接口的技术含量成为可能。◆快速的部署。使用MVC模式使开发时间得到相当大的缩减,它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上。◆可维护性。分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。◆有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化管理程序代码。图1MVC模式开发环境及开发工具表1开发环境种别软件版本OSWindowsXpDBSqlsever2000WebServerJDK1.Tomcat6.0浏览器InternetExplorer6.0及以上语言编辑MyEclipse6.0及以上环境配置说明JDK的配置:1.安装JDK1.5以上版本,并且复制安装路径。2.右键我的电脑-属性-高级-环境变量-新建Administrator系统变量。变量值为安装路径建立3个值:JAVA_HOME=你的安装路径classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jarPATH=C:\ProgramFiles\Java\jdk1.6.0_10\bin也就是路径\bin3.测试下jdk的安装环境是否成功:开始-运行-cmd-弹出dos对话框,在光标处输入javac–version,出现版本号则配置成功。Tomcat的配置:1。安装Tomcat后,在我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量(假定你的tomcat安装在c:\tomcat):CATALINA_HOME:c:\tomcatCATALINA_BASE:c:\tomcatTOMCAT_HOME:c:\tomcat2然后修改环境变量中的classpath,把tomat安装目录下的common\lib下的servlet.jar追加到classpath中去,修改后的classpath如下:classpath=C:\ProgramFiles\Java\jdk1.6.0_10\lib\dt.jar;C:\ProgramFiles\Java\jdk1.6.0_10\lib\tools.jar;c:\tomcat\common\lib\servlet-api.jar;6可能最新版本的Tomcat中没有common这个文件夹了。所以servlet-api.jar应该的路径为c:\tomcat\lib\servlet-api.jar;根据情况修改!7.验证,启动tomcat,在IE中访问http://localhost:8080,如果看到tomcat的欢迎页面的话说明安装成功了。第二章图书馆管理系统总体设计第一节功能模块构成根据本管理系统的要求我们在功能上将这个图书馆管理系统划分成了7个功能模块:发布首页功能模块,留言板功能模块,系统管理员登陆功能模块,图书查询功能模块,借还手续功能模块,管理库中图书信息的功能模块,最后是用户信息管理功能模块。如下图所示。图2功能结构图有了这7个功能模块,就可以构建一个完整的图书馆管理系统了。前台实现的是:图书信息查询,以及留言建议。后台实现的是:以管理员身份进入后台后可以进行的权限操作有,用户信息的录入,图书信息的管理及录入,首页新建的发布,借还手续的操作等等。第二节系统流程图下图是分别从web和wap模式的查询流程图,请求以这种方式进行发送和响应。查询功能流程图WEB页面前台查询界面WEB页面前台查询界面接收查询条件,从数据库查询匹配信息返回结果,在WEB页面显示提交查询条件图3基于WEB的查询流程图借还图书功能流程图下图是借还书发送请求和响应请求的流程图图4借还书流程图第三节数据库的设计数据库逻辑设计:表2所示为管理员表(admin),记录了系统用户的角色和密码,判断是否允许其登录后台管理员的界面。表2admin数据库列名数据类型长度id(PK)Int11UsernameVarchar20PasswordVarchar20表3所示为留言信息表(guestbook),记录了游客用户姓名,发表的留言信息,发表时间和管理员回复信息,其具体作用就是实现留言板的功能。表3guest数据库列名数据类型长度id(PK)Int11NicknameVarchar50ContentMediumtextNOYourtimeDatatimeNOReplyVarchar50表4所示为首页公告表(notice),记录了发布信息和发布时间,其作用就是支持公告栏的功能实现。表4notice数据库列名数据类型长度id(PK)Int11ContentMediumtextNOCreatetimeDatatimeNO表5所示为图书信息表(book),记录了图书书名,书号,图书类型,总量。其作用就是保存录入到库的图书资料,以便借阅和查询。表5book数据库列名数据类型长度IdInt11TitleVarchar100bookID(PK)Varchar40TypeVarchar40QuantityInt11表6所示为用户借阅图书信息表(borrowbook),记录了借阅证号,借书开始日期,结束日期,书号。实现本系统核心功能-借书,还书的数据库应用。表6borrowbook数据库列名数据类型长度Id(PK)Int11BorrowIDVarchar20BeginTimeDatetimeNOEndTimeDatetimeNOBookIDInt40表7所示为借书证用户信息表(user),记录了借书人姓名,性别,年龄,所在院系和所借书的书号。实现其程序主体的数据库调用。表7uesr数据库列名数据类型长度Id(PK)Int11NameVarchar20SexChar2AgeInt11DepartmentVarchar20BorrowIDVarchar20数据库之间的关联设计:这个图书管理系统是基于SQLSEVER设计的,然后通过在JSP中向数据库发送相应的SQL指令,从而实现对图书的全面管理..对于数据库设计这一流程中,最重要的一步是对user表、book表、borrowBook表三张表的设计以及它们之间的关系.这是这个图书管理系统中的一个关键技术,以下就是数据库关联图图5数据库关系第三章图书馆管理系统详细设计及处理技术JavaBean技术是一种基于Java的组件技术,JavaBean组件可以用来执行复杂的计算任务,或负责与数据库的交互以及数据的提取等,是解决代码重用问题的一种策略。JavaBean的实质就是一个.class文件,也可以成为类文件。JavaBean以binary格式保存,可以保护Java源代码不容易被他人抄袭。下面是本系统中主要的JavaBean。select函数功能:查询数据 publicintselect(Stringsql){ intk=-10; this.init(this.getConn()); try k=0; rs=stmt.executeQuery(sql); if(rs.next()) k=k+1; catch(Exceptione) k=-1; System.out.println("select():"+e.getMessage()); this.close(); this.close(); returnk;update函数功能:更新\删除\插入数据 publicintupdate(Stringsql){ intk=-10; this.init(this.getConn()); try k=0; k=stmt.executeUpdate(sql); catch(Exceptione)k=-1; System.out.println("update():"+e.getMessage()); this.close(); returnk; chStr函数功能:解决乱码Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,Java文件本身编译时产生的乱码问题和Java程序与其他媒介交互产生的乱码问题。JSP以Java为基础,自然也继承了Java所遇到的中文乱码问题。但在使用数据库时,有些Driver会将从数据库中读出的中文自动的转换成Unicode,而有些不会,如果Driver做过转换而系统又再做一次,就会出现问题,从数据库中读出的中文字符不会正确显示,而是出现“”。而且,在表单提交或是URL传参数值时依然是按照Web容器在内部默认的字符编码格式ISO8859-1来进行处理的。同时,几乎所有的浏览器在传递参数时都是默认以UTF-8的方式来传递参数的。所以,虽然在java源文件在出入口的地方指定了正确的编码方式,但其在容器内部运行是还是以ISO8859-1来处理的,这样导致在提交的表单中若有中文字符,在存入数据库时使用的是ISO8859-1,而本系统使用的SQLSEVER数据库默认使用的是GBK编码,这样导致的结果就是存到数据库的数据因编码不同而出现乱码现象。调用字符编码转换Bean中的方法,对字符编码进行强制转换,使存放到数据库的数据编码格式与数据库的内部编码格式统一,解决了向数据库中插入中文字符、将从数据库中读取的数据正确的显示的问题,所以做了一个方法放在bean里面,代码如下publicStringchStr(Stringstr){ try byte[]temp=str.getBytes("ISO8859-1"); Stringtemp2=newString(temp); returntemp2; }catch(Exceptione){System.out.println("chStr():"+e.getMessage());} return"null"; 第一节发布首页功能模块图6首页发布功能界面在后台管理中能自由发布首页公告信息,来通知各种事情,其条目以滚动的形式来表现。该功能的实现由admin_addnotice.jsp和admin_addnotice_post.jsp文件实现。在admin_addnotice.jsp中主要是发布界面的编写和传输notice内容,本功能的核心程序放在admin_addnotice_post.jsp中,负责存储内容到数据库和错误提示。在admin_addnotice_post.jsp中关键代码如下://从request获取名为"content"的参数值Stringcontent=request.getParameter("content");//解决中文乱码问题Stringtcontent=addbook.chStr(content);//合成SQL语句,将content的值传入,作用为更新公告表Stringsql="updatenoticesetcontent='"+content+"',createtime=DEFAULTwhereid=1";//申明一个int的变量tempinttemp=-2;//如SQL执行成功,temp>0,否则执行失败temp=notice.update(sql);代码部分:admin_addnotice.jsp<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.sql.*"errorPage=""%><%@includefile="../ch.jsp"%><%@includefile="checkadmin.jsp"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>发布首页公告</title><styletype="text/css">body,td,th{ font-size:13px;</style><scriptlanguage="JavaScript"type="text/JavaScript">functionMM_findObj(n,d){//v4.01varp,i,x;if(!d)d=document;if((p=n.indexOf(""))>0&&parent.frames.length){d=parent.frames[n.substring(p+1)].document;n=n.substring(0,p);}if(!(x=d[n])&&d.all)x=d.all[n];for(i=0;!x&&i<d.forms.length;i++)x=d.forms[i][n];for(i=0;!x&&d.layers&&i<d.layers.length;i++)x=MM_findObj(n,d.layers[i].document);if(!x&&d.getElementById)x=d.getElementById(n);returnx;functionMM_validateForm(){//v4.0vari,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;for(i=0;i<(args.length-2);i+=3){test=args[i+2];val=MM_findObj(args[i]);if(val){nm=;if((val=val.value)!=""){if(test.indexOf('isEmail')!=-1){p=val.indexOf('@');if(p<1||p==(val.length-1))errors+='-'+nm+'mustcontainane-mailaddress.\n';}elseif(test!='R'){num=parseFloat(val);if(isNaN(val))errors+='-'+nm+'mustcontainanumber.\n';if(test.indexOf('inRange')!=-1){p=test.indexOf(':');min=test.substring(8,p);max=test.substring(p+1);if(num<min||max<num)errors+='-'+nm+'mustcontainanumberbetween'+min+'and'+max+'.\n';}}}elseif(test.charAt(0)=='R')errors+='-'+nm+'isrequired.\n';}}if(errors)alert('Thefollowingerror(s)occurred:\n'+errors);document.MM_returnValue=(errors=='');</script></head><body><p><strong>发布公告(首页只会滚动显示最新发布的一条公告)</strong></p><p>公告内容:</p><formname="form1"method="post"action="admin_addnotice_post.jsp"><p><textareaname="content"cols="40"rows="10"id="content"></textarea></p><p><inputname="Submit"type="submit"onClick="MM_validateForm('content','','R');returndocument.MM_returnValue"value="发布首页公告"><inputtype="reset"name="Submit2"value="清除"></p></form><p> </p></body></html>admin_addnotice_post.jsp<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.sql.*"errorPage=""%><%@includefile="../ch.jsp"%><%@includefile="checkadmin.jsp"%><jsp:useBeanid="notice"class="conndb.DbConnBean"scope="request"/>Stringcontent=request.getParameter("content");//Stringtcontent=addbook.chStr(content);//解决中文乱码问题Stringsql="updatenoticesetcontent='"+content+"',createtime=DEFAULTwhereid=1";inttemp=-2;temp=notice.update(sql);<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>发布首页公告</title></head><body> <%if(temp>0){%><scriptlanguage="javascript">alert("已经成功发布了新的首页公告!");</script><ahref="admin_main.jsp">返回管理首页</a>}else{session.setAttribute("error","请检查你的输入.请确保你输入的信息的正确性!");response.sendRedirect("../errorpage.jsp");</body></html>第二节留言板功能模块留言板功能模块分为发布模块和回复模块。发布模块在前台完成,可以让任何人留言,而回复模块在后台使用只允许管理员查看回复。图7发布留言界面本功能所有文件放在guest目录下面,包含了guestbook_index.jsp,guestbook_postmessage.jsp,guestbook_save.jsp,guestbook_show.jsp,guestbook_viewmessage.jsp这5个文件,分别实现了留言板各个功能。其主要代码在guestbook_postmessage.jsp中.//从request获取名为"username"的参数值Stringusername=request.getParameter("username");//从request获取名为"content"的参数值Stringcontent=request.getParameter("content");//合成SQL语句,将username,content的值传入nickname,content表中,作用为将留言板内容放入数据库中String.sql="insertintoguestbook(nickname,content)values('"+username+"','"+content+"')";//判断语句,如果username为空或者错误,content为空或者错误的时候。if(username==null||username.equals("")||content==null||content.equals(""))else{inttemp=-2;//如SQL执行成功,temp>0,否则执行失败temp=guestbook.update(sql);//返回错误信息errorpage.jsp,显示“请检查你的输入.请确保你输入的信息的正确性!”错误信息文字以提示。else{session.setAttribute("error","请检查你的输入.请确保你输入的信息的正确性!");response.sendRedirect("../errorpage.jsp");回复留言功能模块主要是用于回复留言,由admin_guestbook_reply.jsp实现.其实现方法与前面类似,不在累述。代码部分:guestbook_index.jsp<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.sql.*"errorPage=""%><%@includefile="../ch.jsp"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><scriptlanguage=javascript>functionSetFocus()if(document.message.username.value=="") document.message.username.focus();else document.message.username.select();functionCheckForm() if(document.message.username.value=="") alert("请输入你的大名!"); document.message.username.focus(); returnfalse; if(document.message.content.value=="") alert("请输入你想说的话!"); document.message.content.focus(); returnfalse;</script><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>请你给学校图书馆提建议</title><styletype="text/css">body,td,th{ font-size:13px;body{ background-color:#99CCCC; margin-left:0px; margin-top:0px; margin-right:0px; margin-bottom:0px;.style3{ font-size:18px; color:#FF0000; font-weight:bold;.style5{font-size:30px;color:#FF3300;font-weight:bold;}</style></head><body><formname="message"method="post"action="guestbook_postmessage.jsp"><tablewidth="98%"border="1"cellpadding="2"cellspacing="5"bordercolor="#99CCCC"><tr><tdcolspan="3"><tablewidth="100%"border="0"cellpadding="0"cellspacing="0"><tr><tdwidth="26%"><imgsrc="../images/top.gif"width="245"height="88"></td><tdwidth="73%"valign="bottom"background="../images/b3.gif"bgcolor="#006699"> </td><tdwidth="1%"> </td></tr><tr><td> </td><td><divalign="left"><spanclass="style5"> 留言簿</span></div></td><td> </td></tr><tr><td> </td><td><spanclass="style3">欢迎同学们给学校图书馆提出宝贵的建议.</span></td><td> </td></tr></table></td></tr><tralign="center"><tdwidth="24%"align="right">姓名:</td><tdcolspan="2"align="left"><inputname="username"type="text"id="username"size="30"maxlength="50"></td></tr><tr><tdrowspan="2"align="right"valign="top">我想说:</td><tdwidth="49%"rowspan="2"align="left"valign="top"><textareaname="content"cols="60"rows="10"id="content"></textarea></td><tdwidth="27%"valign="top"><imgsrc="../images/guestbook.gif"width="128"height="128"></td></tr><tr><tdvalign="top">管理员会认真考虑你的建议的!</td></tr><tr><td> </td><tdcolspan="2"><inputtype="submit"name="Submit"value="我已经写好了"onClick="CheckForm()"><inputname="Submit2"type="button"onclick="javascript:window.location='guestbook_show.jsp'"value="查看留言"><inputtype="button"name="Submit3"value="返回网站首页"onclick="javascript:window.location='../index.jsp'"></td></tr></table></form><scriptlanguage="JavaScript"type="text/JavaScript">SetFocus();</script></body></html>guestbook_postmessage.jsp<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.sql.*"errorPage=""%><%@includefile="../ch.jsp"%><jsp:useBeanid="guestbook"class="conndb.DbConnBean"scope="request"/><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>处理留言</title></head><body>Stringusername=request.getParameter("username");Stringcontent=request.getParameter("content");Stringsql="insertintoguestbook(nickname,content)values('"+username+"','"+content+"')";if(username==null||username.equals("")||content==null||content.equals(""))<scriptlanguage="javascript">history.back();</script>}else{inttemp=-2;temp=guestbook.update(sql);if(temp>0){%><scriptlanguage="javascript">alert("发布留言成功!我们会认真考虑你的建议的,谢谢!");</script><ahref="../index.jsp">返回网站首页</a>}else{session.setAttribute("error","请检查你的输入.请确保你输入的信息的正确性!");response.sendRedirect("../errorpage.jsp");</body></html>guestbook_save.jsp<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.sql.*"errorPage=""%><jsp:directive.pageimport="conndb.DbConnBean"/><%@includefile="ch.jsp"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><jsp:useBeanid="guestbook"class="DbConnBean"scope="page"/><head>Stringname=request.getParameter("name");Stringtname=guestbook.chStr(name);Stringcontent=request.getParameter("content");Stringtcontent=guestbook.chStr(content);Stringsql="insertintoguestbook(nickname,content)values('"+tname+"','"+tcontent+"')";guestbook.update(sql);<metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>无标题文档</title></head><body><%@includefile="top.jsp"%><tablewidth="72%"border="0"cellspacing="0"cellpadding="0"align="center"><tr><td>留言成功,管理员会尽快处理你的留言的!<br><ahref="guestbook_show.jsp">查看当前留言</a></td></tr></table><%@includefile="bottom.jsp"%></body></html>guestbook_show.jsp<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.sql.*"errorPage=""%><jsp:directive.pageimport="conndb.DbConnBean"/><%@includefile="/ch.jsp"%><jsp:useBeanid="showguest"class="DbConnBean"scope="page"/><%Stringsql="select*fromguestbookorderbyiddesc";ResultSetrs=showguest.query(sql);Stringcolor="#99CC99";<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>查看留言</title><styletype="text/css">.text{font-size:10px}.guest{font-size:12px}body{ background-color:#99CCCC;.style1{ color:#FFFFFF; font-weight:bold;</style></head><body><tablewidth="72%"border="0"cellspacing="0"cellpadding="0"align="center"><tr><td><center><imgsrc="../images/b3.gif"width="770"height="100"></center><%while(rs.next()){if(color.equals("#99CC99")){color="#CCFFCC";}else{color="#99CC99";}Stringname=rs.getString(2);Stringcontent=rs.getString(3);Stringtime=rs.getString(4).substring(2,10);Stringreply=rs.getString(5);<tablewidth="100%"border="0"bgcolor="<%=color%>"><tr><tdwidth="18%"align="left"valign="top"><spanclass="guest"><strong>留言者</strong>:<%=name%></span></td><tdwidth="82%"rowspan="2"align="left"valign="top"class="guest"><divalign="left"><strong>留言内容</strong>:<%=content%></div></td></tr><tr><tdalign="left"valign="top"class="guest"><strong>时 间</strong>:<%=time%></td></tr><tralign="left"><tdcolspan="2"valign="left"class="guest"><divalign="left"></div><divalign="left"><%if(session.getAttribute("username")==null){%><strong>管理员回复</strong>:<%=reply%><%}else{%><%=reply%><ahref=admin_guestbook_reply.jsp<%=rs.getString("id")%>>回复此留言</a></div></td></tr></table><divalign="right"><ahref="guestbook_index.jsp"target="_blank">我要留言</a></div><center></center></td></tr></table><palign="center"class="style1">成都信息工程学院-2007</p></body></html>guestbook_viewmessage.jsp<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.sql.*"errorPage=""%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>查看留言</title></head><body>fuck</body></html>第三节系统管理员的登录功能模块图8管理员登录界面本功能涉及到图书管理操作的jsp文件,为了方便全部把它们放在admin目录里面,并且通过session防止非法登录.把这个功能提取出来,单独作为一个jsp文件,然后include到需要加密的jsp文件头部.这样如果非法用户直接提交后台URL,系统会将非法用户直接转到前台首页本功能由admin_login.jsp和admin_logincheck.jsp实现其主要代码是在admin_logincheck.jsp中,如下//从request获取名为"username"的参数值Stringusername=request.getParameter("username");//从request获取名为"password"的参数值Stringpassword=request.getParameter("password");//如果username为空或者错误,以及password为空或者错误。if(username==null||username.equals("")||password==null||password.equals(""))else{//将username赋值到tusername,password赋值到tpasswordStringtusername=logincheck.chStr(username);Stringtpassword=logincheck.chStr(password);//搜索数据库中tusername和其对应的tpassword字段。Stringsql="select*fromadminwhereusername='"+tusername+"'andpassword='"+tpassword+"'";inttemp=-2;temp=logincheck.select(sql);if(temp>0){//表明验证成功,进入admin_index.jsp,并将用户定格为登录用户。session.setAttribute("name",tusername);response.sendRedirect("admin_index.jsp");}else{//验证失败,返回错误提示信息,并返回errorpage.jsp页面。session.setAttribute("error","请检查你的用户名和密码!");response.sendRedirect("../errorpage.jsp");代码部分admin_login.jsp<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.sql.*"errorPage=""%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><scriptlanguage=javascript>functionSetFocus()if(document.Login.username.value=="") document.Login.username.focus();else document.Login.username.select();functionCheckForm() if(document.Login.username.value=="") alert("请输入用户名!"); document.Login.username.focus(); returnfalse; if(document.Login.password.value=="") alert("请输入密码!"); document.Login.password.focus(); returnfalse;</script><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>管理员登录</title><styletype="text/css">body{ background-color:#99CCCC;body,td,th{ font-size:14px; color:#000000;a:link{ color:#333333;a:visited{ color:#996600;a:active{ color:#999900;</style></head><body><formname="Login"method="post"action="admin_logincheck.jsp"><tablewidth="100%"border="0"><tr><tdwidth="25%"height="295"> </td><tdwidth="14%"> </td><tdwidth="36%"><imgsrc="../images/b2aaa.gif"width="345"height="117"><tablewidth="100%"border="0"cellpadding="0"cellspacing="8"><tralign="center"><tdheight="34"colspan="2"><spanclass="style1"><fontsize="3"><strong>图书管理系统后台管理员登录</strong></font></span></td></tr><tr><tdalign="right">用户名称:</td><td><inputname="username"type="text"id="username"maxlength="20"style="width:160px;border-style:solid;border-width:1;padding-left:4;padding-right:4;padding-top:1;padding-bottom:1"onmouseover="this.style.background='#D6DFF7';"onmouseout="this.style.background='#FFFFFF'"onFocus="this.select();"></td></tr><tr><tdalign="right">用户密码:</td><td><inputname="password"type="password"id="password"style="width:160px;border-style:solid;border-width:1;padding-left:4;padding-right:4;padding-top:1;padding-bottom:1"onFocus="this.select();"onmouseover="this.style.background='#D6DFF7';"onmouseout="this.style.background='#FFFFFF'"maxlength="20"></td></tr><tralign="center"><tdcolspan="2"><inputname="Submit"type="submit"value="确 认"onClick="CheckForm()"> <inputname="reset"type="reset"id="reset"value="清 除"><br><br>若忘记用户名或密码,请与管理人员联系<br><strong></strong></td></tr></table></td><tdwidth="25%"align="right"valign="top"><ahref="../index.jsp">返回首页</a></td></tr></table></form><scriptlanguage="JavaScript"type="text/JavaScript">SetFocus();</script></body></html>admin_logincheck.jsp<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.sql.*"errorPage=""%><%@includefile="../ch.jsp"%><%@includefile="checkadmin.jsp"%><jsp:useBeanid="logincheck"class="conndb.DbConnBean"scope="request"/>Stringusername=request.getParameter("username");Stringpassword=request.getParameter("password");if(username==null||username.equals("")||password==null||password.equals(""))<scriptlanguage="javascript">history.back();</script><%}else{Stringtusername=logincheck.chStr(username);Stringtpassword=logincheck.chStr(password);Stringsql="select*fromadminwhereusername='"+tusername+"'andpassword='"+tpassword+"'";inttemp=-2;temp=logincheck.select(sql);if(temp>0){session.setAttribute("name",tusername);response.sendRedirect("admin_index.jsp");}else{session.setAttribute("error","请检查你的用户名和密码!");response.sendRedirect("../errorpage.jsp");<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>检查管理员登录</title></head><body>检查管理员登录</body></html>第四节图书查询功能模块在前台允许所有用户对图书馆里面的书籍进行查询,返回内容包含书名,编号,分类和库存几个方面。总的来说该功能是本系统最重要的核心功能之一。前台图书查询图9Web图书查询界面图10查询结果界面图9为前台查询界面,图10为显示界面主要是实现对图书的查询,内容包括书名,图书编号,分类,库存量。分别由searchbook.jsp和实现其主要代码在功能代码在searchbook_post.jsp下,查询功能代码:Stringsql="";//解决中文乱码Stringkeyword=request.getParameter("keyword");Stringtkeyword=search.chStr(keyword);//获取参数名称Stringkeytype=request.getParameter("type");//如果按书名进行查询if(keytype.equals("booktitle")){sql="select*frombookwheretitlelike'%"+tkeyword+"%'";}//如果按书号进行查询elseif(keytype.equals("bookid")){sql="select*frombookwherebookIDlike'%"+tkeyword+"%'";}inttemp=search.select(sql);Connectionconn=search.getConn();Statementstmt=conn.createStatement();ResultSetrs=stmt.executeQuery(sql);//表单显示处理功能代码:while(rs.next()){Stringbooktitle=rs.getString(2);Stringbookid=rs.getString(3);Stringbooktype=rs.getString(4);intquantity=rs.getInt(5);id++;if(color=="#CCCCCC"){color="#999999";}else{color="#CCCCCC";}代码部分 searchbook.jsp<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.sql.*"errorPage=""%><%@includefile="../ch.jsp"%><%@includefile="checkadmin.jsp"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>查询图书信息</title><styletype="text/css">.tip{font-size:11px}body{ background-image:url(../images/R6C.GIF);</style></head><body><tablewidth="72%"border="0"cellspacing="0"cellpadding="0"align="center"><tr><tdwidth="120"height="30"bgcolor="#EFEFEF"><imgsrc="../images/search.gif"width="120"height="26"></td><tdwidth="455"bgcolor="#EFEFEF"><tablewidth="100%"border="0"cellspacing="0"cellpadding="0"><tr><formname="form1"action="searchbook_post.jsp"method="get"><tdwidth="80%"height="25"nowrapbgcolor="#EFEFEF"><inputname="keyword"size="30"value='关键字'onFocus='this.s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 重庆市西南师大附中2026年初三第九次适应性考试物理试题含解析
- 企业沟通标准化模板分享
- 团队建设活动策划与评估方案
- 办公场所信息安全事情事后恢复预案
- 描述家乡四季之美写景文章(11篇)
- 客户满意度与质量追溯承诺书3篇
- 技术人员工作流程管理模板
- 快速规划自动化设备调整清单
- 农业科技领域的承诺书(6篇)
- 单位债务及时偿付责任承诺书7篇
- 2025年高职(城市轨道交通机电技术)设备调试阶段测试题及答案
- 2026年考试题库北汽集团高管知识水平测试
- 核电防异物管理指南(核心版)
- 电厂防汛课件
- 日志观察及写作指导手册
- 人工智能在高职机械专业教学中的应用研究
- 高标准农田建设项目操作方案指南
- 2026年上饶职业技术学院单招职业技能考试必刷测试卷附答案
- 野战生存课件军用
- 环卫车辆安全行驶培训课件
- 刷漆搭架施工方案
评论
0/150
提交评论