|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
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还有什么网站等等的源代码 |
|