2008年12月16日星期二

ASP 简介

静态的站点内容


目前Internet 上的许多站点,仍然提供“静态”(static)的主页内容。所谓“静态”,指的就是站点的主页内容是“固定不变”的。
当浏览器通过Internet 的HTTP (Hypertext Transport Protocol)协议,向站点服务器(Web Server)要求提供主页的内容时,站点服务器收到要求后,就传送愿已设计好的静态的HTML 的文件数据给浏览器。
一个“静态”的站点,若要更新主页的内容,必须手动的来更新其HTML的文件数据。


动态的站点内容


当在浏览器上填好表格(form)的输入数据,以提供HTTP要求时,可以在站点服务器中执行的应用程序,而不只是一个HTML 文件。站点服务器收到要求执行的应用程序,分析表格(form)的输入数据,将执行的结果以HTML的格式传送给浏览器。

ACTIVE SERVER PAGES

Active server pags (动态服务器主页,简称ASP),内含于Internet Information
Server(IIS)当中,提供一个服务器端(server-side)的scripting环境,让你产生和执行动态,交互式,高效率的站点服务器的应用程序。
你不必担心浏览器是否能执行你设计出来的Active Server Pages,你的站点服务器会自动将Active Server Pages 的程序码,解释为标准HTML格式的主页内容,在送到用户端的浏览器上显示出来。用户端只要使用常规可执行HTML码的浏览器,即可浏览Active Server Pages所设计的主页内容。

Active Server Pages 的特点是:

一:无须Compile编译:容易产生,无须Compile 编译或Link 链接即可执行。
二:使用常规文本编辑器,如Windows的记事本,即可设计。
三:与浏览器无关(Browser Independence):用户端只要使用常规的可执行HTML玛的浏览器,即可浏览Active Server Pages 所设计的主页内容,
Script 语言(Vbscript ,Jscript)是在站点服务器(Server端)执行,用户不需要执行这些Script语言。
四:面向对象(Object_Orient).
五: 可通过ActiveX Server components(ActiveX服务器组件)来扩充功能。
ActiveX Server component,可使用Visual Basic,Java,Visual C++,COBOL等语言来实现。
六:Active Server Pages与任何AcTiveX scripting 语言兼容。除了可使用VBscript 或JScript语言来设计,并可通过Plug-in的方式,使用由third party所提供的其他譬如REXX,perl,Tcl 等scripting语言。script引擎是处理script的COM(Component Object Model)对象。
七:Active server Pages的源程序代码,不会传到用户的浏览器,因此可以保护辛辛苦苦写出来的源程序不会外泻。传到用户浏览器的是Active Server Pages执行的结果的常规HTML码。
八:使用server端script产生client端script,你可以使用ASP程序码,在站点服务器执行script语言(VBscript 或 Jscript),来产生或更改在client端执行的script语言。

Active Server Pages 简介(2)


ASP对象
Active Server Pages提供五个内置的“对象”(object),你可以直接调用:
一:Request:取得用户信息。
二:Response:传送信息给用户。
三:Server:提供访问服务器的方法(methods)和属性(properties)的功能。
四:Applicatin:一个应用程序,可以在多个主页之间保留和使用一些共同的信息。
五:Session:一个用户,可以在多个主页之间保留和使用一些共同的信息。
在多个主页之间共享信息
ASP开发的应用程序,可以在多个主页之间保留和使用一些共同的信息,ASP提供两种适用范围,如下:
一:Application:Application 的所有信息,在一个应用程序,多个主页之间,
可以让所有的用户共同使用。
二:Session:Session的所有信息,仅适用于一个用户。


Active Server Pages 简介(3)

.asp文件
Active Server Pages(ASP)制作成.ASP扩展名的文件,一个.asp文件是一个
文本文件,包括:
1.HTML标记(tags)
2.VBscript 或Jscript语言的程序码
3.ASP语法
ASP语法
ASP并不是一个script语言,而是提供一个可以集成script语言(VBscript 或 Jscript)到HTML主页的环境。
HTML标记(tags)使用“<...>”将HTML程序码包含起来,以与常规的文本区分开来;而ASP使用“<%...%>”将ASP的script程序码包含起来。
范例:asp1.asp
显示现在的日期时间
譬如站点服务器asp1.asp文件:

现在是:<%=now%>

再用户端显示:
现在是:1998/5/17 皮棉3:11:20

让我们再看一个例子。
范例:asp2.asp
重复循环
这个ASP例子,在用户端浏览器,浏览执行的结果如下,显示五个重复的句子,字体越来越大。
站点服务器asp2.asp文件的ASP源代码如下:

<%for i = 1 to 5 %>

color=#0000ff>快速掌握Internet技术


<%next%>

Active Server Pages的源代码,不会传到用户的浏览器,可以保护你写的源程序不会外漏。因此,在用户端观看到的是常规的HTML码,你的站点服务器会自动将Active Server pages的 程序代码,解释为标准的HTML格式的主页内容,如下:

快速掌握Internet技术


快速掌握Internet技术


快速掌握Internet技术


快速掌握Internet技术


快速掌握Internet技术



传送字符串到用户端的浏览器
Response.write方法,是最常用的传送字符串到浏览器的方法。语法如下:
Response.write 字符串
以下的例子向用户打招呼:
<%
Response.write "欢迎光临"
%>
也可以用如下方法:
<%...%>
欢迎光临
<%...%>

链接到指定的URL地址
使用Response.redirect方法,可以连接到指定的URL地址。语法如下:
Response.redirect URL
譬如,自动连接到首页:
<%
Response.Redirect "homepage.asp"
%>
须注意一点,若此.asp主页的内容已传送给用户,在使用Response.redirect
,将发生错误!



Active Server Pages 简介(4)


ASP Script语法
使用VBscript或Jscript的ASP语法
ASP与任何ActiveX SCripting语言兼容。除了可使用VBscript或Jscript语言来设计,还可以通过plug-in的方式,使用由third party所提供的其他譬如REXX ,Perl, Tcl等scripting语言
"加以设定,譬如ASP程序码使用Jscript语言:



<%call 函数1%>




设定某一主页的script语言使用"<%@ language = ...%>"加以设定,语法如下:
<% @ language = VBscript %>
注意:@和LANGUAGE之间一定要有空格。
一个主页使用多种语言
  你可以在一个主页当中使用VBscript和jscript语言。方法如下:
  一:使用多个""加以设定。
  二:使用多个"#include"的语法。
   
#INCLUDE包含其他文件
   你可以在ASP程序码中插入另外一个"被包括"的文件,执行到此时,先执行"被包括"文件,再继续执行下去。语法如下:
   
其中virtual代表虚拟的文件地址,FILE代表绝对的文件地址,如下:
   

被包括的#include文件,也可在包含其他的"被包括"文件。
   不能使用ASP程序码来设定"被包括"的#INCLUDE文件。如下的#INCLUDE文件将无法正确的执行:
   <%name=(test & ".inc"%>


#INCLUDE 不能置于<%...%>当中。如下的#INCLUDE文件将无法正确的执行:
   <%
for i=1 to n
...

next
%>

将#include置于<%...%>外即可。如下的#include文件可正确的执行:
   <%
for i=1 to n
...
%>

<%next%>



Active Server Pages 简介(5)

表格的处理
表格(form)
将输入的数据传送到服务器的方法,是使用HTML标记
...
的表格,在用户端浏览器输入数据,点击"submit"按钮后,将输入的数据传送到服务器加以处理。表格的语法如下:
  


·action:处理输入的数据的站点服务器程序的url地址。
  ·method:输入的数据传送到服务器的方式,如下:
     get:将输入的数据加在action设定的url地址后面,传送到服务器
     post:按照http post传输数据的方式,将输入的数据传送到服务器
  ·name:设定form的名称
  ·onreset:点击"reset"的按钮时执行所设定的子程序event
·onsubmit:点击"submit"的按钮是执行的子程序event
·target:指定输入数据结果所显示的窗口名称
ASP取得表格(form)输入数据的方法
  由表格的method可知,用户浏览器可以用如下的两种方法传送数据
  1:get:用户端将数据加到url后,格式为"?字段1=输入数据1&字段2=输入数据2&...",再将它送到服务器.譬如ACTION设为http://www.abc.com,字段Name的输入数据为jack,字段age的输入数据为15,则使用的get方法,传给站点服务器的数据为http://www.abc.com?Name=jack&age=15.
2:post:用户端利用http信息数据字段将数据传送到服务器.  


二:post: 用户端利用HTTP信息数据字段传送到服务器。
ASP取得表格(form)输入数据的方法,是使用Active Server Pages一个内置的"对象"(object)---request,依据get,post方法而异:
get :使用"输入数据=Request.querystring("字段名"),将附加于url后的
数据取出,以取得此字段的输入数据。
post:使用"输入数据=Request.form("字段名"),读取HTTP信息数据字段,以取得字段的输入数据。
Request.querystring范例
范例:aspform.asp
使用Request.querystring("字段名"),将附加于url后的数据取出,譬如:

按此处,通过request.querystring取得name,age


Name:<%=request.querystring("name")%>
\
Age:<%=Request.querystring("age")%>
Request.querystring取出字段name的输入数据为Jack,字段Age的输入数据为15,
在用户端使用浏览器,浏览执行的结果如下:
按此处,通过request..querystring取得name,age
Name:jack
Age:15
Get范例
请看个例子。
范例:aspform.asp
这个例子的表格(form)使用Get方法,在用户端使用浏览器,浏览执行的结果如下,输入表格点击"写完了"按钮后,将显示处理的结果。
站点服务器aspform.asp文件的程序码如下,点击"submit"按钮后,执行站点服务器的asp1b.asp:


姓名:


特性:




asp1b.asp文件的ASP程序代码如下,由于表格(form)使用get方式,ASP程序码
使用"输入数据=request.querystring("字段名"),将附加于URL后的数据取出,
以取得此段的输入数据:

<%=request.querystring("input1")%>你好,你的特性是<%=
request.querystring("input2")%>

Request.form
Request.form读取HTTP信息数据的字段,以取得使用POST方式的表格form输入数据。语法如下:
request.form(name)[(index)|.count]
· name:字段名。
· index:当同一字段输入多个值时,指针值index指定要读取同一字段的那一个值。
范围由1到request.form(name).count
· count:由request.form(name).count可知name字段输入几个值。若无此name字段,
则count=0。
譬如以下的例子,其中input1为字段名,request.form("input1").count
得知input1字段输入几个值:
<%
for I = 1 to request.form("input1").count
response.write request.form("input1")(I)&"
"
next
%>
若input1有两个输入值,譬如为value1和value2,则以上的例子,在浏览器上将
显示:
     value1
value2
同一字段输入多个值时,若未采用指针值index指定要读取哪一个值时,将得到多个值,各个值中间以逗点分隔。
你可以使用"for each item in request.form("字段名"),重复取得此字段输入的所有多个输入值,以上的例子也可由以下的程序得到相同的结果:
<%
for each item in request.form("input1")
response.write item & "
"
next
%>
你可以使用"for each x in request.form",重复取得所有字段的输入值,譬如:
<%for ecah x in request.form%>
<%request.form(<%=x%>) = <% = request.form(x) %>
%>
<% next %>
若字段input1有两个输入值,譬如为value1和value2,则以上的例子,在浏览器上将
显示:
 inut1=value1
input2=value2



Active Server Pages 简介(6)

POST范例
让我们看一个POST的例子。
范例:aspform.asp
站点服务器aspform.asp文件的ASP程序代码如下:

姓名:

特性:




写完后点击“写完了"按钮时,所执行的asp1a.asp文件的ASP程序代码如下:
<% =request.form("input1")%>你好,你的特性是<%=request.form("input2")%>
若传给asp1a.asp的值,可能为:
input1=jack&input2=小肚微凸+漂亮
则在用户端使用浏览器,浏览执行的结果如下,输入表格点击"写完了"按钮后,将显示处理的结果。
   jack,您好,您的特性是小肚微凸,漂亮
若你设定name字段名,则站点服务器将解析此字段的输入值。若你需要未经解析的输入值,只须使用"request.form",不含name字段名。譬如asp1a.asp的ASP程序代码如下:
   <% = request.form %>
若输入的与上面的例子相同,于用户端使用浏览器,浏览未经解析的输入值如下:
   input1=jack&input2=%A4p%A8%7B%B7L%A5Y&input2=%BA%7D%ABG
Request.querystring
Request.querystring,读取HTTP信息数据字段位,以取得使用GET方式的表格form
输入的数据。
输入的字段和数据将接在
所设定的URL地址后面,
先加一个"?",字段和数据之间用"&"分隔之,譬如:
URL地址?input1 = value1&input2=value2
Request.querystring将解析出输入的数据value1,value2.
语法如下:
request.querystring(name)[(index)|.count]
· name:字段名.
· index:当同一字段输入多个值时,指针值index指定要读取同一字段的那个值。
范围由1到request.querystring(name).count.
· count:由request.querystring(name).count可得知name字段输入几个值。
若无此name字段,则count=0.
Request.querystring解析在servervariables的Query_string变量。
同一字段输入多个值时,若未采用指针值index指定要读取哪个值,则将得到多个值,各个值中间以逗点分隔。



Active Server Pages 简介(7)

站点数据库访问法

站点数据库的解决方案
如何让用户从浏览器画面中,通过internet或intranet,查询站点数据库的数据,甚至输入,更新和删除站点服务器的数据库信息呢?
访问数据库的解决方案有如下几种:
1:CGI(Commom Gateway Interface):传统方式。
2:IDC(Internet Database connector,Internet数据库连接器)
与IIS(Internet Information Server):简易的站点数据库访问解决方案。
3:ADC(Advanced Data Connector,先进的数据库连接器):在用户端的
浏览器上执行数据查询动作的频繁的数据查询解决方案。
4:ADO(ActiveX Data Object ,Activex数据对象)与ASP(Active Server Pages):
完整的站点数据库访问解决方案。

Active Data Object与ASP
ActiveX Data Object
问数据库,可采用ASP内置的一个Activex Server component---Database
Access component(数据访问组件),使用ActiveX Data Object
(ActiveX数据对象,简称ADO)的技术,让你可以与Active Server pages(简称ASP)
结合,以提供访问数据库的功能。\
ActiveX Data Object ( 数据库访问组件,简称ADO)是什麽东西呢?Active Data Object的技术,让你可以与Active Server Pages结合,以建立提供数据库信息的主页内容,在主页画面执行Structured Query Language(结构化查询语言,简称SQL) 命令,让用户在浏览器画面中输入,更新和删除站点服务器的数据库信息。
ADO使用RecordSets对象,作为数据的主要接口。
ADO可使用Vbscript,JavaScript语言来控制数据库的访问,与查询结果的输出显示画面。
ADO可连接多种的数据库,包括SQL Server,Oracle,Informix等支持ODBC的数据库。

ADO执行环境
在服务器端所需要的ADO执行环境如下:
1:windows NT server.
2:安装Internet Information Server(IIS)3.0(含)以上版本.
在用户端所需要的ADO执行环境,只需要一般的浏览器即可.



Active Server Pages 简介(8)

数据库数据来源设定
若要访问NT站点的数据库,须于"控制台"中的"odbc"建立数据库名称(用户数据来源名称),数据库所用的驱动程序和数据库文件等.
新建数据库来源的步骤
执行"设定"的"控制台"中的"odbc",选择"用户数据来源名称",点击"添加"按钮,选定数据库所用的驱动程序,如为Access数据库,选定"Microsoft Access Driver",点击"完成"按钮.
在odbc设定中,在"数据来源名称"输入数据库名称,以便以后在程序中调用称呼,点击"选定按钮,选择数据库文件,然后点击"确定"按钮即可.
ADO数据库设计要领
只要几个步骤,就可以应用 Active Data Object (ActiveX 数据对象,简称ADO)的技术,在站点服务器执行访问查询数据库的动作.
第一步:
ADO数据库设计要领的第一步,就是使用"Server.createobject"建立连接的对象,并使用"Open"打开待访问查询的数据库,如下
set conn = server.createobject("adodb.connection")
conn.open "数据库名称"
数据库名称即为在"ODBC"设定的"数据来源名称".
第二步
第二步设定SQL命令,使用"Execute"命令,即可开始执行访问查询数据库的动作.如下:
其中conn为第一步所设定的名称:
set rs = conn.execute(SQ)命令
第三步
第三步,使用如下recordsets对象的命令,显示查询的结果,其中rs为第二步所定义的名称:
.rs.fields.count:recourds的字段数.
.rs(i).name:第i(指针)个字段名,i由0算起到rs.fields.count-1.
.rs(i):读取第i(指针)个字段的记录,i由0算起到rs.fields.count-1.
.rs("字段名"):读取指定的字段的记录.
.rs.eof:是(true)否(false)已指定最末笔.
.rs.movenext:将指针移到下一笔.
.rs.moveprev:将指针移到上一笔.
.rs.movefirst:将指针移到第一笔.
.rs.movelast:将指针移到最末笔.
.rs.getrows:将查询结果存于数组当中,如v = rs.getgows(100),再读取数组v(col,row)的值即为查询的记录.
.rs.properties.count:得到ADO的Connection 或Resultset的属性总数.
.rs.properties(item).name:得到ADO的Connection 或 resultset的属性名称
.rs.properties(item):得到ADO的Connection 或Resultset的属性值.
最后,在显示后使用如下的命令,关闭数据库:
rs.close
conn.close
譬如,将查询结果显示于一个表格的程序码如下:



<%for i=0 to rs.fields.count-1 %>

<%next%>

<%do while not rs.eof%>

<%for i=0 to rs.fields.count-1%>

<%next%>

<%
rs.movetext
loop
rs.close
conn.close
%>
<%=rs(i).name%>
<%=rs(i)%>



Active Server Pages 简介(9)

查询数据
若要查询数据库的数据,则使用select的sql命令.
select的基本语法如下:
select 字段名#1,字段名#2,...
from 数据表名#1,数据表名#2,...
where 条件表达式
order by 字段名#1,字段名#2,...
.select:所接的字段明为待查询的字段,各字段名之间以逗号隔开.
.from:所接的数据表名称为待查询的数据库数据表名称,各数据表名之间以逗号隔开.
.where:所接的条件表达式为设定的查询条件表达式.
.order by:所接的字段名为排序的字段,将查询的数据加以排序.
指定多个字段时,先以字段名#1排序,若数据相同在按字段#2排序,...,各字段之间以逗号隔开.
更改数据库数据
若要更改数据库的记录,既在数据库中增加,更新,删除记录等,则可使用insert, update, delete的sql命令.

没有评论:

wholesale retail company from china

achinaseller.com is a professional wholesale retail company, having our own factory with 5 years of wholesale retail experience. Achinaseller.com is also cooperating closely with many factories, so the price that we offer to the consumer is directly from the Chinese Factory. Without leaving your home, you could order your own products at achinaseller.com at the lowest price.
We service over 100,000 registered buyers, delivering to virtually every country in the world. Our warehouse and office are staffed by a young team of Chinese and Western staff.
Happy AchinaSeller buyers include frequent wholesale importers, famous ecommerce websites, eBay powersellers, retail shops and startup home import businesses. On a daily basis, we serve corporate buyers, drop-ship experts, home business Moms, and small bussiness wholesaler