当前位置:文档之家› 图书管理系统的JSP网页设计

图书管理系统的JSP网页设计

武汉理工大学华夏学院课程报告课程名称:网页设计与制作Ⅱ题目:图书管理系统的JSP网页设计专业信息工程系班级软件2101学号姓名成绩_________________指导教师2012年9月3日至2012年11月30日1 设计目的计算机技术的迅猛发展,特别是随着网络技术的出现标志着信息时候已经来临。

信息化浪潮、网络革命在给社会带来冲击的同时,也使图书馆业务受到了强烈的冲击,图书馆传统的管理和服务方式已不能适应读者对日益增长的文献信息的需求,建设图书馆信息网络系统,是图书馆现代化建设的客观要求。

建设以计算机为核心的图书馆信息网络,实现图书馆管理和服务的自动化,更好地为科技工作服务,是图书馆发展的必由之路。

目前,国内大部分大型的公共图书馆和高校图书馆都实现了网络管理,中小型图书馆(包括企业图书馆),也在朝着这个方向发展。

现代企业的迅猛发展,对图书资料的需求量增大,图书资料越来越多,传统手工卡片式的图书借阅管理模式已经不能满足现状,因此有必要采用先进的计算机技术对图书资源进行科学的管理。

针对中小型图书管理系统的特点和要求,综合各方面的考虑采用JSP,JDK和JDBC等技术开发本系统。

系统中Tomcat作为Web服务器MYSQL作为数据库服务器使用HTML,JAVASCRIPT,JSP进行网络应用程序的开发,利用JDBC访问机制对后台数据库进行访问。

2 开发环境1.操作系统:Windows 2000/Windows XP/Windows 20032.数据库:MYSQL3.其它:JDK 5.0以上,tomcat5.0以上3 需求分析图书管理涉及图书信息、管理员信息、读者信息、图书借阅等多种数据管理。

从管理的角度可将图书分为两类:图书信息管理、读者数据管理。

图书信息管理包括图书征定、借还、查询等操作,读者数据管理包括读者信息管理和个人信息的录入、修改和删除。

图书借阅者的需求是查询图书室所存的图书、个人借阅情况及个人信息的修改;图书馆工作人员对图书借阅者的借阅及还书要求进行操作,同时形成借书或还书报表给借阅者查看确认;图书馆管理人员的功能最为复杂,包括对工作人员、图书借阅者、图书进行管理和维护,及系统状态的查看、维护等。

图书借阅者可直接查看图书馆图书情况,如果图书借阅者根据本人借书证号和密码登录系统,还可以进行本人借书情况的查询和维护部分个人信息。

一般情况下,图书借阅者只应该查询和维护本人的借书情况和个人信息,若查询和维护其他借阅者的借书情况和个人信息,就要知道其他图书借阅者的借书证号和密码。

这些是很难得到的,特别是密码,所以不但满足了图书借阅者的要求,还保护了图书借阅者的个人隐私。

图书馆工作人员有修改图书借阅者借书和还书记录的权限,所以需对工作人员登陆本模块进行更多的考虑。

在此模块中,图书馆工作人员可以为图书借阅者加入借书记录或是还书记录,并打印生成相应的报表给用户查看和确认。

图书馆管理人员功能的信息量大,数据安全性和保密性要求最高。

本功能实现对图书信息、借阅者信息、总体借阅情况信息的管理和统计、工作人员和管理人员信息查看及维护。

图书馆管理员可以浏览、查询、添加、删除、修改、统计图书的基本信息;浏览、查询、统计、添加、删除和修改图书借阅者的基本信息,浏览、查询、统计图书馆的借阅信息,但不能添加、删除和修改借阅信息,这部分功能应该由图书馆工作人员执行,但是,删除某条图书借阅者基本信息记录时,应实现对该图书借阅者借阅记录的级联删除。

并且还应具有生成催还图书报表,并打印输出的功能。

4 概要设计4.1 总体设计思想图书论坛管理系统主要分为前台功能和后台功能两大模块,再根据这两大模块逐渐衍生出各个分支模块。

先设计好数据库,然后对其设计相应的八张表。

根据自己的设计思想对每张JSP页面进行美化和相互关联,后与MYSQL进行连接运行,得到自己想要的效果。

4.2 系统功能结构图图4-1 论坛管理系统结构功能图4.3 数据库设计4.3.1 数据库E-R图1)读者信息图4-2 读者信息数据表2)图书信息图4-3 图书信息数据表3)图书借阅信息图4-4 图书借阅信息表4)图书归还信息图4-5 图书归还信息表5)图书过期信息图4-6 图书过期信息数据表6)图书预约信息图4-7 图书预约信息数据表7)读者查询信息图4-8 读者查询信息数据表8)用户管理信息图4-9 用户管理信息数据表4.3.2 数据库表结构读者信息表表4-1 读者信息表图书信息表表4-2 图书信息表图书借阅信息表表4-3 图书借阅信息表图书归还信息表表4-4 图书归还信息表图书过期信息表表4-5 图书过期信息表图书预约信息表表4-6 图书预约信息表读者查询信息表表4-7 读者查询信息表用户管理信息表表4-8 用户管理信息表5 详细设计与实现根据需求分析及系统设计情况,结合JSP、MYSQL的特点开发出了论坛系统网站,在进行编码测试之后,网站实现了上面分析的基本功能。

在满足运行环境的条件下,对系统主要功能的实现方法及运行界面介绍如下。

5.1 管理员登录模块图5-1 管理员登录模块管理员登录相关代码:<form action="check.jsp" method="post"><p><center><p class="STYLE19 STYLE15"><strong>欢迎进入图书馆管理系统</strong></p></center><center><p><span class="STYLE10"><strong>管理员名称:</strong></span><label><input name="username" type="text" id="textfield" /></label></p></center><center><p><span class="STYLE10"><strong>密码:</strong></span><label><input type="password" name="password" id="textfield2" /></label></p></center><center><p class="STYLE10"><span class="STYLE11"></span><label></label><input name="提交" type="submit" class="STYLE16" value="提交" /><span class="STYLE16"></span> </p>&nbsp;&nbsp;&nbsp;&nbsp;<input value="重填" type="reset">&nbsp;&nbsp;&nbsp;&nbsp;<input onclick="window.close();" value="取消" type="button"></center></form>5.2 登录成功后的主界面图5-2 图书馆主界面图书馆界面相关代码:<style type="text/css"><!--.STYLE1 {color: #990033;font-weight: bold;}--></style><style>a{TEXT-DECORA TION:none}a:hover{TEXT-DECORATION:underline}.STYLE2 {color: #000000}</style></head><body><table width="900" border="0" bordercolor="#FFFFFF" bgcolor="#000000"><tr><td height="112" colspan="8"><img src="Images/1.gif" width="895" height="142" /></td> </tr><tr><td width="200" height="0" bgcolor="#CCFF00"><div align="center"><span class="STYLE1">图书馆管理系统欢迎你!</span></div></td><td width="100" bgcolor="#009933"><div align="center"><strong><a href="main.jsp" class="STYLE2">首页</a></strong></div></td><td width="100" bgcolor="#009933"><div align="center"><strong><a href="reader.jsp" class="STYLE2">读者管理</a></strong></div></td><td width="100" bgcolor="#009933"><div align="center"><strong><a href="book.jsp"class="STYLE2">图书管理</a></strong></div></td><td width="100" bgcolor="#009933"><div align="center"><strong>图书借阅</strong></div></td><td width="100" bgcolor="#009933"><div align="center"><strong>图书归还</strong></div></td><td width="100" bgcolor="#009933"><div align="center"><strong><a href="xitongguanli.jsp" class="STYLE2">系统管理</a></strong></div></td> <td width="100" bgcolor="#009933"><div align="center"><strong><a href="login.jsp" class="STYLE2">退出系统</a></strong></div></td></tr></table></body></html>5.3 读者管理档案模块图5-3 读者档案管理模块读者档案管理模块相关代码:<%Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection con = DriverManager.getConnection("jdbc:odbc:zc","sa","111111");Statement stmt = con.createStatement();ResultSet rs;rs=stmt.executeQuery("select * from reader");%><td valign="top" bgcolor="#FFFFFF"><table width="99%" height="510" border="0"align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="tableBorder_gray"> <tr><td height="510" valign="top" style="padding:5px;"><table width="98%" height="487" border="0" cellpadding="0" cellspacing="0"><tr><td height="22" valign="top" class="word_orange">当前位置:<a href="main.jsp"class="STYLE2">读者管理</a> &gt; 读者档案管理&gt;&gt;&gt;</td></tr><tr><td align="center" valign="top"><table width="100%" height="30" border="0" cellpadding="0" cellspacing="0"><tr><td height="36" align="center" class="STYLE3 STYLE4">读者档案管理</td></tr></table><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="75%">&nbsp; </td><td width="25%"><a href="reader_add.jsp" class="STYLE3">添加读者信息</a></td></tr></table><table width="98%" border="1" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF" bordercolordark="#D2E3E6" bordercolorlight="#FFFFFF"><tr align="center" bgcolor="#e3F4F7"><td width="13%">读者编号</td><td width="10%">姓名</td><td width="8%">性别</td><td width="12%">班级</td><td width="20%">院系</td></tr><%while(rs.next()){out.println("<tr align=center>");out.println("<td>"+rs.getString(1)+"</td>");out.println("<td>"+rs.getString(2)+"</td>");out.println("<td>"+rs.getString(3)+"</td>");out.println("<td>"+rs.getString(4)+"</td>");out.println("<td>"+rs.getString(5)+"</td>");}%></table></td></tr></table></td></tr></table></td>5.4 读者添加模块图5-4 读者添加模块读者添加模块核心代码:<%Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection con = DriverManager.getConnection("jdbc:odbc:zc","sa","111111"); Statement stmt = con.createStatement();ResultSet rs;rs=stmt.executeQuery("select * from reader");%><%try{String id=request.getParameter("id");if(id==null){id="";}String name=request.getParameter("name");if(name==null){name="";}String sex=request.getParameter("sex");if(sex==null){sex="";}String banji=request.getParameter("banji");if(banji==null){banji="";}String dept=request.getParameter("dept");if(dept==null){dept="";}try{byte a[]=name.getBytes("ISO-8859-1");name=new String(a,"gb2312");byte b[]=sex.getBytes("ISO-8859-1");sex=new String(b,"gb2312");byte c[]=dept.getBytes("ISO-8859-1");dept=new String(c,"gb2312");}catch(Exception e){}if(id!=null && name!=null && sex!=null && banji!=null && dept!=null){String str1="INSERT INTO reader V alues "+"("+"'"+id+"','"+name+"','"+sex+"','"+banji+"','"+dept+"')"; stmt.executeUpdate(str1); }rs.close();stmt.close();con.close();}catch (Exception e){out.println("<font color=red size=5><b>");out.println("");out.println("</b></font>");}%><%Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");rs=stmt.executeQuery("select * from reader");%>5.5 读者信息查询模块图5-5 读者信息查询模块读者信息查询代码:<form action="chaxunjieguo.jsp" method="get"><center><span class="STYLE1">读者查询页面</span></center><br ><center> 查询方式:<label><input type="radio" name="selectetype" value="按性别查询" />性别查询</label><label><input type="radio" name="selectetype" value="按班级查询" />按班级查询<input type="text" name="selecteinfo" /></label><label><input type="submit" name="Submit" value="提交" /><tr><td colspan=11 align=center><a href="xitongguanli.jsp" class="STYLE2">返回</a></td> </tr></label></center></form>核心代码:<% String selectetype=request.getParameter("selectetype");String selecteinfo=request.getParameter("selecteinfo");if(selectetype!=null&&selecteinfo!=null){Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection con = DriverManager.getConnection("jdbc:odbc:zc","sa","111111");Statement sta= con.createStatement();String sql1 ="select * from reader where 性别='"+selecteinfo+"'";ResultSet rs1= sta.executeQuery(sql1);String userid="按性别查询";String username = "按班级查询";if((userid.trim()).equals(selectetype.trim())){%><table width="98%" border="1"><tr><td width="13%">读者编号</td><td width="10%">姓名</td><td width="8%">性别</td><td width="12%">班级</td><td width="20%">院系</td></tr><% while(rs1.next()){out.print("<tr>");out.print("<td>"+rs1.getString(1)+"</td>");out.print("<td>"+rs1.getString(2)+"</td>");out.print("<td>"+rs1.getString(3)+"</td>");out.print("<td>"+rs1.getString(4)+"</td>");out.print("<td>"+rs1.getString(5)+"</td>");out.print("</tr>");}%></table><%}if((username.trim()).equals(selectetype.trim())){String sql2 ="select * from reader where 班级='"+selecteinfo+"'";ResultSet rs2= sta.executeQuery(sql2);%><table width="98%" border="1"><tr><td width="13%">读者编号</td><td width="10%">姓名</td><td width="8%">性别</td><td width="12%">班级</td><td width="20%">院系</td></tr><% while(rs2.next()){out.print("<tr>");out.print("<td>"+rs2.getString(1)+"</td>");out.print("<td>"+rs2.getString(2)+"</td>");out.print("<td>"+rs2.getString(3)+"</td>");out.print("<td>"+rs2.getString(4)+"</td>");out.print("<td>"+rs2.getString(5)+"</td>");out.print("</tr>");}%></table><%} }%>5.6 读者信息修改图5-6 读者信息修改读者信息修改代码:<form method="post" action="readerupdatelist.jsp"><center><span class="STYLE2">修改读者信息</span></center><input type="hidden" name="action" value="new"><table class="main_w" width="49%" border="1" cellpadding="4" cellspacing="0" bordercolor="#3E8A91" align=center><tr><td width="48%">读者编号</td><td width="52%"><input name="id" type="text" ></td></tr><tr><td>读者姓名</td><td><input name="name" type="text" ></td> </tr><tr><td width="48%">性别</td><td width="52%"><label><input type="radio" name="sex" value="男">男<input type="radio" name="sex" value="女">女</label></td></tr> <tr><td>班级</td><td><input name="banji" type="text" ></td></tr> <tr><td width="48%">院系</td><td width="52%"><input name="dept" type="text" ></td> </tr><tr><td colspan=2 align=center><a href="reader.jsp">返回</a><INPUT class=Button1 type=submit value="确定" name=Submit></td></tr> </table> </form>核心代码:<% String id=request.getParameter("id");String name=request.getParameter("name");String sex=request.getParameter("sex");String banji=request.getParameter("banji");String dept=request.getParameter("dept");try{byte a[]=name.getBytes("ISO-8859-1");name=new String(a,"gb2312");byte b[]=sex.getBytes("ISO-8859-1");sex=new String(b,"gb2312");byte c[]=dept.getBytes("ISO-8859-1");dept=new String(c,"gb2312");}catch(Exception e){}Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection con = DriverManager.getConnection("jdbc:odbc:zc","sa","111111");Statement sta= con.createStatement();String sql = "Update reader set 姓名= '"+name+"' ,性别= '"+sex+"' ,班级= '"+banji+"' ,院系= '"+dept+"' where 读者编号='"+id+"'";sta.executeUpdate(sql);%>修改成功<a href="reader.jsp">返回</a>5.7 读者信息删除图5-7 读者信息删除模块读者信息删除代码:<form action="" method="get">选择删除的方式:<label><input type="radio" name="deltype" value="按读者编号删除" />按读者编号删除</label><label><input type="radio" name="deltype" value="按姓名删除" />按姓名删除</label><label> <input type="text" name="delinfo" /></label><label><input type="submit" name="Submit" value="提交删除" /></label><td class="STYLE3"><div align="right"><a href="main.jsp" class="STYLE4 STYLE1"><kbd>返回首页</kbd></a></div></td></form> <%String deltype = request.getParameter("deltype");try{byte d[] = deltype.getBytes("ISO-8859-1");deltype = new String(d);}catch(Exception e){}String delinfo=request.getParameter("delinfo");try{ byte b[]=delinfo.getBytes("ISO-8859-1");delinfo=new String(b);}catch(Exception e){}if(deltype!=null&&delinfo!=null){Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection con = DriverManager.getConnection("jdbc:odbc:zc","sa","111111");Statement sta= con.createStatement();String userid="按读者编号删除";String username ="按姓名删除";String a=userid.trim();String b=deltype.trim();if((userid.trim()).equals(deltype.trim())){String sql1 ="delete from reader where 读者编号='"+delinfo+"'";int i1 = sta.executeUpdate(sql1);out.print("删除成功!!!");}if((username.trim()).equals(deltype.trim())){String sql2 ="delete from reader where 读者姓名='"+delinfo+"'";int i2 = sta.executeUpdate(sql2);out.print("删除成功!!!");}}%>5.8 更改口令模块图5-8 更改口令模块更改口令代码:<form action="" method="get">请输入管理员名称:<label><input type="text" name="username" /></label><p>输入新密码:<label><input type="password" name="newpsw" /></label></p><p><label><input type="submit" name="Submit" value="提交" /></label><label><a href="main.jsp">返回主页</a></label></p></form><%String username=request.getParameter("username");String newpsw=request.getParameter("newpsw");if(username!=null&&newpsw!=null){Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection con = DriverManager.getConnection("jdbc:odbc:zc","sa","111111");Statement sta= con.createStatement();String sql = "Update login set password= '"+newpsw+"' where username='"+username+"'";int i = sta.executeUpdate(sql);String sql1="select password from login where username='"+username+"'";ResultSet rs1 = sta.executeQuery(sql1);while(rs1.next()){String newpasswd = rs1.getString("password");//out.print(newpasswd);if((newpasswd.trim()).equals(newpsw.trim())){out.print("修改成功");}else{response.sendRedirect("main.jsp");}}}%>5.9 MYSQL与MyEclipse连接5.9.1 点击MYSQL/配置工具/SQL Server Configuration Manager,在弹出的窗口中选择MYSQL服务,点击右键选择启动SQL Server(MSSQLSERVER)和SQL Server Agent(MSSQLSERVER);选择MYSQL网络配置中的MSSQLSERVER协议,在右边的窗口中点击右键启动TCP/IP,选择属性中的IP地址项,将其中所有的TCP端口改为1433;打开数据库选择”安全性”/”登录名”/”sa”,在弹出的“登录属性-sa”窗口中修改密码为“12345”。

相关主题