基于WEB的校园新闻发布系统设计与实现
2021-06-28李宗毅
李宗毅
摘要:该文针对传统新闻发布系统存在的问题,设计并实现了基于Web的新闻发布系统。根据动态网页技术的工作原理,该新闻发布系统的开发以VisualStudio作为平台,使用VB.NET网络程序设计语言、SQL Server数据库技术,开发出基于Web的新闻发布系统。新系统的研究开发对实际工作有实际意义,能大大提高信息传播的效率,保证新闻的准确性和时效性。
关键词:新闻发布系统;B/S;VB.NET;网页设计;数据库
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2021)10-0087-03
1 引言
部分学校所使用的新闻发布系统是静态网站,随着信息发布量的增加,问题日益突出:信息发布的过程烦琐,不支持动态信息查询,费时费力,时效性难以达到。学校遇到的问题通过基于WEB的新闻发布系统就能解决。动态网页的工作原理:客户端通过浏览器URL地址的形式向服务器发出访问Web网页的请求,服务器收到请求后查询数据库找到内容,编译程序代码,发送网页到客户端。
2 系统开发理论基础
笔者实现新闻发布系统采用基于数据库的方法,该方法优点在于系统维护方便。系统架构为B/S架构,客户借助浏览器就能够轻松地获取网上由多种Web 服务器生成的各种各样的数据资源[1]。系统模型使用三层架构模型开发。三层架构对易变、核心的业务逻辑以组件的形式加以封装,在逻辑上将应用分成独立的三层:用户表示层、应用逻辑层、数据访问层,三层间的逻辑划分明确,使各层间的耦合性降到最低,架构具有较好的灵活性、易维护性和可重用性[2]。系统的表现层使用html、css+div布局方法,该方法很好地解决了表现层与其他层的分离。数据层使用sqlserver,该数据库性能强,满足大的并发访问量。程序设计采用ASP.NET,ASP.NET是微软公司推出的编程框架,兼容主流的编程语言。整个系统使用VisualStudio作为开发工具。
3系统功能设计
在使用动态新闻发布系统的解决方案下,将系统分解为后台、前台两部分,功能结构设计如图1所示。
4数据库设计
对于新闻发布系统,其核心活动是新闻信息(包含新闻、文件、视频、通知),普通管理员与新闻信息是通过编辑发表产生联系的,访客与新闻信息是通过查询访问产生联系的。其次系统管理员和普通管理员是通过授权产生联系。因此,此系统E-R图如图2。
本系统采用SQL Server数据库系统。首先,在站点根目录建立app_data文件夹,用于存放数据库。后面很多程序页面用到的|DataDirectory| 就是指app_data这个目录,该目录是专门用来放数据库的,即使知道数据库文件具体路径也无法下载。其次,新建一个数据库将它命名为KFScode。最后,依据各实体的基本属性,在该数据库中创建数据表。重要数据表如下所示。
5 详细设计与实现
5.1自定义控件程序设计
ASP.NET提供的服务器控件具有十分强大的功能,但是在实际工作中,会遇到更复杂的问题。自定义控件是一项十分灵活的新兴技术,具有可编程性和可复用性[3]。为了解决这个问题,可以编写符合自己需求的控件。系统所设计的用户控件为:导航条header.ascx、底部信息条Footer.ascx、站内搜索search.ascx、用户登录控件login.ascx。这里以用户登录控件为例介绍,用户登录控件用于用户登录和管理员登录。系统登录流程为:1)验证登录;2)查询相关权限;3)进入系统并获得相应菜单[4]。这里用到的数据表是admin数据表,界面设计上用到两个文本框、一个按钮,一个标签控件。当用户点击确定按钮后,文本框接收的用户名和密码会经过哈希算法加密,通过session存储数据,验证登录。如果用户名不在admin数据表中或密码不正确,则无法登录。如果验证通过,则进入下个环节,判断用户权限,依据权限进入不同的管理权限页面。登录模块算法流程图如图3所示。
5.2新闻发布系统后台管理程序设计
1)普通新闻添加功能
Admin_newsadd.aspx用于實现普通新闻添加功能,该web页面使用到文本框、下拉列表、多行文本框、命令按钮等控件。普通新闻添加模块算法流程图如图5所示。
这里算法的难点是过滤HTML字符。内容写入数据库过程中出现禁用符号(如”<、>、引号、换行符、&等”)会出错,因此需要对禁用符号进行处理。使用replace函数将禁用符号用其它符号代替。实现过滤HTML字符的代码如下:Request.Form("content0").Replace("<", "<").Replace(">",">").Replace(" ", " ").Replace(Chr(34), """).Replace(Chr(13), "
")。发布新闻的作者和时间由系统直接赋值。使用session里存储的登录帐号直接赋值给程序,发文时间使用today() 函数赋值给程序。发布页面使用代码分离技术。在ASP.NET中利用code_behind表单可以使HTML代码与实现其功能的代码分开, 分别放在不同的文件中实现表示层与模型相分离。在这里,Admin_newsadd.aspx是前台代码,Admin_newsadd.aspx.vb是后台代码。提交新闻后会跳转到附件页面,被询问是否添加附件,如“是”,则链接到附件添加页面,否则完成新闻添加并返回管理页面。
2)图片上传程序
在网站中,上传文件到服务器是一个开发中常见的问题。ASP.NET提供了一个FileUpload控件,可以更加简单地完成文件上传的工作。注意,为input元素增加type=”file”的属性,相应地,在form表单中使用这种input的时候,表单的method必须为post方式,同时,表单的enctype也必须为multipart/form-data。本系统中图片上传程序Admin_appendix.aspx就使用到了FileUpload控件。
附件上传程序Admin_appendix.aspx重点解析,重命名上传的文件名称使用了多个函数处理now()函数得出,分别是replace函数、mid函数。即rnfilename = Replace(Replace(Replace(Now(), "-", ""), ":", ""), " ", "")。后面是后缀名的添加rnfilename = rnfilename & Mid(filename, filename.LastIndexOf(".") + 1)。并用到了ASP.NET内部对象server的mappath方法。显示附件信息使用message.innerhtml。
5.3新闻发布系统前台程序设计
1)显示新闻详细内容(shownews.aspx)-三级界面程序设计
显示新闻详细内容页面shownews.aspx用于将具体新闻信息标题、作者、内容、附件等详细信息显示出来。该web页面是新闻发布系统的重点,要求内容的排版整齐、美观,并实际测试页面效果。该web页面实现恢复HTML字符是个难点,它通过下面代码实现<%#Server.Htmldecode(DataBinder.Eval(Container, "DataItem.News_content"))%>。具体实现步骤:新建web窗体命名为shownews.aspx,并存放在网站根目录下。然后在web页面上添加自定义控件、repeater控件、label标签控件。
显示新闻详细内容shownews.aspx使用了代码分离模式,代码位于shownews.aspx.vb文件中。该web页面中多图的显示是个难点,这里用到分支结构、数组、循环结构来实现。具体是定义imgurl()为变长数组,用它来接收多图文件名信息,然后用for循环结构依次将imgurl数组从0到upbound(imgurl)读取出来,最后结合label标签控件依次将每个数组元素显示成图片并换行。最终实现多图显示。
6结束语
本新闻发布系统提高了工作效率。该系统随着校园信息化进程的深入,会和更多校园资源网整合在一起,新闻发布只是最簡单的一个应用,后面还会有成绩管理系统,在线考试系统、学籍管理系统、教师管理系统、图书管理系统、招生就业信息系统等等。当这些信息管理系统整合在一起后,会形成较完整的校园网。信息化系统给校园内外带来的方便将无处不在。
参考文献:
[1] 王瑾.基于B/S模式的高校毕业生就业信息管理系统设计[J].自动化与仪器仪表,2017(12):95-97.
[2] 宗梅,马小平.基于.Net的三层Client/Server结构及其应用[J].计算机工程与设计,2005,26(2):520-522.
[3] 郑秋梅,刘真,苏政,等.基于Android的自定义通用可视化控件[J].计算机系统应用,2017,26(1):222-226.
[4] 廖亮,刘瑛.基于VB.net和SQL Server的权限动态管理的设计与实现[J].电脑知识与技术,2017,13(36):1-3.
【通联编辑:唐一东】