1.如何用Asp判断你的网站的虚拟物理路径
答:使用Mappath方法
< p align="center" >< font size="4" face="Arial" >< b > The Physical path to this virtual website is: < /b >< /font > < font color="#FF0000" size="6" face="Arial" > < %= Server.MapPath("\")% > < /font >< /p >
2.我如何知道使用者所用的浏览器?
答:使用the Request object方法
strBrowser=Request.ServerVariables("HTTP_USER_AGENT") If Instr(strBrowser,"MSIE") < > 0 Then Response.redirect("ForMSIEOnly.htm") Else Response.redirect("ForAll.htm") End If
3.如何计算每天的平均反复访问人数
答:解决方法
< % startdate=DateDiff("d",Now,"01/01/1990") if strdate< 0 then startdate=startdate*-1 avgvpd=Int((usercnt)/startdate) % >
显示结果
< % response.write(avgvpd) % > that is it.this page have been viewed since November 10,1998
4.如何显示随机图象
< % dim p,ppic,dpic ppic=12 randomize p=Int((ppic*rnd)+1) dpic="graphix/randompics/"&p&".gif" % > 显示 < img src="< %=dpic% >" >
5.如何回到先前的页面
答:
< a href="< %=request.serverVariables("Http_REFERER")% >" >preivous page< /a > 或用图片如:< img src="arrowback.gif" alt="< %=request.serverVariables("HTTP_REFERER")% >" >
6.如何确定对方的IP地址
答:< %=Request.serverVariables("REMOTE_ADDR)% >
7.如何链结到一副图片上
答:
< % @Languages=vbscript % > < % response.expires=0 strimagename="graphix/errors/erroriamge.gif" response.redirect(strimagename) % >
8.强迫输入密码对话框
答:把这句话放载页面的开头
< % response.status="401 not Authorized" response.end % >
9.如何传递变量从一页到另一页
答:用 HIDDEN 类型来传递变量
< % form method="post" action="mynextpage.asp" > < % for each item in request.form % > < input namee="< %=item% >" type="HIDDEN" value="< %=server.HTMLEncode(Request.form(item)) % >" > < % next % > < /form >
10.为何我在 asp 程序内使用 msgbox,程序出错说没有权限
答:由于 asp 是服务器运行的,如果可以在服务器显示一个对话框,那么你只好等有人按了确定之后,你的程序才能继续执行,而一般服务器不会有人守着,所以微软不得不禁止这个函数,并胡乱告诉你 (:) 呵呵) 没有权限。但是ASP和客户端脚本结合倒可以显示一个对话框,as follows:
< % yourVar="测试对话框"% > < % script language='javascript' > alert("< %=yourvar% >") < /script >
11.有没有办法保护自己的源代码,不给人看到
答:可以去下载一个微软的Windows script Encoder,它可以对asp的脚本和客户端javascript/vbscript脚本进行加密。。。不过客户端加密后,只有ie5才能执行,服务器端脚本加密后,只有服务器上安装有script engine 5(装一个ie5就有了)才能执行。
12.怎样才能将 query string 从一个 asp 文件传送到另一个?
答:前者文件加入下句: Response.Redirect("second.asp?" & Request.ServerVariables("QUERY_STRING"))
13.global.asa文件总是不起作用?
答:只有web目录设置为web application, global.asa才有效,并且一个web application的根目录下 global.asa才有效。IIS4可以使用Internet Service Manager设置application setting 怎样才能使得htm文件如同asp文件一样可以执行脚本代码?
14.怎样才能使得htm文件如同asp文件一样可以执行脚本代码?
答:Internet Sevices Manager - > 选择default web site - >右鼠键- >菜单属性-〉主目录- > 应用程序设置(Application Setting)- > 点击按钮 "配置"- > app mapping - >点击按钮"Add" - > executable browse选择 \WINNT\SYSTEM32\INETSRV\ASP.DLL EXTENSION 输入 htm method exclusions 输入PUT.DELETE 全部确定即可。但是值得注意的是这样对htm也要由asp.dll处理,效率将降低。
15.如何注册组件
答:有两种方法。
第一种方法:手工注册 DLL 这种方法从IIs 3.0一直使用到IIs 4.0和其它的Web Server。它需要你在命令行方式下来执行,进入到包含有DLL的目录,并输入:regsvr32 component_name.dll 例如 c:\temp\regsvr32 AspEmail.dll 它会把dll的特定信息注册入服务器中的注册表中。然后这个组件就可以在服务器上使用了,但是这个方法有一个缺陷。当使用这种方法注册完毕组件后,该组件必须要相应的设置NT的匿名帐号有权限执行这个dll。特别是一些组件需要读取注册表,所以,这个注册组件的方法仅仅是使用在服务器上没有MTS的情况下,要取消注册这个dll,使用:regsvr32 /u aspobject.dll example c:\temp\regsvr32 /u aneiodbc.dll
第二种方法:使用MTS(Microsoft Transaction Server) MTS是IIS 4新增特色,但是它提供了巨大的改进。MTS允许你指定只有有特权的用户才能够访问组件,大大提高了网站服务器上的安全性设置。在MTS上注册组件的步骤如下:
1) 打开IIS管理控制台。
2) 展开transaction server,右键单击"pkgs installed"然后选择"new package"。
3) 单击"create an empty package"。
4) 给该包命名。
5) 指定administrator帐号或则使用"interactive"(如果服务器经常是使用administrator 登陆的话)。
6) 现在使用右键单击你刚建立的那个包下面展开后的"components"。选择 "new then component"。
7) 选择 "install new component" 。
8) 找到你的.dll文件然后选择next到完成。
要删除这个对象,只要选择它的图标,然后选择delete。
附注:特别要注意第二种方法,它是用来调试自己编写组件的最好方法,而不必每次都需要重新启动机器了。
16. ASP与Access数据库连接:
<%@ language=VBscript%> <% dim conn,mdbfile mdbfile=server.mappath("数据库名称.mdb") set conn=server.createobject("adodb.connection") conn.open "driver={microsoft access driver (*.mdb)};uid=admin;pwd=数据库密码;dbq="&mdbfile
%>
17. ASP与SQL数据库连接:
<%@ language=VBscript%> <% dim conn set conn=server.createobject("ADODB.connection") con.open "PROVIDER=SQLOLEDB;DATA SOURCE=SQL服务器名称或IP地址;UID=sa;PWD=数据库密码;DATABASE=数据库名称 %>
建立记录集对象:
set rs=server.createobject("adodb.recordset") rs.open SQL语句,conn,3,2
18. SQL常用命令使用方法:
(1) 数据记录筛选:
sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]"
sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]"
sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]"
sql="select * from 数据表 where 字段名 in ('值1','值2','值3')"
sql="select * from 数据表 where 字段名 between 值1 and 值2"
(2) 更新数据记录:
sql="update 数据表 set 字段名=字段值 where 条件表达式"
sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"
(3) 删除数据记录:
sql="delete from 数据表 where 条件表达式"
sql="delete from 数据表" (将数据表所有记录删除)
(4) 添加数据记录:
sql="insert into 数据表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"
sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表)
(5) 数据记录统计函数:
AVG(字段名) 得出一个表格栏平均值 COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计 MAX(字段名) 取得一个表格栏最大的值 MIN(字段名) 取得一个表格栏最小的值 SUM(字段名) 把数据栏的值相加
引用以上函数的方法:
sql="select sum(字段名) as 别名 from 数据表 where 条件表达式" set rs=conn.excute(sql)
用 rs("别名") 获取统的计值,其它函数运用同上。
(5) 数据表的建立和删除:
CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… )
例:CREATE TABLE tab01(name varchar(50),datetime default now())
DROP TABLE 数据表名称 (永久性删除一个数据表)
19. 记录集对象的方法:
rs.movenext 将记录指针从当前的位置向下移一行 rs.moveprevious 将记录指针从当前的位置向上移一行 rs.movefirst 将记录指针移到数据表第一行 rs.movelast 将记录指针移到数据表最后一行 rs.absoluteposition=N 将记录指针移到数据表第N行 rs.absolutepage=N 将记录指针移到第N页的第一行 rs.pagesize=N 设置每页为N条记录 rs.pagecount 根据 pagesize 的设置返回总页数 rs.recordcount 返回记录总数 rs.bof 返回记录指针是否超出数据表首端,true表示是,false为否 rs.eof 返回记录指针是否超出数据表末端,true表示是,false为否 rs.delete 删除当前记录,但记录指针不会向下移动 rs.addnew 添加记录到数据表末端 rs.update 更新数据表记录
20 Recordset对象方法
Open方法
recordset.Open Source,ActiveConnection,CursorType,LockType,Options
Source
Recordset对象可以通过Source属性来连接Command对象。Source参数可以是一个Command对象名称、一段SQL命令、一个指定的数据表名称或是一个Stored Procedure。假如省略这个参数,系统则采用Recordset对象的Source属性。
ActiveConnection
Recordset对象可以通过ActiveConnection属性来连接Connection对象。这里的ActiveConnection可以是一个Connection对象或是一串包含数据库连接信息(ConnectionString)的字符串参数。
CursorType
Recordset对象Open方法的CursorType参数表示将以什么样的游标类型启动数据,包括adOpenForwardOnly、adOpenKeyset、adOpenDynamic及adOpenStatic,分述如下:
常数 常数值 说明 adOpenForwardOnly 0 缺省值,启动一个只能向前移动的游标(Forward Only)。 adOpenKeyset 1 启动一个Keyset类型的游标。 adOpenDynamic 2 启动一个Dynamic类型的游标。 adOpenStatic 3 启动一个Static类型的游标。
以上几个游标类型将直接影响到Recordset对象所有的属性和方法,以下列表说明他们之间的区别。
Recordset属性 adOpenForwardOnly adOpenKeyset adOpenDynamic adOpenStatic AbsolutePage 不支持 不支持 可读写 可读写 AbsolutePosition 不支持 不支持 可读写 可读写 ActiveConnection 可读写 可读写 可读写 可读写 BOF 只读 只读 只读 只读 Bookmark 不支持 不支持 可读写 可读写 CacheSize 可读写 可读写 可读写 可读写 CursorLocation 可读写 可读写 可读写 可读写 CursorType 可读写 可读写 可读写 可读写 EditMode 只读 只读 只读 只读 EOF 只读 只读 只读 只读 Filter 可读写 可读写 可读写 可读写 LockType 可读写 可读写 可读写 可读写 MarshalOptions 可读写 可读写 可读写 可读写 MaxRecords 可读写 可读写 可读写 可读写 PageCount 不支持 不支持 只读 只读 PageSize 可读写 可读写 可读写 可读写 RecordCount 不支持 不支持 只读 只读 Source 可读写 可读写 可读写 可读写 State 只读 只读 只读 只读 Status 只读 只读 只读 只读 AddNew 支持 支持 支持 支持 CancelBatch 支持 支持 支持 支持 CancelUpdate 支持 支持 支持 支持 Clone 不支持 不支持 Close 支持 支持 支持 支持 Delete 支持 支持 支持 支持 GetRows 支持 支持 支持 支持 Move 不支持 支持 支持 支持 MoveFirst 支持 支持 支持 支持 MoveLast 不支持 支持 支持 支持 MoveNext 支持 支持 支持 支持 MovePrevious 不支持 支持 支持 支持 NextRecordset 支持 支持 支持 支持 Open 支持 支持 支持 支持 Requery 支持 支持 支持 支持 Resync 不支持 不支持 支持 支持 Supports 支持 支持 支持 支持 Update 支持 支持 支持 支持 UpdateBatch 支持 支持 支持 支持
其中NextRecordset方法并不适用于Microsoft Access数据库。
LockType
Recordset对象Open方法的LockType参数表示要采用的Lock类型,如果忽略这个参数,那么系统会以Recordset对象的LockType属性为预设值。LockType参数包含adLockReadOnly、adLockPrssimistic、adLockOptimistic及adLockBatchOptimistic等,分述如下:
常数 常数值 说明 adLockReadOnly 1 缺省值,Recordset对象以只读方式启动,无法运行AddNew、Update及Delete等方法 adLockPrssimistic 2 当数据源正在更新时,系统会暂时锁住其他用户的动作,以保持数据一致性。 adLockOptimistic 3 当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改的操作。 adLockBatchOptimistic 4 当数据源正在更新时,其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、删、改的操作。
ASP设计常见问题及解答精要
作为微软推出的网页与数据库解决方案,ASP由于有微软得天独厚的操作系统等技术后盾支持,因此得到了迅速的发展,并且正受到越来越多的欢迎,在目前在电子商务网站的建设中有很多都使用ASP来编写程序。 近来有很多的读者向我们咨询学习ASP的方法和在学习中遇到的一些问题,其中有一些是初学者经常遇到和面临的问题。为了让读者在学习ASP的过程中加深对ASP的了解,并能够有效地解决遇到的问题,我们特别收集了比较有代表性的一些问题,在此列举出来并一一给予解答,希望能在这有限的篇幅里为你学习ASP助一臂之力。
1、问题:ASP是一种编程语言吗?
答:ASP不是编程语言,而是一种开发环境。ASP提供了一个在服务器端执行指令的环境,它利用了特殊的符号()来区分HTML与必须经过服务器翻译才能送往客户端的命令。它可以执行的指令包括HTML语言,Microsoft VBscript和Microsoft Jscript等,因此可以制作出功能强大的Web应用程序。
2、问题:在Web服务器上容纳多个Web站点,能使用PWS吗?
答:在PWS上只能容纳一个Web站点。为了在相同的计算机上容纳多个Web站点,需要使用Windows NT Server或Windows 2000 Server/Professional和IIS。
3、问题:如何使用6个内置ASP对象?
答:ASP提供了多个内嵌对象,无须建立就可以在指令中直接访问和使用它们,这六个对象主要有:请求(Request)对象、响应(Response)对象、工作阶段(Session)对象、应用程序(Application)对象、服务器(Server)对象、Cookies对象,这六个对象中的服务器(Server)对象可加载其他组件,这可以扩展ASP的功能。
使用Server.CreateObject所建立的对象,它的生命周期在它建立时开始,在它所在的网页程序结束时结束。如果想要让该对象跨网页使用,则可以用Session对象来记录Server.CreateObject所建立的对象。
4、问题:为什么在使用Response.Redirect的时候出现以下错误:“标题错误,已将HTTP标题写入用户端浏览器,对任何HTTP的标题所作的修改必须在写入页内容之前”?
答:Response.Redirect可以将网页转移至另外的网页上,使用的语法结构是这样的:Response.Redirect网址,其中网址可以是相对地址或绝对地址,但在IIS4.0使用与在IIS5.0使用有所不同。
在IIS4.0转移网页须在任何数据都未输出至客户端浏览器之前进行,否则会发生错误。这里所谓的数据包括HTML的卷标,例如:< HTML>,< BODY>等,而在IIS5.0中已有所改进,在IIS5.0的默认情况下缓冲区是开启的,这样的错误不再产生。
在Response对象中有一Buffer属性,该属性可以设置网站在处理ASP之后是否马上将数据传送到客户端,但设置该属性也必须在传送任何数据给客户端之前。
为保险起见,无论采用何种ASP运行平台,在页面的开始写上< % Response.Buffer=True %>,将缓冲区设置为开启,这样的错误就不会发生了。
5、问题:缓冲输出对于网页传输有没有影响?
答:在比较大的Web页中,第一部分在浏览器中出现可能会有一些延迟,但是加载整个Web页的速度比不用缓冲要快。
6、问题:在没有表单提交时查询字符串的值是否可以使用Request.QueryString集合?
答:Request对象用于读取浏览器的数据,它除了可以读取表单字段的内容,还可以用来读取附带在网址后面的参数,无论请求字符串怎样添加到链接地址中对Request来说都没有什么不同。使用get方法提交一个表单,还是跟随一个附加查询串的链接查询字符串中所有的值,都可以使用Request.QueryString集合。
7、问题:我在ASP脚本中写了很多的注释,这会不会影响服务器处理ASP文件的速度?
答:在编写程序的过程中,作注释是良好的习惯。经国外技术人员测试,带有过多注释的ASP文件整体性能仅仅会下降0.1%,也就是说在实际应用中基本上不会感觉到服务器的性能下降的。
8、问题:需不需要在每个ASP文件的开头使用< % @LANGUAGE=VBscript % >?
答:在每个ASP文件的开头使用< % @LANGUAGE=VBscript %>代码是用来通知服务器现在使用VBscript来编写程序,但因为ASP的预设程序语言是VBscript,因此忽略这样代码也可以正常运行,但如果程序的脚本语言是JavaScrip,就需要在程序第一行指明所用的脚本语言。
9、问题:我有没有必要在每一个ASP文件中使用“Option Explicit”?
答:在实际应用中,VBscript变量的概念已经模糊了,允许直接使用变量,而不用Dim声明变量,但这并不是一个好习惯,容易造成程序错误,因为可能重复定义一个变量。我们可以在程序中使用Option Explicit语句,这样在使用一个变量的时候,必须先声明它,如果使用了没有经过声明的变量,运行时,程序就会出错。
实践证明,ASP文件中使用“Option Explicit”可以使得程序出错机会降到最少,并且会大大提升整体性能。
10、问题:运行ASP文件时有什么安全措施?
答:ASP提供了很好的代码保护机制,所有的ASP代码都在服务器端执行而只返回给客户端代码执行结果。但仍不排除恶意人士对Web服务器的刻意破坏,所以在编写ASP文件时更要注意安全问题。
虽然在ASP中引入文件以inc作为扩展名,在这里仍建议以ASP作为引文件的扩展名。当这些代码在安全机制不好的Web Server上运行时,只需在地址栏上输入引入文件的地址(inc为扩展名),就可以浏览该引入文件的内容,这是由于在Web Server上,如果没有定义好解析某类型(比如inc)的动态连接库时,该文件以源码方式显示。
另外,不要把数据库文件放在网站结构内部,这样,当恶意人士获取数据库路径后,就可以轻易获取该数据库,进而肆意更改数据库内容。比较好的做法是,为数据库建立数据源名称DSN(Date Source Name),在DSN中存储了有关连接到指定数据提供者的信息,包括:“数据库的物理位置,用于访问数据库的驱动程序的类型,访问数据库的驱动程序所需要的任何其他参数”,在进行数据库访问时可以直接访问该DSN。
11、问题:评介Web数据库管理系统时,应该考虑哪些问题?
答:在评价一个Web数据库管理系统时,必须考虑到三方面的问题:多用户问题;所建立的Web数据库应该是关系型的;数据库的安全性问题。
12、问题:ADO是什么,它是如何操作数据库的?
答:ADO的全名是ActiveX Data Object(ActiveX数据对象),是一组优化的访问数据库的专用对象集,它为ASP提供了完整的站点数据库解决方案,它作用在服务器端,提供含有数据库信息的主页内容,通过执行SQL命令,让用户在浏览器画面中输入,更新和删除站点数据库的信息。
ADO主要包括Connection,Recordset和Command三个对象, 它们的主要功能如下:
·Connection对象:负责打开或连接数据库文件; ·Recordset对象:存取数据库的内容; ·Command对象:对数据库下达行动查询指令,以及执行SQL Server的存储过程。
13、问题:使用Recordset对象和Command对象来访问数据库的区别在哪里?
答:Recordset对象会要求数据库传送所有的数据,那么数据量很大的时候就会造成网络的阻塞和数据库服务器的负荷过重,因此整体的执行效率会降低。 利用Command对象直接调用SQL语句,所执行的操作是在数据库服务器中进行的,显然会有很高的执行效率。特别是在服务器端执行创建完成的存储过程,可以降低网络流量,另外,由于事先进行了语法分析,可以提高整体的执行效率。
14、问题:是否必须为每一个Recordset对象创建一个Connection对象?
答:可以同时对不同的Recordset对象使用相同的Connection对象,以节省资源。
15、问题:什么是数据库管理系统(DBMS)?
答:数据库为了保证存储在其中的数据的安全和一致,必须有一组软件来完成相应的管理任务,这组软件就是数据库管理系统,简称DBMS,DBMS随系统的不同而不同,但是一般来说,它应该包括以下几方面的内容:
数据库描述功能:定义数据库的全局逻辑结构,局部逻辑结构和其他各种数据库对象; 数据库管理功能:包括系统配置与管理,数据存取与更新管理,数据完整性管理和数据安全性管理; 数据库的查询和操纵功能:该功能包括数据库检索和修改; 数据库维护功能:包括数据引入引出管理,数据库结构维护,数据恢复功能和性能监测。
为了提高数据库系统的开发效率,现代数据库系统除了DBMS之外,还提供了各种支持应用开发的工具。
16、问题:当前流行的WEB数据库管理系统有哪些?
答:当前流行的Web数据库管理系统有微软的SQL Server、Oracle、DB2、Sybase,小规模的企业多使用Access。
17、问题:在ASP中使用ADO的AddNew方法和直接使用“Insert into...”语句有何不同?哪种方式更好?
答:ADO的AddNew方法只是将“Insert into ”语句封装了起来,所以,当对大量数据进行操作的时候,直接使用SQL语句将会大大加快存取数据的速度,因为它减少了ADO的“翻译”时间,由于SQL语句所执行的操作是直接在数据库服务器中进行的,尤其在数据量很大的时候有显著的优势。
18、问题:为什么我在ASP中使用标准的插入记录语句 insert into books(name,email) values(“kitty”, “kitty@263.com”)会出错?
答:SQL(Structured Query Language/结构式查询语言)是IBM公司在1970年代所发展出来的数据查询语言,它现在已经成为关系型数据库查询语言的标准。SQL语句是一种以英文为基础的程序语言,可以使用它来添加,管理以及存取数据库。
在SQL语句中添加时的字符串虽然可以使用双引号,但在ASP中却需要使用单引号才能正常执行。所以应当写成insert into books(name,email) values(‘kitty’,‘kitty@263.com’)。
19、问题:什么是ActiveX 控件? 在哪里可以得到这些ActiveX控件?
答:Microsoft ActiveX控件是由软件提供商开发的可重用的软件组件。除了ASP的内嵌对象外,另外安装进来的ActiveX控件也可以在ASP中使用,这样可以节省许多宝贵的开发时间,在ASP中其实也内嵌了很多的ActiveX控件可以使用。
使用ActiveX控件,可以很快地Web应用程序、以及开发工具中加入特殊的功能。例如,使用AdRotator对象来制作广告滚动板,使用FileSystemObject对象进行文件存取,使用Marquee对象实现滚动文字。
现在,已有1000多个商用的ActiveX控件,开发ActiveX控件可以使用各种编程语言,如C,C++等,以及微软公司的 Visual Java开发环境Microsoft Visual J++。 ActiveX控件一旦被开发出来,设计和开发人员就可以把它当作预装配组件,用于开发客户程序。以此种方式使用 ActiveX控件,使用者无需知道这些组件是如何开发的,在很多情况下,甚至不需要自己编程,就可以完成网页或应用程序的设计。
目前由第三方软件开发商提供的商用控件有1000多种。微软ActiveX组件库(ActiveX Component Gallery)中存着有关信息以及相关的连接,它们指向微软及第三方开发商提供的各种 ActiveX 控件。在微软ActiveX组件库(ActiveX Component Gallery)中,可以找到开发Internet增强型ActiveX 控件的公司列表。
20、问题:为什么使用strStartPort=(Request.form ("catmenu_0")语句取到表单中起始站点的值在数据库却找不到?
答:这是因为取到的起始站点的值可能有空格,比如原意是“杭州”,但是由于空格存在,ASP程序取到的值可能就是“ 杭州”,而数据库中只有“杭州”的记录,当然就找不到了,解决的方法是利用Trim 函数将字符串两头空格全部去除,相应的语句为: strStartPort=TRIM(Request.form("catmenu_0"))
21、问题:在ASP中当变量的生命周期结束后,有几种保留变量内容的方法?
答:任何导致网页结束的操作,比如当按下浏览器的“刷新”按钮,或者关闭了浏览器,再重新打开它,都会导致变量生命周期的结束。
如果希望在网页结束执行时,还能够保留变量的内容,以备下一次执行时使用,就可以借助Application对象来实现。比如可以利用Application对象来制作统计网站访问量的计数器。
Session对象跟Application对象一样,可以在网页结束时将变量的内容存储下来,但是与Application对象不同的是,每个联机是一个独立的Session对象,简单地说就是所有联机上网者只会共享一个Application对象,但每位联机上网者却会拥有自己的Session对象。
Application对象与Session对象可以帮我们把信息记录在服务器端,而Cookies对象则会借助浏览器提供的Cookies功能将信息记录在客户端。有一点要注意,Cookies是记录在浏览器的信息,所以数据的存取并不象存取其他ASP对象(信息存储在Server端)那么简单,就实际运行来看,只有在浏览器开始浏览Server的某一网页,而Server尚未下载任何数据给浏览器之前,浏览器才能够与Server进行Cookies数据的交换。
22、问题:对象使用完后应该怎么办?
答:当使用完对象后,首先使用Close方法来释放对象所占用的系统资源;然后设置对象值为“nothing”来释放对象占用的内存,否则会因为对象太多导致WEB服务站点运行效率降低乃至崩溃,相应语句如下:
< % 对象.close set对象= nothing % >
23、问题:在ASP文件中读取HTML的表单字段有几种方法?
答:Request对象除了可以用来读取附带在网址后面的参数以外,也可以读取HTML表单字段的内容,经常使用的语法结构如下:
< form name =formname method=“Get│Post”Action=“URL”>< form > 其中的method可以接受Get或Post两种传输的方法,其中的Post是允许传输大量数据的方法,而Get方法会将所要传输的数据附在网址后面,然后一起送达服务器,因此传送的数据量就会受到限制,但是执行效率却比Post方法好。
使用Get或Post方法都可以将数据送至服务器,使用Request对象接收数据的相对应方法如下:
Get:Request.QueryString(“字段名称”),也可以写成Request (“字段名称”) Post:Request.form (“字段名称”),也可以写成Request (“字段名称”)
24、问题:如何提高使用Request集合的效率?
答:在使用Request集合时,由于包含了一系列对相关集合的搜索,这比访问一个局部变量要慢得多。因此,如果打算在页面中多次使用Request集合中的一个值,应该考虑将其存贮为一个局部变量。
25、问题:在ASP页面中既可以使用VBscript,也可以使用Jscript,混合使用脚本引擎好吗?
答:虽然在ASP页面中既可以使用VBscript,也可以使用Jscript。但是在同一个页面上同时使用Jscript和VBscript则是不可取的。因为服务器必须实例化并尝试缓存两个(而不是一个)脚本引擎,这在一定程度上增加了系统负担。因此,从性能上考虑,不应在同一页面中混用多种脚本引擎。
26、问题:当我们建立了一个ASP文件,并且符合语法时,通过浏览器输入以下地址,或通过资源管理器打开浏览:c:\inetpub\wwwroot\a.asp,将出现无法运行的错误,并提示权限不对或文件无法访问,为何不能正常运行ASP文件?
答:这是因为ASP文件首先要求站点是具备“执行(脚本)”属性的;然后要求按照URL格式输入地址,而不是DOS格式,我们需要在电脑上安装好并启动Web服务平台,并确保ASP文件存放在Web服务器的虚拟目录下,就可以通过HTTP的格式来浏览,在浏览器的地址栏输入:“http:// ;Web站点名称(或站点的IP地址)/ASP文件名称”,回车后就可以在浏览器中看到服务器执行ASP文件的结果。
27、问题:什么是ASP.NET?它与ASP有什么关系?
答:Active Server Pages(ASP,活动服务器页面)就是一个比较简单编程环境,在其中,可以混合使用HTML、脚本语言以及少量组件来创建服务器端的Internet应用程序;
ASP.NET是微软力推的功能强大的编程环境,可以使用C#等多种高级语言及脚本语言、HTML、XML、XSL等来创建基于网络的应用程序。ASP.NET将C#作为一种面向对象语言,在很多方面来看,C#将成为微软的与Java相似的语言。 C#是ASP.NET开发中一个最重要的功能,微软会将C#发展成为Java的强劲对手。这也是微软.Net框架的一个重要组成部分。我认为C#是微软在编程语言领域击败对手的主要工具。
ASP.NET在面向对象性、数据库连接、大型站点应用等方面都优于ASP程序,ASP.NET还提供更多的其他方面的新特性,例如:内置的对象缓存和页面结果缓存;内置的XML支持,可用于XML数据集的简单处理;服务器控制提供了更充分的交互式制等。
ASP.NET依然完全锁定在微软的操作系统中,要真正发挥ASP.NET潜力,你要使用C#或vb.net。这两种语言将成为ASP.NET标准的核心的脚本语言。
|
|
随笔:32
文章:7
评论:29
引用:0
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
---|
27 | 28 | 29 | 30 | 31 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|
公告
|
|