仓酷云

标题: ASP编程:怎样完成真实的静态包括 [打印本页]

作者: 透明    时间: 2015-1-16 22:47
标题: ASP编程:怎样完成真实的静态包括
ASP在国内异常流行,因为国内大多使用的是盗版的Windows和盗版的SQLServer,而ASP+COM+SQLServer实际上也是一种不错的搭配,其性能也不输于PHP+MYSQL,特别是Windows系统和SQLServer都有图形界面,比APACHE和MYSQL易于维护,因此对于不重视知识产权的国家来说也是一种不错的选择。静态1、静态包括文件
本文假定读者已熟习HTML、ASP和ActiveX工具的利用。在这里,我们将利用FileSystemObject和TextStream工具完成“静态包括”功效,即完成静态的include指令。
一般我们所假想的静态包括是:用一个变量保留待包括文件的名字,然后把该变量传进include指令。信任我们当中的很多人都已经想要在本人的ASP使用中利用静态包括的文件,但终极却发明服务器其实不间接撑持静态包括。
起首应当弄分明上面的代码是没法完成静态包括的:
<%
声明用来保留文件名字的变量
DimMyFile

在变量中保留包括文件的名字
MyFile=Request("SomeFileName")

将保留有文件名字的变量传送给include指令
%>
<!--#includefile=<%=MyFile%>-->

下面的代码之以是不克不及完成静态包括,是由于ASP对include指令的处置早于剧本代码。假如我们实行上述代码,体系将提醒毛病说找不到包括文件。
利用包括文件的念头之一是让它作为静态HTML内容的容器,然后经由过程include指令来援用这个文件。包括文件中的静态HTML一般不作修改,好比尺度的页头和页脚。但有些时分我们却必要依据用户的输出或其他前提供应分歧的内容。为了不至于为每种大概的情况分离创立完全的页面,“静态包括”文件这一观点就呈现了。但是,正如下面申明的,外表上看起来最为公道的完成办法实际上是没有效的。
为懂得决这个成绩,我们能够用FileSystemObject工具读进方针包括文件并保留到字符串变量,然后将这个字符串变量拔出到发送给客户扫瞄器的页面。上面这个getFileContents函数匡助完成这个处置历程,它读进参数中指定的文件,然后将其内容作为字符串前往。
<%

把文件名字传送给函数
FunctiongetFileContents(strIncludeFile)
DimobjFSO
DimobjText
DimstrPage

初始化FileSystemObject工具
SetobjFSO=Server.CreateObject("Scripting.FileSystemObject")

翻开文件并把它传送给TextStream工具(objText)。Server工具的
MapPath函数用于取得文件的物理路径
SetobjText=objFSO.OpenTextFile(Server.MapPath(strIncludeFile))

读取并以字符串情势前往文件内容
getFileContents=objText.ReadAll

objText.Close
SetobjText=Nothing
SetobjFSO=Nothing
EndFunction
%>
利用这个函数便可完成静态地包括文件。起首,我们读进主页面(即包括页面结构和一切静态内容的模板文件)并把它保留到字符串变量;然后再读进包括文件并保留为字符串变量;最初,把保留包括文件内容的变量拔出到主页面的内容当中。
2、使用实例
起首我们来看一下模板文件。上面的代码包括了一个HTML正文“<!--INCLUDEFILEHERE-->”,我们将用包括文件的内容来代替这个HTML正文。
<html>
<body>
<h2>接待到访!</h2>
<tablewidth="500"border="1">
<tr>
<td>
<!--INCLUDEFILEHERE-->
</td>
</tr>
</table>
</body>
</html>
上面再来看一下本例所用的几个包括文件。第一个包括文件是默许的包括文件。默许包括文件是一个表单,同意用户选择翻开其他三个包括文件中的个中一个。注重这个表单没有指定“action”属性,这暗示表单将提交给它本人(即从头翻开dynamicin3.asp)。
<!--BEGINDEFAULTINCLUDE-->
<formmethod="post">
<h3>请选择一个您但愿翻开的文件</h3>
<p>
<selectid=cboFilename=cboFile>
<optionvalue="includefile1.inc">文件#1</option>
<optionvalue="includefile2.inc">文件#2</option>
<optionvalue="includefile3.inc">文件#3</option>
</select>
<inputtype="submit"value="Submit">
</p>
</form>
<!--ENDDEFAULTINCLUDE-->
为复杂计,其他三个包括文件的内容都很复杂:
<!--BEGININCLUDEFILE#1-->
<h2style="color:red">文件#1</h2>
<br>
<ahref="dynamicinc3.asp">前往默许页面</a>
<!--ENDINCLUDEFILE#1-->

<!--BEGININCLUDEFILE#2-->
<h2style="color:green">文件#2</h2>
<br>
<ahref="dynamicinc3.asp">前往默许页面</a>
<!--ENDINCLUDEFILE#2-->

<!--BEGININCLUDEFILE#3-->
<h2style="color:blue">文件#3</h2>
<br>
<ahref="dynamicinc3.asp">前往默许页面</a>
<!--ENDINCLUDEFILE#3-->
上面是dynamicinc3.asp页面的代码及其申明。
<%
-------------------------------------------------------------
getFileContents函数放到ASP文件的最后面
-------------------------------------------------------------

声明寄存主页面和包括文件内容的变量
DimstrMain,strInclude

读取主页面的内容并保留到strMain变量
strMain=getFileContents("maintemplate.inc")

反省cboFile选择框是不是已选择。如是,读取所请求的文件
不然,读取默许的包括文件
IfRequest.form("cboFile")=""Then
strInclude=getFileContents("includedefault.inc")
Else
strInclude=getFileContents(Request.form("cboFile"))
EndIf

把符合的包括文件读进到变量strInclude以后
利用Replace函数将它拔出到strMain文件
strMain=replace(strMain,"<!--INCLUDEFILEHERE-->",strInclude)

将了局发送到客户端
Response.WritestrMain

%>
本例可以一般运转,并且从效果上看到达了静态包括文件的目标。但它没有利用include指令,而是利用了FileSystemObject来替换。
运转这个例子,右击页面并检察源文件,能够发明页面中拔出的是默许的包括文件。然后,从选择列表选择一个包括文件。提交表单从头装载页面以后,再检察页面的源文件,能够发明此时拔出的是方才选择的包括文件。
当我们想要分别页面的结构和它的内容时,这类手艺是很有效的。我们能够创立形貌网站结构的模板,再以包括文件情势制造网站的内容,最初利用ASP就能够便利地把二者分离起来!</p>源代码保护方面其实现在考虑得没那么多了..NET也可以反编译.ASP写得复杂的话别人能看得懂的话.他也有能力自己写了.这方面担心的倒不太多.纵观现在网上可以下载的那些所谓BBS还有什么网站等等的源代码
作者: 飘灵儿    时间: 2015-1-19 23:42
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
作者: 飘飘悠悠    时间: 2015-1-19 23:42
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
作者: 精灵巫婆    时间: 2015-1-28 15:22
下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助...
作者: 谁可相欹    时间: 2015-2-5 17:27
Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write
作者: 简单生活    时间: 2015-2-13 00:57
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
作者: 再现理想    时间: 2015-3-3 11:56
运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
作者: 老尸    时间: 2015-3-11 10:55
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
作者: 仓酷云    时间: 2015-3-18 07:18
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
作者: 透明    时间: 2015-3-25 13:10
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2