资源描述
-摘 要随着我国经济发展,计算机以及计算机网络的应用也日益凸显出其举足轻重的地位,而留言系统的开发也成为必不可少的需求。留言系统属于信息采集和管理系统。其开发的主要功能包括:在主页面提示部分信息,使访问者可以看到最近时间段内的留言;访问者可以访问自己感兴趣的留言内容;访问者可以在写下自己的留言,可以给提出建议,发表自己的看法;设置管理员,管理员通过身份认证可以对所有留言进行管理,包括删除,回复等。这种系统实现在线的查看,查找,管理,留言操作,功能强大,方便跨地域操作,扩展能力良好。基于利用计算机网络的巨大潜力、数据信息的理念,从而减少人力、物力及财力上的消耗,完成合理的分配资源。ABSTRACTAs Chinas economic development, the application of puters and puter networks are also increasingly highlighted its pivotal position, while the message system development has bee an essential needs. Message systems are information collection and management systems. The development of its main functions include: Prompted some of the information in the main page, so that visitors can see the recent time period of the message; Visitors can access your interested message content; Visitors can write their own message, you can make remendations to the site to e*press their views; Set up an administrator, the administrator through all message authentication can be managed, including delete, reply and so on. To achieve such a system online to view, find, manage, message operations, powerful, convenient cross-boundary operations, good scalability. Based on the great potential of using puter networks, data, information, ideas, thus reducing manpower, material and financial resources consumption, the pletion of a reasonable allocation of resources.目 录摘要IABSTRACTII1 绪论1.1 课题的提出、现状及研究意义1.2 课题的研究内容1.3 论文的章节安排2 相关技术介绍2.1 *ML简介2.2ASP.NET简介2.3 Web服务简介3 系统需求分析3.1系统可行性分析3.2 系统需求分析3.3 系统数据流图3.4 系统数据字典4 系统设计4.1 系统总体结构4.2 系统详细设计普通用户模块详细设计 管理员模块详细设计4.3 数据库设计 概念设计 逻辑设计 视图设计5 系统实现5.1 系统数据库连接实现5.2 系统前台页面的实现 用户控件 留言系统首页 留言页面5.3 普通用户功能模块实现登录实现 提示部分信息(可以深入了解用户感兴趣的内容) 用户留言的实现5.4 管理员功能模块实现 管理员登录实现登录的验证实现回复留言的实现 删除留言的实现 设置系统配置信息6 结束语6.1 主要研究工作6.2 进一步研究的方向致谢致谢44参考文献451 绪论1.1 课题的提出、现状及研究意义课题的准备背景意义:随着我国经济发展,计算机以及计算机网络的应用也日益凸显出其举足轻重的地位,而留言系统的开发也成为必不可少的需求。留言系统属于信息采集和管理系统。其开发的主要功能包括:在主页面提示部分信息,使访问者可以看到最近时间段内的留言;访问者可以访问自己感兴趣的留言内容;访问者可以在写下自己的留言,可以给提出建议,发表自己的看法;设置管理员,管理员通过身份认证可以对所有留言进行管理,包括删除,回复等。这种系统实现在线的查看,查找,管理,留言操作,功能强大,方便跨地域操作,扩展能力良好。基于利用计算机网络的巨大潜力、数据信息的理念,从而减少人力、物力及财力上的消耗,完成合理的分配资源。课题的基本思路:本课题是设计一个基于.net的留言系统。该系统主要实现在线留言,并对部分留言内容更进一步的访问以及管理操作。采用技术方法:Microsoft.NET是一组能够建立良好的,企业级的web 服务的产品。Microsoft.NET是一个产品策略。Microsoft .NET允许创建真正意义上的分布式“Web服务”,从而将各种服务集中起来并使之相辅相成地为用户服务。以软件工程思想为指导从需求分析,概要设计,详细设计,测试计划,测试用例以及实施各阶段的主要内容和成果,包括系统结构图、业务流程图、数据流程图、功能模块算法流程、界面设计并参考大量图书,电子文档等等。将采用Web服务和ASP.NET语言编写,完成设计。使用Web服务技术会简化和方便Internet应用的开发和使用,实现真正的网上留言处理与管理。1.2 课题的研究内容该选题需要了解留言信息管理信息方面的知识。因此要求掌握ASP.NET和WEB服务等计算机专业知识。Web服务的留言系统设计与实现是将留言信息管理和计算机网络功能结合起来的一种新型系统,是当前新技术革命中一个非常活跃和具有很强生命力的技术应用领域,是信息化社会的产物。因此该系统的开发有一定的可行性,适应发展和信息的查询。1.3 论文的章节安排整篇论文是基于Web服务为背景,从Web服务的知识、体系结构等方面,介绍Web服务的留言板系统设计与实现。具体章节安排如下:第一章绪论阐明了论文课题的提出及其意义,以及本课题研究内容。第二章主要介绍了研究本课题的相关技术和个性技术的特征、功能和应用领域。第三章介绍系统的需求分析,并重点分析了系统功能需求分析以及系统的数据流图等。第四章介绍系统设计,并对系统的数据库设计进行的重点分析。第五章进行系统实现设计的分析,包括界面分析和代码说明。第六章是结束语。总结论文所做的主要工作及取得的研究成果;并对系统和Web服务下一步要做的工作进行了分析。2 相关技术介绍2.1 *ML简介*ML(E*tensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。*ml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言*ML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然*ML占用的空间比二进制数据要占用更多的空间,但*ML极其简单易于掌握和使用。*ML是从1996年开始有其雏形,并向 W3C(全球信息网联盟)提案,而在1998二月发布为W3C的标准(*ML1.0)。 *ML的前身是SGML(The Standard Generalized Markup Language),是自IBM从60年代就开始发展的 GML(Generalized Markup Language)标准化后的名称。*ml的作用主要归纳为:丰富文件(Rich Documents)- 自定文件描述并使其更丰富 属于文件为主的*ML技术应用 标记是用来定义一块数据应该如何呈现 解释数据(Metadata)- 描述其它文件或在线信息 属于数据为主的*ML技术应用 标记是用来说明一块资料的意义 组态档案(Configuration Files)- 描述软件的组态参数2.2ASP.NET简介ASP 是一项微软公司的技术,是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术。 指 Active Server Pages(动态服务器页面) ,运行于 IIS 之中的程序 。ASP.net是把基于通用语言的程序在服务器上运行。不像以前的ASP即时解释程序,而是将程序在服务器端首次运行时进行编译,这样的执行效果,当然比一条一条的解释强很多。ASP.net构架是可以用Microsoft(R)公司最新的产品 Visual S开发环境进行开发,WYSIWYG(What You See Is What You Get所见即为所得)的编辑。这些仅是ASP.net强大化软件支持的一小部分。因为ASP.net是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上(笔者到现在为止只知道它只能用在Windows 2000 Server上)。通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到ASP.net的Web应用中。ASP.net同时也是language-independent语言独立化的,所以,你可以选择一种最适合你的语言来编写你的程序,或者把你的程序用很多种语言来写,现在已经支持的有C*(C+和Java的结合体),VB,Jscript。将来,这样的多种程序语言协同工作的能力保护您现在的基于+开发的程序,能够完整的移植向ASP.net。ASP.NET一般分为两种开发语言,VB.NET和C*,C*相对比较常用,因为是.NET独有的语言,VB.NET则为以前VB程序设计,适合于以前VB程序员,如果新接触.NET,没有其他开发语言经验,建议直接学习C*。2.3 Web服务简介Web服务(Web Service)是基于*ML和HTTPS的一种服务,其通信协议主要基于SOAP,服务的描述通过WSDL,通过UDDI来发现和获得服务的元数据。Web 服务是一种新的重要的应用程序。Web 服务是一段可以用 *ML 发现、描述和访问的代码。在这一领域有许多活动,但有三种主要的用于 Web 服务的 *ML 标准:SOAP:最初是简单对象访问协议(Simple Object Access Protocol),SOAP 定义一个 *ML 文档格式,该格式描述如何调用一段远程代码的方法。我的应用程序创建一个描述我希望调用的方法的 *ML 文档,并传递给它所有必需的参数,然后应用程序通过网络将该 *ML 文档发送给那段代码。代码接收 *ML 文档、解释它、调用我请求的方法,然后发回一个描述结果的 *ML 文档。SOAP 规*版本 1.1 位于 w3.org/TR/SOAP/。请访问 w3.org/TR/ 以了解 W3C 中 SOAP 相关的所有活动。 WSDL:Web 服务描述语言(Web Services Description Language)是一个描述 Web 服务的 *ML 词汇表。编写一段接收 WSDL 文档然后调用其以前从未用过的 Web 服务的代码,这是可能的。WSDL 文件中的信息定义 Web 服务的名称、它的方法的名称、这些方法的参数和其它详细信息。您可以在 w3.org/TR/wsdl(结尾没有斜杠符号)找到最新的 WSDL 规*。 UDDI:统一描述、发现和集成(Universal Description, Discovery, and Integration)协议向 Web 服务注册中心定义 SOAP 接口。如果您有一段代码希望作为 Web 服务部署,UDDI 规*定义如何将您的服务描述添加至注册中心。如果您在寻找一段提供*种功能的代码,UDDI 规*定义如何查询注册中心以找到您想要的信息。有关 UDDI 的所有资料来源都可以在 uddi.org 找到。3 系统需求分析3.1系统可行性分析系统的可行性分析主要是技术可行性,经济可行性,操作可行性。技术条件可行性:Internet的发展给我们的教育更加现代化,几乎所有的都使用到了留言内容,用它来记录访问用户对的建议,以帮助更好的发展。目前在呈几何增长的因特网中,有相当一部分仍然固守“静态”,这无形中已经大大落后与时代的步伐。当用户浏览器通过因特网向web服务器请求提供网页内容时,服务器仅仅是标准的HTML代码,最多再加上流行的动态图片,产生简单的动画效果。如果维护者需要更新网页的内容时,就必须手动更新所有相关的HTML文档。为了不断更新网页内容,必须不断重复制作HTML文档,随着内容和信息量的日益扩增,这个工作量将变的及其庞大。而如今很多都属于动态,其具有较强的交互性,能够根据用户的要求和选择做出动态改变;能够自动更新,即不需要手动更新HTML文档,便会自动生成新的页面,这样大大节省了工作量;因人因时而变,即当不同的时间,不同的人访问同一个网址时会产生不同的页面。经济条件可行性:几乎所有都有留言板块,用它来记录访问用户对的建议,以帮助更好的发展。总体而言,留言系统首页是一个留言窗口,所以要给访问者一个清晰完整的概念,给出基本的提示信息。这种系统实现在线的查看,查找,管理,留言操作,功能强大,方便跨地域操作,扩展能力良好。基于利用计算机网络的巨大潜力、数据信息的理念,从而减少人力、物力及财力上的消耗,完成合理的分配资源。在系统分析和设计阶段,所需要的投入主要是系统和程序的开发费用,它包括软件的移植费用、程序开发费用、技术咨询费用。在系统的实施阶段,主要包括系统调试安装费用,其中包括安装调试软件的一切硬件和软件费用。系统安装需要一定的磨合期,因此需要一定的人员咨询费用。在系统运行阶段所需要的费用主要有培训费、资料费、人员工资、消耗品费用、技术服务性费用。培训费包括与系统有关的一切人员的技术培训和业务咨询费用等。在系统实施后,需要对用户进行培训,使其熟练掌握该系统的使用,并培训系统的维护人员。操作可行性留言系统采用Browser/Server(B/S)结构模式来设计,Microsoft .NET解决方案,是目前比较流行的B/S架构模式的解决方案,技术成熟,以此方案开发的应用系统具有开发周期短,运行稳定,维护简便,投资少等优点。Microsoft .NET应用系统具有界面简洁友好,操作简单等特点。只需简单的计算机基础知识便可充分利用本系统完成毕业设计工作。3.2 系统需求分析该选题以软件工程思想为指导从需求分析,概要设计,详细设计,测试计划,测试用例以及实施各阶段的主要内容和成果,包括系统结构图、业务流程图、数据流程图、功能模块算法流程、界面设计并参考大量图书,电子文档等等。目前在呈几何增长的因特网中,有相当一部分仍然固守“静态”,这无形中已经大大落后与时代的步伐。当用户浏览器通过因特网向web服务器请求提供网页内容时,服务器仅仅是标准的HTML代码,最多再加上流行的动态图片,产生简单的动画效果。如果维护者需要更新网页的内容时,就必须手动更新所有相关的HTML文档。为了不断更新网页内容,必须不断重复制作HTML文档,随着内容和信息量的日益扩增,这个工作量将变的及其庞大。而如今很多都属于动态,其具有较强的交互性,能够根据用户的要求和选择做出动态改变;能够自动更新,即不需要手动更新HTML文档,便会自动生成新的页面,这样大大节省了工作量;因人因时而变,即当不同的时间,不同的人访问同一个网址时会产生不同的页面。 该选题以软件工程思想为指导从需求分析,概要设计,详细设计,测试计划,测试用例以及实施各阶段的主要内容和成果,包括系统结构图、业务流程图、数据流程图、功能模块算法流程、界面设计并参考大量图书,电子文档等等。将采用Web服务和ASP.NET语言编写,完成设计。使用Web服务技术会简化和方便Internet应用的开发和使用,实现真正的网上留言处理与管理。3.3 系统数据流图4 系统设计4.1 系统总体结构4.2 系统详细设计普通用户模块详细设计4.2.2 管理员模块详细设计管理员登录后,包括了系统的大部分管理。其中包括了留言删除管理,留言修改管理,回复留言信息等等。留言删除管理,如图所示:留言修改管理,如图所示:回复留言信息,如图所示:4.3 数据库设计 概念设计根据系统功能的要求,在线留言系统可以分为两大模块:留言系统基本功能模块,管理功能模块。 逻辑设计根据系统功能设计的要求以及功能模块的划分,下面列出留言系统的各个组成部分的数据项和数据结构。对于留言系统基本功能模块,可以列出以下数据项和数据结构:留言信息:标题,内容,作者,性别,主页,信箱,QQ,IP,回复,时间,头像IP地址表:ip1,ip2,国家,城市对于留言系统管理功能模块,它操作的数据较多,所以分为不同功能来给出表格:回复功能:留言信息表删除功能:留言信息表登录功能:web.config文件设置站点功能:web.config文件设置CSS功能:CSS文件根据数据库需求分析,建立以下的表 视图设计根据数据库需求分析,建立以下的表5 系统实现5 系统实现5.1 系统数据库连接实现数据库连接实现主要由以下代码来实现:Dim conn As OleDbConnection, d As OleDbmand conn = New OleDbConnection(Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & Server.MapPath(ConfigurationSettings.AppSettings(数据库) d = New OleDbmand(Insert into 留言(标题,作者,内容,性别,主页,信箱,QQ,IP,头像) Values(p1,p2,p3,p4,p5,p6,p7,p8,p9), conn)5.2 系统前台页面的实现 用户控件用户控件是ASP.NET中一个非常重要的概念,它可以极大的提高代码重用,减少量。留言系统主要使用了3个控件,分别是系统信息控件,公告栏控件和底部控件提示信息控件。功能选择控件位于页面的左侧,实际上就是一个功能选择页面,主要由以下代码来实现: a title=返回站点首页 href=首页 留言 A title= href=log.asp* %IF Session(name) THENResponse.write(系统环境设置)ELSEResponse.write(系统环境设置)END IF%IF Session(name) THENResponse.write(CSS样式设置)ELSEResponse.write(CSS样式设置)END IFDim ds As DataSet,i As Integerds=New DataSetTryds.Read*ml(Server.MapPath(list.*ml)For i = 0 To ds.Tables(0).Rows.Count-1Response.write( )Response.write(+ds.Tables(0).Rows(i)(1)+)Ne*tCatchEnd Tryds.Reset()% 留言簿信息% ds.Read*ml(Server.MapPath(data/count.*ml) Response.write( 今日留言: + ds.Tables(0).Rows(0)(0)+) Response.write( 今日来宾: + ds.Tables(0).Rows(0)(1)+) Response.write( 留言总数: + ds.Tables(0).Rows(0)(2)+) Response.write( 来宾总数: + ds.Tables(0).Rows(0)(3)+) ds.Clear() ds.Dispose()% 站长: 信箱:a href=mailto: title=信箱地址:通过以上代码的实现,给出对应的实现界面:公告栏用户控件位于页面的上方,实际上是个一段不断移动的文本,这段文本是从web.config文件中读取的,所以可以随时修改这段文本,主要由以下代码来实现: 公告栏:通过以上代码的实现,给出对应的实现界面:底部空间是留言系统的低端嵌入控件,它的功能是显示留言系统的和其他的信息,所以代码比较简单,主要由以下代码来实现:占胜留言簿所有通过以上代码的实现,给出对应的实现界面: 留言系统首页留言系统首页页面是用户登录系统后首先接触到的所以包括了所有用户能够使用的信息,这个页面主要包括以下几个部分:(1)左侧的功能提示信息(2)关于留言系统的统计信息(3)最近的留言,分页显示(4)公告栏(5)提示主要由以下代码来实现: Private Function Address(ByVal IP As String) If IsNumeric(Left(IP, 2) = True Then Dim conn As OleDbConnection, d As OleDbmand, dr As OleDbDataReader Dim str1 As String, str2 As String, str3 As String, str4 As String, num As long If IP = 127.0.0.1 Then IP = 192.168.0.1 IF Left(IP,8)=192.168. THENAddress = 内部局域网E*IT Function END IF str1 = Left(IP, InStr(IP, .) - 1) IP = Mid(IP, InStr(IP, .) + 1) str2 = Left(IP, InStr(IP, .) - 1) IP = Mid(IP, InStr(IP, .) + 1) str3 = Left(IP, InStr(IP, .) - 1) str4 = Mid(IP, InStr(IP, .) + 1) IF isNumeric(str1)=False or isNumeric(str2)=False or isNumeric(str3)=False or isNumeric(str4)=False THENAddress = 未知E*IT Function END IF num = Int(str1) * 256 * 256 * 256 + Int(str2) * 256 * 256 + Int(str3) * 256 + Int(str4) - 1 conn = New OleDbConnection(Provider=Microsoft.Jet.Oledb.4.0;Data Source= & Server.MapPath(ConfigurationSettings.AppSettings(数据库) d = New OleDbmand(Select Top 1 country,city From 鉴定Where ip1 = + num.ToString, conn) d.connection.open() dr = d.E*ecuteReader If dr.Read ThenDim temStr as StringtemStr=dr(0) & dr(1)IF temStr.Length17 THENAddress = + Left(temStr,15) + .ELSEAddress = temStr END IF Else Address = 亚洲 End If dr.Close() d.connection.close() d.Dispose() conn.Close() conn.Dispose() Else Address = 未知 End If End Function Private Sub count() Dim cie As HttpCookie, newguest As Boolean = False cie = Request.cookies(rwfj) If cie is nothing Thennewguest = TrueElseIf cie(name) guest Then newguest = TrueEnd If Dim ds As DataSet ds = New DataSet() ds.Read*ml(Server.MapPath(data/count.*ml) If DateValue(ds.Tables(0).Rows(0)(4) DateValue(Date.Now) Thends.Tables(0).Rows(0)(0) = 0 ds.Tables(0).Rows(0)(1) = 0 End If If newguest = True Then cie = New HttpCookie(rwfj) cie.Values.Add(name, guest) Response.AppendCookie(cie) ds.Tables(0).Rows(0)(1) = CInt(ds.Tables(0).Rows(0)(1) + 1 ds.Tables(0).Rows(0)(3) = CInt(ds.Tables(0).Rows(0)(3) + 1 End If ds.Tables(0).Rows(0)(4) = Date.Now ds.AcceptChanges() ds.Write*ml(Server.MapPath(data/count.*ml) ds.Clear() ds.Dispose() End Sub % Dim i As Integer, page As String, pagesize As Integer, nowpage As Integer, AllRecord As Integer Dim allpage As Integer i = 0 page = Request.QueryString(page) If page = Or IsNumeric(page) = False Then nowpage = 1 Else nowpage = Int(page) End If pagesize = ConfigurationSettings.AppSettings(每页留言数量) Dim conn As OleDbConnection, da As OleDbDataAdapter, ds As DataSet, sql As String Dim d As OleDbmand, dr As OleDbDataReader sql = Select Count(*) From 留言 conn = New OleDbConnection(Provider=Microsoft.Jet.Oledb.4.0;Data Source= & Server.MapPath(ConfigurationSettings.AppSettings(数据库) d = New OleDbmand(sql, conn) d.Connection.Open() dr = d.E*ecuteReader If dr.Read Then AllRecord = dr(0) dr.Close() d.Connection.Close() d.Dispose() if allrecord=0 THEN Response.write(当前还没有留言) else If AllRecord Mod pagesize = 0 Thenallpage = AllRecord pagesize Else allpage = AllRecord pagesize + 1 End If if nowpageallpage then nowpage=allpage sql=Select * From 留言Order By 时间DESC da = New OleDbDataAdapter(sql, conn) ds=New dataset da.Fill(ds, (nowpage - 1) * pagesize, pagesize, ly) For i = 0 To ds.Tables(0).Rows.Count-1Dim temTime as Date,temStr as String,IP as stringtemTime=ds.Tables(0).Rows(i)(10)temStr=Year(temTime).ToString+年+Month(temTime).ToString+月+Day(temTime).ToString+日+Hour(temTime).ToString+时+Minute(temTime).ToString+分IF Ucase(ConfigurationSettings.appSettings(允许查看IP)=NO AND Session(name)ConfigurationSettings.appSettings(站长) THENIP=(已设置*)ELSEIP=ds.Tables(0).Rows(i)(8)+Address(ds.Tables(0).Rows(i)(8)+END IF%TABLE id=Table3 style=MARGIN-BOTTOM: 5p* cellSpacing=0 cellPadding=1 width=530 bgColor= border=0 FONT color=TD style=BACKGROUND-P
展开阅读全文