web开发课程设计--数据库实现设计_第1页
web开发课程设计--数据库实现设计_第2页
web开发课程设计--数据库实现设计_第3页
web开发课程设计--数据库实现设计_第4页
web开发课程设计--数据库实现设计_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、Web开发技术课程论文基于Web的数据库系统课程名称: 基于Web的数据库系统 专 业: 网络工程(2)班 姓 名: 魅味邪少 学号: 904567481 姓 名: 黄景森 学号: 10539057 姓 名: 陈锐 学号: 10539049 指导老师: 梅申信 高宁 2021年6月15日6月19日摘要:伴随着网络技术的迅速发展,基于Web的数据库应用也变得越来越广, 本文从系统的用户特点和主要功能入手,结合实际应用,深入分析了Web数据库体系结构的发展, 分析了其关键因素体系结构的升级对系统开发产生的影响。最后提出了数据库各种体系结构的工作原理及存在的问题1)将Web技术和

2、数据库技术相结合,在WWW上开发动态交互的Web数据库应用,已逐 渐成为基于WWW的信息管理系统的核心和重要发展方向,本文分析和研究了关于动态Web 数据库的开发与应用及其相关的问题。 2)简要地介绍了Web数据库与传统数据库相比的诸多优点,以及目前Web数据库在不 同应用方案中的类型;讨论了两种Web数据库系统结构:混合Web数据库系统结构、B/S模 式Web数据库系统结构3)阐述了Web和关系数据库处理模式的不同之处,在此基础上讨论了 三种集成模型:CGI、API、Fat Client;分析了Web数据库的几种实现技术,并分析了它们各 自的优缺点和应用场所;初步探讨了Windows DNA

3、体系结构,在此基础上把Web数据库与 DNA相集成,进行可扩展设计4)最后,在数据库安全与网络安全问题的基础上,从服务器安 全、用户身份验证、对话期安全三方面研究了基于Web的数据库的安全问题。一.课程设计的目的WEB数据库开发技术是一门实用性、综合性较强的课程。学生在学完本门课程后,不仅要了解WEB设计的方法和技术,更重要的是能综合应用所学的数据库、高级编程语言及网页设计的知识,具有实际开发动态网站的能力。本课程设计旨在使学生通过完成一个小型的模拟命题,实现从网站规划、设计和编码的全过程,将理论知识和实践知识相结合,提高学生实际开发网站的动手能力。二应用程序开发示例一个Web数据库应用系统设

4、计的好与坏,其数据库的设计与Web应用系统的功能分析都非常重要,所以在开发一个Web数据库应用系统时,首选要严格按照各个步骤,一步一步的进行需求分析,数据库设计及系统的分析设计。下面给出一个示例,希望同学们在做课程设计时,可以从中学习Web数据库应用程序的设计与开发,更好的将理论与实践结合起来,增强自己的综合能力。三课程设计题目学生信息系统四.实验环境操作系统为win7数据库管理系统为access2021 高级程序设计语言为JSP五设计题目要求学生信息管理系统1)系统中有学生的所有信息2)系统中包括(学号,姓名,性别,年龄,民族,宿舍,专业, )。合理设计表的结构。3)系统具有信息的输入、更新

5、和删除、查询功能。目录1.需求分析.1 1.1功能需求.1 1.2安全需求 .1 1.3 性能需求 .1 2.系统分析.1 2.1 系统开发技术1 2.1.1 JSP特点.12.1.2 access数据 1 2.2 UML活动关系图.1 2.3 系统模块.13.数据库的设计与实现 .1 3.1 数据库的需求分析 .1 3.2 数据库的逻辑设计 13.3 数据库的无力设计 .14.代码编写.15.系统运行与测试 .1 6.总结与体会 .11.需求分析 随着网络的飞速发展和普及,越来越多的学校使用网络来管理学生信息。本系统基于Web的学生信息系统主要目的是为用户提供一个方便快捷的管理学生信息的平台

6、。利用本系统,用户可以查看学生的信息,管理人员可以进行添加,删除,修改。1.1 功能需求本系统将实现以下的几个功能: 查看学生信息:任何用户可以查看学生的信息情况。 查询学生信息:任何用户可以查询学生的信息情况。 添加学生信息:任何用户可以添加学生的信息情况。 修改学生信息:任何用户可以修改学生的信息情况。 删除学生信息:任何用户可以删除学生的信息情况。 1.2 安全需求 由于使用JSP编码的程序代码本身比较隐蔽性较强,在客户端仅可以看到JSP输出的动态Html文件,因此只要在编写代码是注意严谨性,控制好自己客户端的cookies信息即可得到很好的安全保障。1.3 性能需求 在win7环境下使

7、用access数据库,建立数据库,JSP语言编写程序2 系统分析2.1 系统开发技术2.1.1 JSP 特点 JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。Web服务器在遇到访问JSP网页的请求时,首先执行其实的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需

8、要的功能。JSP与Java Servlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,阴刺客户端只要有浏览器就能浏览。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet和JSP配合才能完成。JSP具备了Java技术简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。2.1.2 access 数据库 存储方方式单一:Access管理的对象有表,查询,窗体,报表,页,宏和模块,以上对象都存放在后缀为(.mdb)的数据库文

9、件中,便于用户的操作和管理。 面向对象:Access是一个面向对象的开发工具,利用面向对象的方式将数据库中的各种功能对象化,将数据管理的各种功能封装在各类对象中。它将一个应用系统当作是有一系列对象组成的,对每个对象它都定义一组方法和属性,以定义该对象的行为和外国,用户还可以按需要给对象扩展方法和属性。通过对象的方法,属性完成数据库的操作和管理,极大地简化了用户的开发工作。同时,这种基于面向对象的开发方式,使得开发应用程序更为简便。 界面友好,易操作:Access是一个可视化工具,是风格与window完全一样,用户想要生成对象并应用,只要使用鼠标进行拖放即可,非常直观方便。系统还提供了表生成器,

10、查询生成器,报表设计器以及数据库向导,表向导,查询向导,窗体向导,报表向导等工具,使得操作简便,容易使用和掌握。 集成环境,处理多种数据信息:Access基于window操作系统下的集成开发环境,该环境集成了各种向导和生成器工具,极大地提高了开发人员的工作效率,使得建立数据库,创建表,涉及用户界面,设计数据查询,报表打印等可以方便有序地进行。 Access支持ODBC,利用Acess强大的DDE和OLE特性,可以在一个数据表中嵌入位图,声音,Excel表格,word文档,还可以家里动态的数据库报表和窗体等。Access还可以将程序用用于网络,并与网络上的动态数据相联接。利用数据库访问页对象生成

11、HTML文件,轻松构建Interest的应用。2.2 UML活动关系图 用户打开学生信息系统,可以查看,查询学生信息2.3 系统模块 管理员模块包括:添加,修改,删除学生信息。3 数据库设计与实现3.1 数据库的需求分析 根据系统需求,可以列出以下的数据项和数据结构。 学生信息表:学号,姓名,性别,民族,年龄,宿舍,专业, 。3.2 数据库的逻辑设计 根据以上的需求分析,可以得出各表的关系。建立表的主键约束,可以避免处理数据库是产生严重的问题,保证各表数据库的完整性。各表之间达到了3NF,表之间基本没有什么影响,彼此之间相互独立。3.3 数据库的物理设计 利用access2021 建立学生信息

12、数据表4 代码编写 首先是首页的设计,使用表格table进行布局,使用html代码插入使用背景图片,使界面美观。其中代码如下:<% page contentType="text/html; charset=GB2312" %><% page import="java.sql.*" %><html><head><title>JDBC建立数据库连接</title><link href="Css/style.css" rel="stylesheet&qu

13、ot;></head><body background="whiteflower.jpg"><center><table width="850" height="120" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="850" background="b

14、utton/bbtt.jpg"><table width="850" height="120" border="0" cellpadding="0" cellspacing="1"> <tr> <td width="850" height=120><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="850&

15、quot; height="120"> <param name="movie" value="images/top.swf"> <param name="WMode" value="Transparent"> <param name="quality" value="high"> <embed src="images/top.swf" quality="high" ty

16、pe="application/x-shockwave-flash" width="474" height="70"></embed></object></td> </tr> </table></td> </tr></table><br><% /加载驱动程序 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); /建立连接 Connection conn=D

17、riverManager.getConnection("jdbc:odbc:bookshoplk","sa",""); /发送SQL语句 Statement stmt=conn.createStatement(); try /建立ResultSet(结果集)对象 ResultSet rs; /执行SQL语句 rs=stmt.executeQuery("SELECT * FROM booktable"); %><table width=850 bgcolor=blue height=200 style=&

18、quot;border:red ridge 1px" cellspacing=0> <tr bgcolor=blue align=center cellspcing=0 cellpadding=0 style="border:red ridge 1px"><b> <td style="border:red ridge 1px">snum</td><td style="border:red ridge 1px">sname</td><td st

19、yle="border:red ridge 1px">sex</td><td style="border:red ridge 1px">Fname</td> <td style="border:red ridge 1px">age</td><td style="border:red ridge 1px">sushe</td><td style="border:red ridge 1px">ade

20、pt</td><td style="border:red ridge 1px">telphone</td> </b></tr><% /利用while循环将数据表中的记录列出 while (rs.next()%> <tr> <td style="border:red ridge 1px"><%= rs.getString("snum") %></td> <td style="border:red rid

21、ge 1px"><%= rs.getString("sname") %></td> <td style="border:red ridge 1px"><%= rs.getString("sex") %></td> <td style="border:red ridge 1px"><%= rs.getString("Fnanme") %></td> <td style="

22、border:red ridge 1px"><%= rs.getString("age") %></td> <td style="border:red ridge 1px"><%= rs.getString("sushe") %></td> <td style="border:red ridge 1px"><%= rs.getString("adept") %></td> <td

23、 style="border:red ridge 1px"><%= rs.getString("telphone") %></td> </tr><% rs.close(); /关闭ResultSet对象 catch(Exception e) out.println(e.getMessage(); stmt.close(); /关闭Statement对象 conn.close(); /关闭Connection对象%></table></td></tr></tab

24、le></center></body><br><TABLE height=85 cellSpacing=0 cellPadding=0 width=850 align=center background=bottom1.jpg border=0> <TBODY> <TR> <TD class=tdwhite align=middle><!-#begineditable name="版权2" action="" layout="" clone

25、="" namechanged="0" viewid="605"->版权所有:msx工作室&nbsp;邮箱:meisx amp;nbsp;<BR>地址:合肥市长江西路130号 :230036&nbsp;<!-#endeditable-></TD></TR></TBODY></TABLE></html>查询学生信息代码如下:<% page contentType="text/html; c

26、harset=GB2312" %><% page import="java.sql.*" %><html><head><title>选择查询</title></head><style type=text/css>tdfont-family:宋体;font-size:12px;color=white;border:1px solid red;</style></head><body background="whiteflower.jpg&

27、quot;><center><table width="850" height="120" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="850" background="button/bbtt.jpg"><table width="850" height

28、="120" border="0" cellpadding="0" cellspacing="1"> <tr> <td width="850" height=120><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="850" height="120"> <param name="movie&qu

29、ot; value="images/top.swf"> <param name="WMode" value="Transparent"> <param name="quality" value="high"> <embed src="images/top.swf" quality="high" type="application/x-shockwave-flash" width="474&q

30、uot; height="70"></embed></object></td> </tr> </table></td> </tr></table><br><body><center><% request.setCharacterEncoding("GB2312"); String publishername=request.getParameter("pubname"); if(publish

31、ername=null) publishername="" %><table width=850 bgcolor=blue style="border:red ridge 1px" cellspacing=0><tr><td colspan=8align=center><font size=4 color=white face=黑体><center>输出数据表booktable中<%=publishername%>的记录</center></font>&

32、lt;/td></tr><% Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn=DriverManager.getConnection("jdbc:odbc:bookshoplk","sa",""); Statement stmt=conn.createStatement(); try ResultSet rs; /建立ResultSet(结果集)对象 rs=stmt.executeQuery("Selec

33、t * From booktable where snum='"+publishername+"'"); /执行SQL语句%> <tr bgcolor=blue align=center cellspcing=0 cellpadding=0 style="border:red ridge 1px"><b> <td >snum</td><td>sname</td><td>sex</td><td>Fname</td

34、> <td>age</td><td>sushe</td><td>adept</td><td>telphone</td> </b></tr><% /利用while循环将数据表中的记录列出 while (rs.next()%> <tr class=b align=center > <td ><%= rs.getString("snum") %></td> <td><%= rs.

35、getString("sname") %></td> <td><%= rs.getString("sex") %></td> <td><%= rs.getString("Fname") %></td> <td><%= rs.getString("age") %></td> <td><%= rs.getString("sushe") %></t

36、d> <td><%= rs.getString("adept") %></td> <td><%= rs.getString("telphone") %></td> </tr> <% rs.close(); /关闭ResultSet对象 catch(Exception e) out.println(e.getMessage(); stmt.close(); /关闭Statement对象 conn.close(); /关闭Connection对象%><

37、/table></center></body><br><TABLE height=85 cellSpacing=0 cellPadding=0 width=850 align=center background=bottom1.jpg border=0> <TBODY> <TR> <TD class=tdwhite align=middle><!-#begineditable name="版权2" action="" layout="" c

38、lone="" namechanged="0" viewid="605"->版权所有:msx工作室&nbsp;邮箱:meisx amp;nbsp;<BR>地址:合肥市长江西路130号 :230036&nbsp;<!-#endeditable-></TD></TR></TBODY></TABLE></html>添加学生信息程序如下:<% page contentType="text/htm

39、l; charset=GB2312" %><% page import="java.sql.*" %><html><head><title>添加记录</title><style type=text/css>tdfont-family:宋体;font-size:12px;color=white;tdborder:1px solid red;</style></head><body background="whiteflower.jpg"&g

40、t;<center><table width="850" height="120" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="850" background="button/bbtt.jpg"><table width="850" height="

41、120" border="0" cellpadding="0" cellspacing="1"> <tr> <td width="850" height=120><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="850" height="120"> <param name="movie" val

42、ue="images/top.swf"> <param name="WMode" value="Transparent"> <param name="quality" value="high"> <embed src="images/top.swf" quality="high" type="application/x-shockwave-flash" width="474" he

43、ight="70"></embed></object></td> </tr> </table></td> </tr></table><br><body><center><table width=850 bgcolor=blue><tr><td colspan=8 align=center><% request.setCharacterEncoding("GB2312"); St

44、ring s_bkid=request.getParameter("bkid"); if(s_bkid=null) s_bkid="" String s_bkname=request.getParameter("bkname"); if(s_bkname=null) s_bkname="" String s_authorname=request.getParameter("authorname"); if(s_authorname=null) s_authorname=""

45、String s_bkpublisher=request.getParameter("bkpublisher"); if(s_bkpublisher=null) s_bkpublisher="" String s_bkpubdate=request.getParameter("bkpubdate"); if(s_bkpubdate=null) s_bkpubdate="" String s_bkprice=request.getParameter("bkprice"); if(s_bkprice

46、=null) s_bkprice="" String s_bktype=request.getParameter("bktype"); if(s_bktype=null) s_bktype="" String s_bkquantity=request.getParameter("bkquantity"); if(s_bkquantity=null) s_bkquantity="" %><font size=4 color=white>新添加的记录</font><

47、;hr><% String sql; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn=DriverManager.getConnection("jdbc:odbc:bookshoplk","sa",""); Statement stmt=conn.createStatement(); try sql="Insert Into booktable(snum,sname,sex,adept,schooling,age,t

48、elphone,rxdata)Values('"+s_bkid+"','"+s_bkname+"','"+s_authorname+"','"+s_bkpublisher+"','"+s_bkpubdate+"','"+s_bkprice+"','"+s_bktype+"',"+s_bkquantity+")" st

49、mt.executeUpdate(sql); ResultSet rs; /建立ResultSet(结果集)对象 rs=stmt.executeQuery("Select * From booktable where snum='"+s_bkid+"'"); /执行SQL语句%><table border=3 width=850> <tr bgcolor=silver><b> <td>snum</td><td>sname</td><td>

50、sex</td><td>adept</td> <td>schooling</td><td>age</td><td>telphone</td><td>rxdata</td> </tr><% /利用while循环将数据表中的记录列出 while (rs.next()%> <tr> <td><font size=1><%= rs.getString("snum") %></

51、font></td> <td><font size=1><%= rs.getString("sname") %></font></td> <td><font size=1><%= rs.getString("sex") %></font></td> <td><font size=1><%= rs.getString("Fname") %></font>

52、</td> <td><font size=1><%= rs.getString("age") %></font></td> <td><font size=1><%= rs.getString("sushe") %></font></td> <td><font size=1><%= rs.getString("adpet") %></font></td&

53、gt; <td><font size=1><%= rs.getString("teiphone") %></font></td> </tr> <% rs.close(); /关闭ResultSet对象 catch(Exception e) out.println(e.getMessage(); stmt.close(); /关闭Statement对象 conn.close(); /关闭Connection对象%></table></td></tr><

54、/table></center></body><br><TABLE height=85 cellSpacing=0 cellPadding=0 width=850 align=center background=bottom1.jpg border=0> <TBODY> <TR> <TD class=tdwhite align=middle><!-#begineditable name="版权2" action="" layout="" c

55、lone="" namechanged="0" viewid="605"->版权所有:msx工作室&nbsp;邮箱:meisx amp;nbsp;<BR>地址:合肥市长江西路130号 :230036&nbsp;<!-#endeditable-></TD></TR></TBODY></TABLE></html>更新学生信息程序如下:<% page contentType="text/htm

56、l; charset=GB2312" %><% page import="java.sql.*" %><html><head><title>添加记录</title><style type=text/css>tdfont-family:宋体;font-size:12px;color=white;tdborder:1px solid red;</style></head><body background="whiteflower.jpg"&g

57、t;<center><table width="850" height="120" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="850" background="button/bbtt.jpg"><table width="850" height="

58、120" border="0" cellpadding="0" cellspacing="1"> <tr> <td width="850" height=120><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="850" height="120"> <param name="movie" val

59、ue="images/top.swf"> <param name="WMode" value="Transparent"> <param name="quality" value="high"> <embed src="images/top.swf" quality="high" type="application/x-shockwave-flash" width="474" he

60、ight="70"></embed></object></td> </tr> </table></td> </tr></table><br><body><center><% request.setCharacterEncoding("GB2312"); String s_bkid=request.getParameter("bkid"); if(s_bkid=null) s_bkid=&quo

61、t;" String s_bkquantity=request.getParameter("bkquantity"); if(s_bkquantity=null) s_bkquantity="" %><table border=3 width=850 bgcolor=blue><tr><td align=center colspan=8><font size=4 color=white>新添加的记录</font><hr><% String sql; Class.

62、forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn=DriverManager.getConnection("jdbc:odbc:bookshoplk","sa",""); Statement stmt=conn.createStatement(); try sql="update booktable Set telphone ='"+s_bkquantity+"' where snum='"

63、;+s_bkid+"'" stmt.executeUpdate(sql); ResultSet rs; /建立ResultSet(结果集)对象 rs=stmt.executeQuery("Select * From booktable where snum='"+s_bkid+"'"); /执行SQL语句%> <tr bgcolor=silver><b> <td>snum</td><td>sname</td><td>sex

64、</td><td>Fname</td> <td>age</td><td>sushe</td><td>&nbspadept</td><td>telphone</td> </tr><% /利用while循环将数据表中的记录列出 while (rs.next()%> <tr> <td><font size=1><%= rs.getString("snum") %><

65、/font></td> <td><font size=1><%= rs.getString("sname") %></font></td> <td><font size=1><%= rs.getString("sex") %></font></td> <td><font size=1><%= rs.getString("Fname") %></font>

66、;</td> <td><font size=1><%= rs.getString("age") %></font></td> <td><font size=1><%= rs.getString("sushe") %></font></td> <td><font size=1><%= rs.getString("adpet") %></font></td

67、> <td><font size=1><%= rs.getString("telphone") %></font></td> </tr> <% rs.close(); /关闭ResultSet对象 catch(Exception e) out.println(e.getMessage(); stmt.close(); /关闭Statement对象 conn.close(); /关闭Connection对象%></table></center></body&

68、gt;<br><TABLE height=85 cellSpacing=0 cellPadding=0 width=850 align=center background=bottom1.jpg border=0> <TBODY> <TR> <TD class=tdwhite align=middle><!-#begineditable name="版权2" action="" layout="" clone="" namechanged="

69、;0" viewid="605"->版权所有:msx工作室&nbsp;邮箱:meisx amp;nbsp;<BR>地址:合肥市长江西路130号 :230036&nbsp;<!-#endeditable-></TD></TR></TBODY></TABLE></html>删除学生信息程序如下:<% page contentType="text/html; charset=GB2312" %><%

70、page import="java.sql.*" %><html><head><title>删除记录</title><style type=text/css>tdfont-family:宋体;font-size:12px;color=black;tdborder:1px solid red;</style></head><body background="whiteflower.jpg"><center><table width="850" height="120" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="850"

温馨提示

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

评论

0/150

提交评论