博文

ASP生成静态网页的方法 (2006-10-21 12:47:00)

摘要:随着网站访问量的加大,每次从数据库读取都是以效率作为代价的,很多用ACCESS作数据库的更会深有体会,静态页加在搜索时,也会被优先考虑。互联网上流行的做法是将数据源代码写入数据库再从数据库读取生成静态面,这样无形间就加大了数据库。将现有的ASP页直接生成静态页,将会节省很多。

  下面的例子是将、index.asp?id=1/index.asp?id=2/index.asp?id=3/这三个动态页面,分别生成ndex1.htm,index2.htm,index3.htm存在根目录下面:
Code:

<%
dim strUrl,Item_Classid,id,FileName,FilePath,Do_Url,Html_Temp
Html_Temp="<UL>"
For i=1 To 3
Html_Temp = Html_Temp&"<LI>"
Item_Classid = i
FileName = "Index"&Item_Classid&".htm"
FilePath = Server.MapPath("/")&"\"&FileName
Html_Temp = Html_Temp&FilePath&"</LI>"
Do_Url = "http://"
Do_Url = Do_Url&Request.ServerVariables("SERVER_NAME")&"/main/index.asp"
Do_Url = Do_Url&"?Item_Classid="&Item_Classid
strUrl = Do_Url
dim objXmlHttp
set objXmlHttp = Server.CreateObject("Microsoft.XMLHTTP")
objXmlHttp.open "GET",strUrl,false
objXmlHttp.send()
Dim binFileData
binFileData = objXmlHttp.responseBody
Dim ......

阅读全文(2306) | 评论:0

FSO组件的文件夹操作(2006-10-21 11:37:00)

摘要:     操作完驱动器,接着就是来操作文件夹了。其中包括:提取文件夹信息、创建文件夹、删除文件夹、复制文件夹、移动文件夹等。下面就具体来看。 一、fso.GetFolder   一看就明白,是提取文件夹了。那具体是提取哪个文件夹呢?后面肯定要跟一个文件夹的路径。提取出来了再来显示该文件夹相关信息呢?是不是有要具体提取下去。所以,看程序:   1,getfldr.asp <%
Set fso = CreateObject("Scripting.FileSystemObject")
Set fldr = fso.GetFolder("c:\Program Files")
Response.Write "父文件夹名字是:" & fldr & "<br>" If fldr.IsRootFolder = True Then
   Response.Write "该文件夹是一根文件夹" & "<br>"
Else
   Response.Write "该文件夹不是根文件夹" & "<br>"
End If Response.Write "驱动器名字是:" & fldr.Drive & "<br>"
%>
  首先建立FSO组件的连接是必不可少的啦,然后Set fldr = fso.GetFolder("c:\Program Files")设定fldr对象被赋值,以作下面程序的引用。   fldr.IsRootFolder即为判断该文件夹是否为一根文件夹,值为布尔值(true or false);fldr.Drive则显示该文件夹所在的驱动器号了。   二、fso.CreateFolder   下面比较让人激动的是通过ASP建立文件夹了,你可以在你的权力范围内任意位置建立任意文件夹。   2,creatfldr.asp <%
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CreateFolder ("c:\cnbruce")
Response.Write ......

阅读全文(1444) | 评论:0

ASP编程入门进阶:FSO组件之驱动器操作(2006-10-21 11:37:00)

摘要:  ASP编程入门进阶:FSO组件之驱动器操作 来源:[网人帝国]       字体:【大 中 小】
FSO,正如UFO般令人激动、令人神往,当然更多的亦是让人欢喜让人忧。君不见某空间服务商广告:100MB空间只要60RMB/年,支持数据库,支持什么什么……一问不支持FSO,立马泄气。那FSO究竟是什么东西,它的力量又是如何巨大,其操作的原理又是怎的怎的呢?这次来个彻底的理解。

首先,FSO是FileSystemObject的简称。当然也就是我们的俗称FSO组件了,该组件可以用来处理驱动器、文件夹以及文件。

它可以检测并显示出系统驱动器的信息分配情况;还能够创建、改变、移动和删除文件夹,并能探测一些给定的文件夹是否存在,若存在,还能提取出该文件夹的信息,如名称、被创建或最后一次修改的日期,等等。FSO还使得对文件的处理变得很容易。

一、fso.GetDrive

正如其它组件的建立一样,FSO的引用也必须建立连接。


Set fso=Server.CreateObject("Scripting.FileSystemObject")


注意CreateObject的内部再也不是MSWC了,而是Scripting。
那下面就可以通过fso来处理驱动器了。比如fso.GetDriveName提取驱动器名,fso.GetDrive同样提取标准驱动器名。比如:

1,fso.asp


<%Set fso=Server.CreateObject("Scripting.FileSystemObject")%>
<%=fso.GetDriveName("d:")%><br>
<%=fso.GetDrive("d:")%>


你会发现GetDriveName("d:")就是“d:”,而GetDrive("d:")则为标准的“D:”,所以我们一般这样写fso.GetDrive(fso.GetDriveName(drvPath))来提取某个......

阅读全文(1881) | 评论:0

FSO组件之文件操作(中) (2006-10-21 11:36:00)

摘要: FSO组件之文件操作(中) 学会了FSO提取文件值,也学会了将信息输入到文件中,那下面就再来应用应用下。   不知道你有没有这样的习惯:看到一个文件,不自觉的右键选择用记事本打开。呵呵,几乎没有哪个文件是不可以的。所以现在,可以默认所有文件都是文本,只是后缀名不同而已;那么也就是说,现在可以提取任一文件的内容信息。OK,就来想象一下:   1,提取一个文件的路径(采用file按钮进行查找定位)
  2,将该路径文件打开,并读取所有行
  3,显示读取的信息   一、viewcode.asp
<%
Function ShowCode(filename)
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set cnrs = fso.OpenTextFile(filename, 1)
While Not cnrs.AtEndOfStream
rsline = cnrs.ReadLine
rsline = server.HTMLEncode(rsline)
Response.Write(rsline & "<br>")
Wend
end Function
%><form action="viewcode.asp" method="post">
输入文件名<input type="file" name="filename">
<input type="submit" value="查看源程序">
</form><%
file=request.form("filename")
response.write (file & "源程序如下<hr>")
If trim(file)<> "" then
Call ShowCode(file)
End If
%>
  以上程序调试时,可以选择html,asp页面,也可以打开任一应用程......

阅读全文(1547) | 评论:0

ASP编程入门进阶:FSO组件之文件操作(下)(2006-10-21 11:34:00)

摘要: 一,fso.GetFile
提取文件相应的 File 对象

1,getfile.asp


<%
whichfile=Server.MapPath("cnbruce.txt")
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.CreateTextFile(whichfile,true)
f1.Write ("This is a test.My Name is cnbruce.")
f1.Close
Set f2 = fso.GetFile(whichfile)
 
s = "文件名称:" & f2.name & "<br>"
s = s & "文件短路径名:" & f2.shortPath & "<br>"
s = s & "文件物理地址:" & f2.Path & "<br>"
s = s & "文件属性:" & f2.Attributes & "<br>"
s = s & "文件大小: " & f2.size & "<br>"
s = s & "文件类型: " & f2.type & ......

阅读全文(2040) | 评论:0

FSO组件之文件操作(上)(2006-10-21 11:34:00)

摘要:FSO中除了可以对驱动器、文件夹的操作以外,功能最强大的就是对文件的操作了。它可以用来记数、内容管理、搜索还可生成动态HTML页面等等。 一、fso.OpenTextFile
无需多说,fso.OpenTextFile就是打开某个文件了,一般情况之下是打开的txt文本文件。所以首先我们先建立一个txt文件,然后通过FSO来读取其中的内容。 1,info.txt name:cnbruce
sex:male
 
建立了该文件,下面再做个ASP页面,当然最好两个文件是在同一目录下。 2,opentxt.asp
<%
whichfile=server.mappath("info.txt")
Set fso = CreateObject("Scripting.FileSystemObject")
Set txt = fso.OpenTextFile(whichfile,1)
rline = txt.ReadLine
rline = rline & "<br>" & txt.ReadLine
Response.Write rline
txt.Close
%>  
需要注意:无论是通过FSO打开驱动器、打开文件夹、打开文件,以及以后要接触到的打开数据库,都只能是打开绝对物理路径地址。但一般情况是上传到空间服务商那,不能很直接地了解到自己文件的所在位置,所以强烈推荐使用server.mappath方法:平台移植性强,适用性强。 CreateObject("Scripting.FileSystemObject")建立了FSO组件的连接,fso.OpenTextFile(whichfile,1)打开了info.txt该文件。参数“1”表示“ForReading:以只读方式打开文件。不能写这个文件。”,其他还有参数“2”表示“ForWriting:以写方式打开文件”,参数“8”表示“ForAppending:打开文件并从文件末尾开始写”。 打开了该文件,接下来是不是要显示文件中的内容?那就通过txt.ReadLine方法读取文本中的一整行,如果需要继续读取下一行,则继续使用txt.ReadLine方法。当然初此还有其它的......

阅读全文(1593) | 评论:0

常见 ASP 组件简介及下载 (2006-10-21 11:26:00)

摘要:前言 ASP使用VBScript或者JScript脚本完成编程,而这两种脚本本身能力非常有限,利用ASP的几个内部对象也无法完成较大规模的应用,但是令人兴奋的是ASP支持组件技术,类似文件上传、绘图、收发电子邮件等工作都可以借助组件来完成,找到合适的优秀的组件,将使我们的网站功能更加强大。 需要提醒大家的是,组件的安装应该按需进行,并不是说探针上的对号越多越好。 邮件收发邮件 JMail 组件 Dimac 公司的邮件收发组件,这是一个非常成熟和强大的邮件组件。它不但可以完成发邮件的工作,还可以POP收信,并支持收发邮件时的PGP加密,内置一个群发邮件的对象,可以使群发编程更简单。 即使是很多其他组件也都能完成的发邮件功能,JMail 的完成也可以称得上最出色的,除了常见的抄送暗送等多收件人功能外,它还支持添加嵌入式图片附件,并且可以从URL读取文件作为附件。 JMail 的免费版本拥有全部完成的发邮件功能,只在收邮件和加密邮件等我们不常用到的方面进行了限制。 因为非常喜欢这个组件,阿江我在2002年3月就把这个组件的用户指南翻译了一下,可惜当时有一些地方不太理解,翻译是错误的,还没有来得及改过来,不过明眼人是能看出来的。 免费版下载 | V4中文手册下载(PDF) | Smtpmail对象中文参考下载(PDF) | 官方网站 www.dimac.net
(注意,PDF电子文档,使用Adobe Acrobat Reader阅读。) ASPEmail 组件 ASPEmail 组件也是常用的发邮件组件之一,不过因为售价不菲,国内使用的用户还不多。从功能上说,这也是一个功能全面的发邮件组件。2002年的时候它不支持收信,不知道现在是否支持了。 官方网站 www.aspemail.com 文件上传组件 文件上传组件最近几年是越来越多,国内很多ASP爱好者编写了自己的上传组件。为了提高安全性,动网等商业机构也推出了免费的文件上传组件。 SA-FileUp 组件 SoftArtisans 公司的文件上传组件,它是早期国内的虚拟主机商默认安装的组件之一,很多老程序员都有利用它编程的经历。安装后自动安装一个文件管理组件,可以像FSO一样管理服务器上的文件。从官方网站 www.SoftArtisans.com 可以......

阅读全文(2289) | 评论:0

什么叫服务器FSO组件(2006-10-21 11:22:00)

摘要:FSO(FileSystemObject)是微软ASP的一个对文件操作的控件,该控件可以对服务器进行读取、新建、修改、删除目录以及文件的操作。是ASP编程中非常有用的一个控件。但是因为权限控制的问题,很多虚拟主机服务器的FSO反而成为这台服务器的一个公开的后门,因为客户可以在自己的ASP网页里面直接就对该控件编程,从而控制该服务器甚至删除服务器上的文件。   文件系统对象FSO的英文全称是File System Object ,这种对象模型提出了有别于传统的文件操作语句处理文件和文件夹的方法。通过采用object.method这种在面向对象编程中广泛使用的语法,将一系列操作文件和文件夹的动作通过调用对象本身的属性直接实现。

  FSO 对象模型不仅可以象使用传统文件操作语句那样实现文件的创建、改变、移动和删除,而且可以检测是否存在指定的文件夹,如果存在,那么,这个文件夹又位于磁盘上的什么位置。更令人高兴的是FSO 对象模型还可以获取关于文件和文件夹的信息,如名称、创建日期或最近修改日期等以及当前系统中使用的驱动器的信息,如驱动器的种类是CD-ROM还是可移动磁盘,当前磁盘的剩余空间还有多少。而以前要获取这些信息必须通过调用Windows API函数集中的相应函数才能实现。

  FSO对象模型包含在Scripting 类型库 (Scrrun.Dll)中,它同时包含了Drive、Folder、File、FileSystemObject和TextStream五个对象。其中Drive用来收集驱动器的信息,如可用磁盘空间或驱动器的类型;Folder用于创建、删除或移动文件夹,同时可以进行向系统查询文件夹的路径等操作;File的基本操作和Folder基本相同,所不同的是Files的操作主要是针对磁盘上的文件进行的;FileSystemObject是FSO对象模型中最主要对象,它提供了一套完整的可用于创建、删除文件和文件夹,收集驱动器、文件夹、文件相关信息的方法。需要注意的是,FSO对象模型提供的方法是冗余的,也就是说在实际使用中,FSO对象模型中包含的不同对象的不同方法进行的却是同样的操作,而且FileSystemObject对象的方法直接作用于其余对象,所以在后面的文章中并没有单独提到FileSystemObject对象,千万不要以为没有提到就不......

阅读全文(3052) | 评论:1

asp生成静态网页(2006-10-21 10:31:00)

摘要:  首先,模板需要在线修改,则应采用数据库保存模板代码 所谓的模板,就是设计完工的标准的HTML代码,其中需要由程序实现的功能部分将采用特殊字符串代替。然,这些特殊字符串需要在显示的时候被编译为对应的功能。 1,设计数据库testmb.mdb
新建表moban:字段m_id(自动编号,主关键字);字段m_html(备注类型) 2,假设第一模板内容代码 将下列代码拷贝到m_html字段中
以下是代码片段:
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
<title>testmb</title> 
</head> 
<body leftmargin="0" topmargin="0"> 
<table width="100%" height="100%" border="0" cellpadding="5" cellspacing="2"> 
 <tr align="right" bgcolor="#CCCCCC"> 
 <td height="20" colspan="2">$cntop$</td> 
 </tr> 
 <tr valign="top"> 
 <td width="25%" bgcolor="#e5e5e5">$cnleft$</td> 
 <td width="74%" bgcolor="#f3f3f3">$cnright$</td> 
 </tr> 
</table> 
</body> ......

阅读全文(2145) | 评论:0

javascript 连接数据库(2006-10-21 10:13:00)

摘要:这几天费了挺大力气在网上查找javascript连接access数据库的方法,
经过整理总结,终于写出一段能够有效执行的代码。
 
    但是这段代码在本地可以正常运行,一旦放到免费个人空间上就没法执
行了,主要原因就是操作权限不够,由于只支持静态页面的免费空间多数都
作了非常严格的限制,所以无论是用mdb的方式,还是读写纯文本文件的方式
都没办法通过,而由页面报出js错误。国外的一些免费空间,直接就禁止mdb
这样扩展名的文件上传。
 
    虽然没希望在纯静态页面的免费空间上作自己的计数器或是留言版,但是
这段程序也许还是对一些朋友有用处,写出来供各位研究一下。
 
文件构成:
  Access数据库名为 MyData.Mdb, 里面建了一个名为count的表,表由两个
  字段组成: ID和COUNT,表里有一条数据: (@#count@#,@#100@#)。
  文本文件名为 count.txt,里面随便写入一个数字。
  静态页面名为Cnt.htm。
以上3个文件都放在同一目录下。
 
    由于采用Access数据库,而它采用非标准SQL语法,所以要注意在表名
和字段名上需要加方括号: []
 
下面是页面里的代码:
 
    其中getCountFromDB方法是对Access数据库进行操作,getCountFromTxt
方法是对txt纯文本进行操作,这两个方法都在本地执行通过。
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditP......

阅读全文(2523) | 评论:0