贾薇薇
基于ASP.Net技术实现网站新闻系统
李千
(连云港职业技术学院信息工程学院,江苏连云港222006)
摘要:本文以网站新闻系统的功能设计为例,详细介绍了ASP.NET技术的先进性,代码更易于编写,结构更清晰,程序的可靠性和稳定性有了很大的改善和提高,降低了系统的开发与维护的复杂度。
关键词:ASP.Net;网站;新闻系统
中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)16-21313-02
BasedonASP.NettechnologyNewsSiteSystem
LIQian
(LianyungangTechnicalCollege,InformationEngineeringCollege,Lianyungang222006,China)
Abstract:Thesitefeaturesinformationsystemsdesignedforexample,introducedtheadvancednatureofASP.NETtechnology,codeiseasiertoprepare,structuralclarity,reliabilityandstabilityoftheprocedureshavegreatlyimproveandenhanceandreducetheSystemde-velopmentandmaintenanceofthecomplexity.
Keywords:ASP.Net;Site;newssystem
1概述
传统的网站新闻管理方式有两种,一是静态HTML页面,此方式因效率太低已不多用。二是基于ASP和脚本语言,将动态网页和数据库结合,通过应用程序来处理新闻,这是目前较为流行的做法。但由于ASP本身的局限性使得系统有一些不可克服的缺陷,而采取ASP.NET技术的系统性能上将有很大的改善,其主要表现在以下几方面:
(1)ASP.NET页面只需要一次编译后不需要重新编译,直到该页面被修改或Web应用程序重新启动,这使得在多次访问时速度有了极大的提升;(2)ASP.NET通过ADO.NET提供的DataGrid等数据库元件可以直接和数据库联系;(3)ASP.NET支持应用程序的实时更新。管理员不必关掉网络服务器或者甚至不用停止应用程序的运行就可以更新应用文件;(4)ASP.NET采取"code-behind"方式编写代码使得代码更易于编写,结构更清晰,降低了系统的开发与维护的复杂度和费用。
2系统开发原理
2.1基于ASP.NET技术的系统结构模型
ASP.NET结构是一个三层系统:UI层、业务逻辑层和数据层。UI层负责与用户交互,接收用户的输入并将服务器端传来的数据呈现给客户;业务逻辑层负责接收浏览器传来的请求并将请求传给数据层,同时将请求处理结果发给浏览器。它由Web表单、XMLWeb服务和组件服务组成;数据层是通过ADO.NET操纵数据为事务逻辑层提供数据服务,如存储数据操作结果、返回数据检索结果等。
2.2ADO.NET访问数据库的原理
与数据库相连,ADO.NET提供了3种方式:通过ODBC相连;通过OLEDB相连;直接与SQLServer相连。ASP.NET采取了断开连接方式的数据结构。当浏览器向Web服务器请求网页时,服务器处理这个请求,并将所请求的网页发送给浏览器,然后连接就被断开,直到浏览器发出下一个请求。ADO.NET的另一个创新是引入了数据集(Dataset)。
3系统功能设计
工作流程为:用户登录通过权限判断,普通用户只能浏览、阅读和查询新闻,注册用户除了可以完成普通用户的操作外,还可以进入新闻管理模块进行新闻录入、修改和删除的操作。开发工具采用MicrosoftVisualStudio.NET和DreamWeaver。
4系统详细设计
系统的主要功能是通过几个功能模块来实现的。具体的设计过程如下:
(1)系统登录:该模块负责将用户分为普通用户和注册用户来实现用户权限的管理。
(2)新闻浏览:该模块负责分页列出网站所有新闻的信息,包括标题、类型、来源部门字段及发布日期,每条新闻的标题被做成一个超链接,点击即可跳转页面进行新闻阅读。
(3)新闻阅读:在其他页面中点击标题链接即进入新闻阅读页面。另外,页面其它位置可以动态放置如网站标志logo、页面广告banner等链接图片,实现图文并茂的阅读效果。
(4)新闻查询:该模块提供了新闻查询功能,输入待查找的内容及选定分类信息可以快速地找到符合条件的新闻,并输出查询结果。
(5)新闻管理:该模块负责分页罗列登录的注册用户曾发布过且未删除的新闻信息,用户可以对该条新闻进行删除、修改。
收稿日期:2008-04-17
作者简介:李千(1970-),江苏大学工程硕士,实验师,教师,研究方向,智能信息处理。
1313
(6)新闻录入和修改:注册用户录入一条新闻所需要的内容,包含标题、关键字、类型、来源部门、发布日期等,同时从登录模块得到用户名,这些信息将被写入数据库中保存。
5开发模块及程序实现
5.1构建数据库、表结构
使用SQLserver2000建立以下数据库jxdb,含以下两个数据表:
(1)数据表News:字段说明如下:(用户可以根据需要增减)
(2)数据表Reg:用于记录"注册用户"信息。字段说明如下:
5.2程序实现
(1)登录页面(Login.aspx),系统将所有用户分为注册用户和访客两种:
i.注册用户,有新闻录入权限、管理新闻权限;ii.过客用户,能够进入新闻录入也面,但不具有录入和管理权限。
(2)录入页面(Write.aspx):
"注册用户"录入一条新闻所需要的内容,包含标题、关键字、类型、来源部门、发布日期等,同时从登录页面Login.aspx得到用户名,这些信息将被写入数据库中保存。此页面也被用作编辑状态下的"更新"页面,它将根据取得的Title字段值对页面控件初始化。
(3)浏览页面(View.aspx)
分页列出网站所有新闻的信息,包括标题Title字段、类型Type字段、来源部门Fromwhere字段及发布日期Datetime字段,每条新闻的标题被做成了一个超链接,点击它们将跳转到新闻阅读页面(Read.aspx);此页面还提供了新闻查询功能,输入待查找的内容及选定分类信息可以快速地找到符合条件的新闻,并使用此页面输出查询结果。
(4)管理中心页面(Manage.aspx):分页罗列登录用户曾发布过且未删除的新闻信息,用户可以对该条新闻进行删除、修改。非新闻发布者不具有对该条新闻的处理权限,所以不同用户进入此页面将显示不同的内容。
5.3下面以系统登录页面的编写为例给出主要事件和函数,说明该系统的开发过程。
//IsRegUserOk函数:判断用户是否已经注册+密码是否正确
//建立/打开数据库连接
SqlConnectionconn=newSqlConnection();
conn.ConnectionString="server=(local);uid=sa;pwd=;database=jxdb";
conn.Open();
//建立sql字符串
stringsql="select*fromregwherename='"+name+"'";
SqlDataReaderdr;
SqlCommandcmd=newSqlCommand(sql,conn);
dr=cmd.ExecuteReader();
//保留用户注册与否信息
boolisRegUserExist=dr.Read();
//关闭DataReader
dr.Close();
//取得用户名的密码
//保留用户名+密码同时存在信息
boolisBothExist=drBoth.Read();
//关闭DataReader
drBoth.Close();
conn.Close();
//判断用户是否注册
//判断用户名与密码是否一致
//IsExistNews函数:判断新闻表中是否仍存有此用户发布过的新闻(下转第1355页)
1314计算机工程应用技术
贾薇薇
2)当t=1时,N(n,m,t)=2n-1。
3)当t≥2时,N(n,m,t)=2。
以上结果表明,t=n-m时,即弹性性能最佳的函数除m=n和m=n-1这些特殊情况外太少。弹性性t是衡量抗信息泄露能力大小的一个重要指标,若这样的函数个数太少其应用将受到很大。当t最大时,函数个数很少且都是线性函数,所以并不是t越大越好。所以,不能片面追求高弹性性。密码系统中使用的函数个数不能太少。因此,研究弹性函数的计数是一个很重要的课题。
参考文献:
[1]ChorB,GoldreichO,astadJH,FriedmanJ,RudichS,SmolenskyR.Thebitextractionproblemort-resilientfunctions[A].inProc26thIEEESymp.FoundationsofComputerScience[C].1985,26:396-407.
[2]BennettCH,BrassardG,RobertJM.Privacyamplificationbypublicdiscussion[J].SIAMJ.Comput,1988,17(2):210-229.
[3]RueppelRA.Analysisanddesignofstreamciphers[M].BerlinGermany:Springer-verlag,1996.
[4]Siegenthaler.Correlationimmunityofnonlinearcombiningfunctionsforcryptographic[J].IEEETransInform.Theory,1984.IT-30sept,776-779.
[5]ZHANGXiao-mo,ZHANGYuliang.Cryptographicallyresilientfunctions[J].IEEETransInformTheory,1997,43:1740-1747
[6]ZHANGXiao-mo,ZHANGYu-liang.Onnonlinearresilientfunctions[A].InAdvanceincryptology-Eurocrypt'95C.Berlin:spring–verlag,1996,274-290.
[7]CHENLu-sheng,FUFang-wei.Ontheconstructionsofnewresilientfunctionsfromoldones[J].IEEETransInformTheory,1999,45(6):2077-2082.
[8]温巧燕,杨义先.弹性函数的递归构造[J].北京邮电大学学报,2002,25(2):1007-5321(2002)02-0047-05.
[9]温巧燕,杨义先.弹性函数的计数[J].北京邮电大学学报,2002,25(4):1007-5321,(2002)04-0021-05.
[10]温巧燕,钮心忻,杨义先.现代密码学中的布尔函数.北京:科学出版社,2000.
(上接第1314页)
publicboolIsExistNews()
{
SqlConnectionconn=newSqlConnection();
conn.ConnectionString="server=(local);uid=sa;pwd=;database=jxdb";
conn.Open();
name=TextBoxName.Text.Trim();
//新闻表中是否存在此用户
stringsql="select*fromnewswhereName='"+name+"'";
DataSetds=newDataSet();
SqlDataAdapterda=newSqlDataAdapter(sql,conn);
da.Fill(ds,"list");
//取得新闻行数
intcount=ds.Tables["list"].Rows.Count;
//该用户是否发布过新闻
if(count==0)
returnfalse;
else
returntrue;
conn.Close();
}
最后给出系统后端数据存储方案:两个必需的数据表,一是数据表News包含的字段有:编号、姓名、标题、关键字、内容、类型、来源部门和日期。二是数据表Reg包含的字段有:编号、姓名、密码、所属部门、电子邮箱和电话。利用MicrosoftSQLServer2000建立数据库及其存储过程。
参考文献:
[1]天极网新技术研究室.ASP.NET完全入门[M].重庆出版社,2001.
[2]ScottWorley著.ASP.NET技术内幕[M].王文龙刘湘宁译.人民邮电出版社,2002.
[3]丁晟春,王曰芬.网站新闻发布管理系统的设计与应用[M].现代图书情报技术.2002.
1355