20编程21编程爱好者22vb编程,23数控编程24编程中国25编程论坛26编程语言27游戏编程28编程软件下载29编程工具30socket编程31网络编程32编程器33c语言编程,34flash编程35编程软件36数控车床编程37windows编程38编程入门,39windows核心编程40cnc编程41vc 编程,42linux 编程43asp编程44vb编程实例45串口编程46手机编程47编程教程48plc编程,49单片机编程50vc 网络编程51excel编程,52unix网络编程53编程学习,54编程之道55数据库编程56单片机编程器57黑客编程58计算机编程59网页编程60嵌入式编程,61编程高手箴言62flash编程教程63vfp编程64windows网络编程,65编程基础66c语言编程实例67c语言编程软件68vf编程69shell编程,70vb数据库编程71matlab编程,72c语言编程工具73编程思想74php编程,75c编程76jsp编程77电脑编程技巧与维护,78三菱plc编程软件,79vb编程软件下载80pb编程81数控编程实例82asp编程工具,83c专家编程,84win32编程85数控铣床编程86asp.net高级编程,,87vc 数据库编程88vba编程89jsp高级编程90c语言编程宝典,91unix环境高级编程;92编程珠玑93delphi编程94delphi数据库编程95vb编程教程96单片机编程软件
1编程爱好者网站2vb编程网站,3电子商务网站编程4游戏编程网站5最大的编程网站6网站编程软件7可编程逻辑中文网站8网站 编程 语言9网站编程 数据库,10jsp网站编程11asp编程网站12网站编程电子书13好的编程网站,14c语言编程网站15编程门户网站16如何学习网站编程17百度网站的编程语言18vb编程乐园网站指南19wince 编程网站
1asp.net2asp教程,3asp源码4asp免费空间5asp论坛6asp代码7asp源代码8asp下载,9asp源码下载10asp木马11asp.net教程12asp学习13什么是asp14asp空间,15admin.asp dir16asp程序17asp教程下载18asp.net 2.019asp整站程序,20asp文件21十天学会asp22asp入门23asp源程序24asp实例25asp函数26asp服务器27asp.net论坛28asp id,29asp整站下载30asp网站31asp论坛下载32asp源代码下载,33asp整站34asp技术35asp access36asp.net源码37asp简介38asp免费空间申请39asp.net下载,40asp留言板41asp sql42asp 数据库43asp站长助手44asp连接数据库45asp留言本,46asp.net教程下载47asp分页48asp格式49asp论坛程序50asp.net源代码51asp软件52asp模板53asp session54asp语法,55如何打开asp文件56asp解密57asp编程58asp.net实例,59asp实例教程60asp程序下载61asp计数器62asp.net入门,63asp运行环境64asp基础教程65apache asp66asp入门教程,67asp编辑器68asp组件69asp连接access70conn.asp71asp书籍,72asp论文73asp工具74asp文件上传75asp探针76asp原代码下载77asp include78user wantpws.asp79asp split,80asp fso81asp网页制作82printpage.asp83什么是asp.net,84index.asp85asp.net datagrid86asp基础87asp replace88asp代码下载89asp新闻系统
1php论坛2免费php空间,3php下载4php源码5php mysql6php教程7php文件8php空间9apache php10什么是php11apache php mysql12php学习13php论坛下载14iis php15php cms16php入门17php blog18php手册,19php代码20php整站程序21php session22php安装23php源码下载24php配置25php源代码26php cookie27php网站28iis php mysql29php编程30php留言板31php探针32php注入33php.ini34php运行环境35index.php36php教程下载,37php论坛程序38php 文件上传39php服务器40php环境41php 函数;42php格式43php编辑器44php editor45如何打开php文件46php access47十天学会php48php模板49php xml;50php程序51php留言本52php文件怎么打开53php技术54ajax php55php简介56php注入工具57打开php文件58php语言59php mail;60php软件;61免费php mysql空间62php self63php 数组.64php分页,65php nuke66php阅读器67免费php空间申请68国外免费php空间69php程序下载70php 正则表达式71asp php,72php网站管理系统73php程序设计74php是什么文件75php 实例76php 开发工具77php 验证码78php官方网站79php学习资料
1jsp教程2jsp源码3jsp论坛4什么是jsp5jsp源代码6jsp空间7jsp学习8jsp文件9jsp mysql,10jsp入门11jsp连接数据库12jsp技术13eclipse jsp14jsp分页15jsp源代码下载16jsp access17jsp教程下载18jsp开发工具,19jsp代码20jsp简介21jsp环境配置22jsp连接mysql,23jsp实例24免费jsp空间25jsp配置26jsp session,27jsp运行环境28jsp下载29jsp网站30jsp include31jsp编程,32jsp介绍33jsp 数据库34jsp设计35jsp servlet36jsp标签37jsp应用开发详解38jsp 中文39jsp oracle40jsp论文41jsp 文件上传,42jsp高级编程43jsp源码下载44jsp 乱码45jsp开发46jsp分页显示47jsp sql48jsp连接sql49jsp 页面跳转50jsp request51eclipse开发jsp52iis jsp53jsp开发环境54jsp sqlserver,55jsp cookie56jsp服务器57jsp连接access58jsp毕业论文59jsp新闻发布系统60jsp留言板61jsp 电子书62jsp forward63jsp中文网64tomcat jsp65jsp语法66jsp留言本67asp jsp,68jsp import69jsp源程序70jsp基础71jsp毕业设计,72jsp格式73jsp 中文乱码,74jsp开发实例75jsp书籍76jsp论坛下载77jsp 上传,78jsp计数器79jsp 注释80jsp电子教程81jsp 保存用户名密码,82jsp的优点83jsp软件下载84jsp语言85jsp代码下载86jsp blog87jsp 打印88jsp手册

思顿科技-专业网站制作指南、网页设计制作教程、免费网页制作素材下载、免费学习网页制作指南,专业网站建设服务、网站制做指南、免费网页制作指南、网页制作服务、免费空间域名服务、
首页
网页教程
网页素材
收录查询
工具下载
网站欣赏
网站论坛
免费博客
建站服务

ASP.NET+XML打造留言薄
你当前的位置:网站制作指南 --> 技术文档全集 (www.STasp.com)

  一.概述:

  留言簿是网站的一个重要组成部分,是访问者发表意见的场所,也是网站管理员了解网站基本运行情况的有力工具,所以留言簿在现在的网站中扮演了十分重要的角色。

  不过在以前开发一个留言簿并不是一件容易的事,开发者的工作量往往会很大。而现在随着微软推出VS.NET,相应的技术也推陈出新。特别是XML技术在.NET FRAMEWORK中的广泛运用,使得整个.NET构架具有十分优越的基础。而ASP.NET中推出的崭新的编程模型更使得开发WEB应用程序变得非常容易。本文就结合ASP.NET技术和XML技术的优点向大家介绍如何打造一个属于自己的留言簿。

  二.实现方法:

  一个基本的留言簿应至少包括两个功能:接受用户输入的信息并保存该信息到后台数据库;显示用户输入的信息。用户输入的信息一般包括用户名、EMAIL地址、QQ号码、用户主页、留言信息等,这些信息通常是保存在后台数据库的某个表中的,不过本文要运用一个XML文件来存储这些信息。显示用户输入的信息时一般得把所有的信息都显示出来,这里的方法就是从XML文件中读取数据并运用XSLT技术对其进行格式转换,最后以HTML的形式显示在浏览器中。

  这样,我们的留言簿就需要两个WEB页面,一个用于接受用户的输入信息,另一个用于显示用户已经输入过的信息。而存储信息的XML文件(GUESTBOOK.XML)则需具有如下的结构:

<XML VERSION="1.0" ENCODING="GB2312">
<GUESTBOOK>
<GUEST>
<NAME>令狐冲</NAME>
<EMAIL>DOOSE@ETANG.COM</EMAIL>
<QQ>10102350</QQ>
<HOMEPAGE>WWW.DOOSE.COM</HOMEPAGE>
<COMMENT>本留言簿由"令狐冲"创建,希望你能喜欢哦:)要知道如何创建一个属于自己的留言簿,那么就请仔细阅读《运用ASP.NET和XML技术打造留言簿》一文!</COMMENT>
</GUEST>
</GUESTBOOK>

  下面我们先来创建用于接受用户输入信息的WEB页面-GUESTBOOK.ASPX。根据前面所提的基本要求,该WEB页面包括了以下几个部分:留言簿标题、"用户名:"标签及输入框、"EMAIL地址:"标签及输入框、"QQ号码:"标签及输入框、"个人主页:"标签及输入框、"留言信息:"标签及输入框、一个"确定"按钮、一个"重置"按钮、一个"查看留言簿"按钮,同时该页面还包括了两个验证按钮,分别用于验证用户名以及EMAIL地址是否为空,若为空,则提醒用户输入。同时,为使留言簿具有良好的用户界面,我运用了表格进行页面布置,这样留言簿中的各个成分就能有条有理,层次分明了。有关该WEB页面的详细代码请参考文后附带的源代码,这里就不给出了。页面布置的图示如下:

图1

  完成了该WEB页面的布置,我们仅仅是完成了一部分的工作,到此为止我们并没有进行过真正的编码。我想大家对ASP.NET中的代码后置技术肯定是了解或熟悉的,它将WEB页面的布置工作和后端的编码工作区分开来,达到了良好的分离效果。下面我们就为该WEB页面中的三个按钮分别编写消息相应函数:

PRIVATE VOID BTNOK_CLICK(OBJECT SENDER, SYSTEM.EVENTARGS E)
{
SAVEXMLDATA();

NAME.TEXT = "";
EMAIL.TEXT = "";
QQ.TEXT = "";
HOMEPAGE.TEXT = "";
COMMENT.TEXT = "";
}

PRIVATE VOID BTNRESET_CLICK(OBJECT SENDER, SYSTEM.EVENTARGS E)
{
NAME.TEXT = "";
EMAIL.TEXT = "";
QQ.TEXT = "";
HOMEPAGE.TEXT = "";
COMMENT.TEXT = "";
}

PRIVATE VOID BTNVIEW_CLICK(OBJECT SENDER, SYSTEM.EVENTARGS E)
{
// 显示所有用户的留言信息
RESPONSE.REDIRECT( "VIEWGUESTBOOK.ASPX" );
}

  其中,第一个按钮是最重要的,它能将用户的输入信息存储到XML文件中,调用的方法就是SAVEXMLDATA();而第二个按钮仅仅完成文本框的重置清空工作;第三个按钮的作用是运用另一个WEB页面显示所有的用户输入信息。同时,第一个按钮在成功保存信息后也会将浏览器导向到显示所有用户输入信息的页面。
  下面我们来详细分析一下SAVEXMLDATA()方法,其实现如下:

PRIVATE VOID SAVEXMLDATA()
{
TRY
{
// 创建一个XMLDOCUMENT对象,用于载入存储信息的XML文件
XMLDOCUMENT XDOC = NEW XMLDOCUMENT();
XDOC.LOAD( SERVER.MAPPATH( "GUESTBOOK.XML" ));

// 创建一个新的GUEST节点并将它添加到根节点下
XMLELEMENT PARENTNODE = XDOC.CREATEELEMENT( "GUEST" );
XDOC.DOCUMENTELEMENT.PREPENDCHILD( PARENTNODE );

// 创建所有用于存储信息的节点
XMLELEMENT NAMENODE = XDOC.CREATEELEMENT( "NAME" );
XMLELEMENT EMAILNODE = XDOC.CREATEELEMENT( "EMAIL" );
XMLELEMENT QQNODE = XDOC.CREATEELEMENT( "QQ" );
XMLELEMENT HOMEPAGENODE = XDOC.CREATEELEMENT( "HOMEPAGE" );
XMLELEMENT COMMENTNODE = XDOC.CREATEELEMENT( "COMMENT" );

// 获取文本信息
XMLTEXT NAMETEXT = XDOC.CREATETEXTNODE( NAME.TEXT );
XMLTEXT EMAILTEXT = XDOC.CREATETEXTNODE( EMAIL.TEXT );
XMLTEXT QQTEXT = XDOC.CREATETEXTNODE( QQ.TEXT );
XMLTEXT HOMEPAGETEXT = XDOC.CREATETEXTNODE( HOMEPAGE.TEXT );
XMLTEXT COMMENTTEXT = XDOC.CREATETEXTNODE( COMMENT.TEXT );

// 将上面创建的各个存储信息的节点添加到GUEST节点下但并不包含最终的值
PARENTNODE.APPENDCHILD( NAMENODE );
PARENTNODE.APPENDCHILD( EMAILNODE );
PARENTNODE.APPENDCHILD( QQNODE );
PARENTNODE.APPENDCHILD( HOMEPAGENODE );
PARENTNODE.APPENDCHILD( COMMENTNODE );

// 将上面获取的文本信息添加到与之相对应的节点中
NAMENODE.APPENDCHILD( NAMETEXT );
EMAILNODE.APPENDCHILD( EMAILTEXT );
QQNODE.APPENDCHILD( QQTEXT );
HOMEPAGENODE.APPENDCHILD( HOMEPAGETEXT );
COMMENTNODE.APPENDCHILD( COMMENTTEXT );

// 保存存储信息的XML文件
XDOC.SAVE( SERVER.MAPPATH( "GUESTBOOK.XML" ));

// 显示所有用户的留言信息
RESPONSE.REDIRECT( "VIEWGUESTBOOK.ASPX" );
}
CATCH( EXCEPTION E ) {}
}

  该方法主要运用了XMLDOCUMENT类、XMLELEMENT类以及XMLTEXT类等,这些类都是包含在SYSTEM.XML命名空间中的,所以请在代码文件的开头处添加USING SYSTEM.XML的语句。该方法运用了一个TRY-CATCH语句块,在TRY部分首先通过创建一个XMLDOCUMENT对象来载入XML文件,然后创建根节点的儿子-GUEST节点并在GUEST节点下添加存储信息所必须的五个子节点。所有这些子节点都是XMLELEMENT对象,它们是通过XMLDOCUMENT对象的CREATEELEMENT()方法来获取的。同时,XMLDOCUMENT对象还通过CREATETEXTNODE()方法来获取文本信息并在后面将其添加到相对应的节点中。在合理的添加GUEST节点及其子节点以及文本信息后,XMLDOCUMENT对象通过SAVE()方法将用户输入的信息保存到XML文件中。最后,浏览器会导向到显示所有用户输入信息的页面。这样,该WEB页面运行的效果如图2所示:

图2

  下面我们来创建用于显示所有用户输入信息的页面-VIEWGUESTBOOK.ASPX。在该WEB页面中,我们要运用到XSLT技术,它能将前面创建的XML文件中的数据以HTML的形式显示出来。由于是运用XSLT技术显示用户输入信息的,所以在设计该WEB页面时我们无需添加任何WEB控件,只要重载该WEB页面的LOAD()方法即可。

PRIVATE VOID PAGE_LOAD(OBJECT SENDER, SYSTEM.EVENTARGS E)
{
// 创建一个XMLDOCUMENT对象以载入存储信息的XML文件
XMLDOCUMENT XDOC = NEW XMLDOCUMENT();
XDOC.LOAD( SERVER.MAPPATH( "GUESTBOOK.XML" ));

// 创建一个XSLTRANSFORM对象并导入XSL文件
XSLTRANSFORM XSLT = NEW XSLTRANSFORM();
XSLT.LOAD( SERVER.MAPPATH( "GUESTBOOK.XSL" ));

STRING XMLQUERY = "//GUESTBOOK";
XMLNODELIST NODELIST = XDOC.DOCUMENTELEMENT.SELECTNODES( XMLQUERY );

MEMORYSTREAM MS = NEW MEMORYSTREAM();
XSLT.TRANSFORM( XDOC, NULL, MS );
MS.SEEK( 0, SEEKORIGIN.BEGIN );

STREAMREADER SR = NEW STREAMREADER( MS );

// 显示输出结果
RESPONSE.WRITE( SR.READTOEND() );
}

  该方法首先创建一个XMLDOCUMENT对象用于载入前面创建的XML数据文件,之后创建一个XSLTRANSFORM对象并导入相应的XSL文件。通过该XSL文件中的内容它能将原来的XML文件中的数据格式化为HTML的形式并显示在浏览器中。因为其中运用到了XSLT转换,所以我们还得在代码文件的开头处添加USING SYSTEM.XML.XSL的语句。

  下面便是XSL文件的源代码,其中最重要的部分是<XSL:TEMPLATE MATCH="NAME">……</XSL:TEMPLATE>一块。

<XSL:STYLESHEET XMLNS:XSL="HTTP://WWW.W3.ORG/1999/XSL/TRANSFORM" VERSION="1.0">
<XSL:TEMPLATE MATCH="/">
<TABLE BORDER="1" STYLE="BORDER-COLLAPSE: COLLAPSE" BORDERCOLOR="TEAL" ALIGN="CENTER" WIDTH="505" HEIGHT="34">
<TR>
<TD VALIGN="MIDDLE" ALIGN="CENTER" BGCOLOR="TEAL" COLSPAN="2" WIDTH="505" HEIGHT="85">
<FONT STYLE="COLOR:WHITE;BACKGROUND-COLOR:TEAL;FONT-FAMILY:华文行楷;FONT-SIZE:X-LARGE;FONT-WEIGHT:BOLD;">欢迎访问"令狐冲"的留言簿!</FONT>
</TD>
</TR>
<TR><TD WIDTH="505" HEIGHT="26" ALIGN="LEFT" COLSPAN="2"></TD></TR>
<XSL:FOR-EACH SELECT="//GUEST">
<XSL:APPLY-TEMPLATES SELECT="NAME"/>
</XSL:FOR-EACH>
<TR>
<TD VALIGN="MIDDLE" ALIGN="CENTER" COLSPAN="2" WIDTH="505">
<FONT>
本留言簿由<A HREF="MAILTO:0024108@FUDAN.EDU.CN">王凯明</A>开发! </FONT>
</TD>
</TR>
</TABLE>
</XSL:TEMPLATE>
<XSL:TEMPLATE MATCH="NAME">
<TR>
<TD WIDTH="95" HEIGHT="26" ALIGN="RIGHT">
<FONT>用户名:</FONT>
</TD>
<TD WIDTH="400" HEIGHT="26" VALIGN="MIDDLE" ALIGN="LEFT">
<FONT><XSL:VALUE-OF SELECT='.'/></FONT>
</TD>
</TR>
<TR>
<TD WIDTH="95" HEIGHT="26" ALIGN="RIGHT" BGCOLOR="E0E0E0">
<FONT>EMAIL地址:</FONT>
</TD>
<TD WIDTH="400" HEIGHT="26" VALIGN="MIDDLE" ALIGN="LEFT" BGCOLOR="#E0E0E0">
<FONT><A HREF="MAILTO:{../EMAIL}"><XSL:APPLY-TEMPLATES SELECT="../EMAIL"/></A></FONT>
</TD>
</TR>
<TR>
<TD WIDTH="95" HEIGHT="26" ALIGN="RIGHT">
<FONT>QQ号码:</FONT>
</TD>
<TD WIDTH="400" HEIGHT="26" VALIGN="MIDDLE" ALIGN="LEFT">
<FONT><XSL:APPLY-TEMPLATES SELECT="../QQ"/></FONT>
</TD>
</TR>
<TR>
<TD WIDTH="95" HEIGHT="26" ALIGN="RIGHT" BGCOLOR="#E0E0E0">
<FONT>个人主页:</FONT>
</TD>
<TD WIDTH="400" HEIGHT="26" VALIGN="MIDDLE" ALIGN="LEFT" BGCOLOR="#E0E0E0">
<FONT><A HREF="HTTP://{../HOMEPAGE}" TARGET="_BLANK"><XSL:APPLY-TEMPLATES SELECT="../HOMEPAGE"/></A></FONT>
</TD>
</TR>
<TR>
<TD WIDTH="95" HEIGHT="26" VALIGN="TOP" ALIGN="RIGHT">
<FONT>留言信息:</FONT>
</TD>
<TD WIDTH="400" HEIGHT="26" VALIGN="TOP" ALIGN="LEFT">
<FONT><XSL:APPLY-TEMPLATES SELECT="../COMMENT"/></FONT>
</TD>
</TR>
<TR><TD WIDTH="505" HEIGHT="26" ALIGN="LEFT" COLSPAN="2"></TD></TR>
</XSL:TEMPLATE>
</XSL:STYLESHEET>

  这样,当用户点击"查看留言簿"按钮或是成功输入信息后浏览器便导向到该显示所有用户输入信息的WEB页面,其运行效果图示如下:

图3

  三.总结:

  这样,一个具有基本功能的留言簿就完成了,从中我们可以体会到运用ASP.NET技术开发WEB应用程序是相当容易的,同时在结合了XML技术之后,ASP.NET可以变得更加强大。还有文章中介绍的XSLT技术是非常有用的,你可以参考其它相关的更多资料以使它成为你开发过程中的一个有力工具。

 
| 关于我们 | 联系我们 | 业务合作 | 友情链接 | 网站地图 |
版权所有©思顿科技-专业网站制作指南2004-2006 在线技术支持- QQ:63127313