|
ASP在动态网站设计中的应用
摘要 :随着网络技术的快速发展,人们越来越依赖于勺 _联网站来获取信息,信息的即时性和大容量性促使网站从“静态”逐步转变为“动态”,动态网站的设计技术也随之发展成熟起来介绍了动态网页的一些特点以及日前在动态网页设计中应用相当 )‘一泛的开发环境— ASP,以如何建立基于 IIS的 ASP动态网站为中心,简要介绍了动态商业网站设计的趋势,并以实例分析比较直观地展示了 ASP在动态网页设计中的优越性 8 d" r! p/ j7 \7 t" ?- p
5 }! k6 @! D. s3 }$ F" O
/ v4 j2 J& q+ Y. [7 v 关键词 : 动态网站 ;物件导向 ;表单 ;脚本语 A * P7 m# D* e1 L8 A
* Z! z. ?+ T' A( M) X8 l/ d$ g
; t+ C5 u* b! A0 J * c& D0 W; n0 Y, S
" n | N7 p' l% ~ g% g) v- R$ g) F4 W9 @% `' R6 m9 A
1 引言 5 m0 y* w, R5 o! _' N: R }$ {
+ U1 j' t: l+ d( I& V& H
0 F/ M! q* H) x& b% B 目前呈儿何增长的互联网站中,有相当一部分仍固守“静态“,无形中已大大落后于时代的步伐 .所谓“静态”指的就是网站的网页内容“固定不变“,当用户浏览器通过互联网的 HTTP( Hypertext Transport Protocx>1)协议向 WEB服务器清求提供网页内容时,服务器仅仅是将原已设计好的静态 HTML文档传送给用户浏览器 .其页面的内容使用的仅仅是标准的 HTML代码,最多再加上流行的 GIF' 89A格式的动态图片,若网站维护者要更新网页的内容,就必须手动地来更新其所有的 HTML文档 .“静态”网站的致命弱点就是不易维护,为了不断更新网页内容所做的工作量是巨大的 . & }; [! G7 O! n6 k( `
: d. M! p8 c' L s
5 h% d1 K$ c8 ?+ f9 z% E+ t 随着网站信息量的不断增大,静态网站逐渐没落,动态网站已经成熟起来,它的“交互性”少自动更新”、“因时因人而变”等诸多优良特性无疑很好地适应了信息时代的要求 .能够使网站“动态化”的技术较多,目前比较流行和成熟的是 ASP技术 .
' b- U" Q2 x3 P" T* X" ~
f1 s8 C2 i* R% ?* Z/ P D
. c$ t( B) K8 G# \; \2 基于 ASP的动态网站建设概述
% ?( Q; @8 m, F: R5 q! G( t0 ]* \* S0 T) W7 k% }1 J
! {* Y- }6 I* C
2.1 “动态”的概念
0 |: y% H; E/ N/ _" d- N; H' t. o
/ T$ R/ y% P, X; K. V. { i' W+ i2 ?" ^. V( m
所谓“动态”,并不是指那儿个放在网页上的 GIF动态图片,在这里笔者为动态页面的概念制定了以下儿条规则 :
; q3 J) r! Z8 }7 Y9 H- j3 u- P* P" N* c+ `& l
0 j/ O K6 e$ Y* y6 Z# q U& Q$ s
1) “交互性”,即网页会根据用户的要求和选择而动态改变和响应,将浏览器作为客户端界面,这将是今后 WEB发展的大势所趋 . 6 E; A0 O1 A8 n2 _0 x
( q9 Q; {2 a2 ]& r' P7 @" \! n' O0 l& }% g: F+ A& f% y0 m
2) “自动更新”,即无须手动地更新 HTML文档,便会自动生成新的页面,可以大大节省工作量 .
- d7 z o+ _' m" X; o7 w! q2 S+ J# L. L2 q$ d+ l+ n
5 K0 a4 p0 l' v, M( k
3) “因时因人而变”,即当不同的时问、不同的人访问同一网址时会产生不同的页面 .
. ~$ A0 o ]$ i6 j9 m, }0 U: {( B% g8 B6 o9 ^
2 H( S% E6 [: a% l3 r2. 2 ASP 的概念及特点
/ x2 r8 Y; e+ e% d) E& S6 i1 B. J5 ]
7 [9 t9 u8 c1 z: A* ~Microsoft Active S 。二 Pages即我们所称的 ASP,其实是一套微软开发的服务器端脚本环境, ASP内含于 IIS3. 0和 4. 0之中,通过 ASP我们可以结合 HTML网页 ,ASP指令和 ActiveX元件建立动态、交互目 _高效的 WEB服务器应用程序 .有了 ASP你就不必担心客户的浏览器是否能运行你所编写的代码,因为所有的程序都将在服务器端执行,包括所有嵌在普通 HTML中的脚本程序 .当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度 .以下罗列了 Active S。 * E" l$ r" n/ u/ ? L- V9 ?
8 W6 a) _) E) @! q% ]
% M3 o5 r6 D# R* Q' M1 B" F% C
二 Pages所独具的一些特点 : 1 H* {7 ~! n& ~" H! f
; j- W7 t! Z O: v* `8 `, H7 |/ m+ O7 x) r1 p) C! F3 {
1 )使用 VBScript JScript等简单易懂的脚本语言,结合 HTML代码,即可快速地完成网站的应用程序 .
" f7 T' f9 b! @& b- T
% |" y4 F9 F8 K* S5 U* z6 O, z' J! B" E2 o' U i1 D
2) 无须 Compile编译,容易编写,可在服务器端直接执行 .
% @" v, ?6 z8 X D: y' L8 g
& J* Q0 a' \3 Z/ X" M4 U: j, o
' X) H j: R% [# Y( `3 R5 [3) 使用普通的文本编辑器,如 W indow、的记事本,即可进行编辑设计 .
/ D# ~) `6 W' g1 \: o% o& a2 c5 W) ]: }
9 E9 v: R% i( X' q
4) 与浏览器无关 (Br+wser In<lepen<lenoe),用户端只要使用可执行 HTML码的浏览器,即可浏览 Active 2 i$ T) H! e, ?" W. H' e9 @
3 ~5 J& w% H9 Q* J; I5 k4 ~- j0 ?% @
* ]7 B8 @4 E; ^8 w% vS 。二 Pages所设计的网页内容 .Active S。二 Pages所使用的脚本语言 (VBSoript Jsoript)均在 WEB服务器端执
) n: Q, a$ A) h. x. ~
+ _: E1 g- O+ B0 Y5 |- Y
6 n! s o1 U( \; E# U, I) A行,用户端的浏览器不需要能够执行这些脚本语言,如图 1所示 .
7 t* k/ p, r8 F, x$ l6 |
. _& e8 _6 I3 K1 l: i L! o( p+ x$ {# y7 q7 @* B! _% F
用户端浏览器 IE或 NS1 r1'1'1'洁求 11而 1' III]子 3 z E1 G& H& Y6 z( E
. S3 Y! m& e5 Y3 A3 h
' r& p1 X1 T6 r) U" {WEB 服务器 Active Server P
/ ?2 X' U' J2 w3 Y* @; r, Y* Y f9 g, ?- y+ J* G: }
$ `- B& t& @- |8 _. T+ q6 T
5) Active S 。二 Pages能与任何 AotiveX scripting语言相容 .除了可使用 V BSoript或 JSoript语言来设计外,还通过 plug- in的方式,使用由第三方所提供的其他脚本语言,譬如 REXX ,Perl ,Tol等 .脚本引擎是处理脚本程序的 COM( Component Object Model)物件 .
H8 { p' E* Q1 W
. {0 E2 R/ p! V: \. b5 [% F+ i3 X L+ ?3 [& v) |6 ?+ C
6) Active S 。二 Pages的源程序,不会被传到客户浏览器,因而可以避免所写的源程序被他人票 J窃,也提高了程序的安全性 . + F; r# D& M/ d) [1 V
8 {6 A, b$ j" u. O0 C, b
& n; Y# j- L0 i1 S
7) 可使用服务器端的脚本来产生客户端的脚本 . 8 |- z& c6 w9 T* P- D# y) R
9 a5 h$ O, {! V2 V. N' q' R0 Z v
9 a8 h# M# O% z 8) 物件导向 (Obje<,一 (>riented) .
1 d0 T6 e- ]' q" @! O9 P/ w5 L: r+ j$ B( S, A- T8 l
. B n0 h" P8 v7 M3 F. o2 ? A) y1 z0 u 9) AotiveX S 。二 Components( AotiveX服务器元件 )具有无限可扩充性 .可以使用 Visual Basic ,Java VisualC++,Cobol等编程语言来编写你所需要的 AotiveX S。二 Component.
, I1 ~4 _$ ^2 G$ G) p8 Y2 G: p! C( S& l( C Y
4 _0 N7 z \& o: a2. 3 ASP 技术流行的原因 2 m& i. M7 X( Q* f
" o5 F3 c: ^5 ]9 ?
- B3 L2 _* u# f- u1 C 如果你是个人网站的维护者,使用的是免费主页空问,那么绝大多数情况下你只能使用 Java ,Java Script和最新的 DHTM L技术 .DHTML就是当网页从 WEB服务器下载后无须再经过服务器的处理,而在浏览器中直接动态地更新网页的内容排版样式、动画 .
8 u' M# n6 y! {% F) ?0 c5 z, X# d" n9 G, E" o" r) N
\ p) {; F% w' M/ J
或许对于一个个人网站来说,充分运用 DHTML技术足以令网页栩栩如生,动感十足 .然而对于建立商业网站的企业而言,仅仅拥有 DHTML是远远不够的 .因为仅仅发生在客户浏览器端的动态效果是无法满足商业网站大量信息查询,客户咨询,资源交互等“动态”需求的 .因此作为商业网站的设计者,必须要设计出更具实用性和交互性的“动态”网站 .由于绝大多数商业网站都具有大量的数据和信息,而建网的初衷也就是在于方便客户查询企业资料,方便同客户的交流,及时获得信息反馈 .那么,就必然会面临如何让使用者在浏览器界面中,通过互联网或内联网 (Intran川查询 WEB数据库的资料,甚至输入、更新和删除 WEB服务器上的资料 . & U" s" \& g8 I9 M$ Q0 S5 Z
2 m) B/ M; p) n+ V* @# A
. f+ e: C/ v! h- @7 {
目前 )匕种常用的“动态”网站设计方法有 :CGI ( Common Gatc}vay Interlace) ,IDC (Internet Database Connec-tor) ,ActiveX Data Ohje川 ADO),相比较而言 ADO具有容易使用、开发执行快速、消耗系统资源较少和占用磁盘空问小等优点 .根据许多从事网站设计工作多年的专家的经验, ADO和 ASP的结合可以高效快速地使网站“动态化”,使得网站便于管理和维护,从长远来看这对搭档也势必成为今后一段时问内“动态’ 'WEB的核心技术,因此 ASP技术在动态网站设计中的流行也成为了一种必然 .
; y0 G$ }( w; ^# f' d* i0 x5 b$ b, U0 c% Z9 F% }0 A
# `, H0 J7 N4 ~3 实例 8 W$ |2 o$ l+ i) c" w0 K
0 t2 W8 n& D7 E/ D- C
% `1 |+ }" S$ A. b2 I
以下通过儿段源代码很好地说明了 ASP的简洁、灵活、迅速、多变的特性 .
3 w$ [+ |( I; ?% v9 w$ i) G( x( b, b% V2 I. G- M. r9 S* L
% w8 s9 F( B+ [; ]
建立一个自动监测浏览时问并根据不同时段动态显示不同页面内容的 ASP程序,用记事本书写该源代码,存为 [estl. asp:
6 h: h8 u4 e( \4 o9 q+ n0 b
" o, L8 W9 I$ r# K6 w2 P
1 j+ @9 C# c& `+ E0 D( `1 n <html> 8 _, L. ]; u# B4 {
5 p: |! {. U2 a/ f# X: \2 q( b6 ~
7 P$ M' K/ }+ X3 J8 y' A <ho<ly> ; ]3 s, c3 P$ N: M/ }/ e
# F1 v' H+ b" A" J; |) L, q1 d
o, N* o3 q) `
<F01}T COLOR=“Green">
- R( o; t. h( z/ e. e0 N- N q6 M; M1 m: o7 `3 Q% y$ h
3 J4 b9 |" c. r( ^
<%If' T 油 e<#12: 00: 00# An<1 T油 e>=#00:00:00# Then%> 3 `! x6 g- S2 b2 k R+ R% O) p) V
: O' f! O! a% Z* D$ G
+ @' h* a9 t" Y) ^
早上好,今天天气不赖啊 !
, q0 D8 P# E. g9 K6 @" L/ S
/ i2 {, O, l% D
k* G3 _& J# Y7 t0 A' N <%E1seIf' T 油 e<#19: 00: 00# An<1 T油 e>=#12:00:00# Then%> 7 h( Q- l# m2 M4 m0 W
) k0 Q8 V8 Q5 J) e( U+ A7 @# k; `% G
下午好 !
$ i; m/ w3 v ~ i; f) G( @ q
) U( U' |5 n/ f1 @7 D
* f7 V$ c( P* m5 Z+ k- }& A <%Else%> " |6 ]5 q0 \* z, G; u8 _- U9 |
% R/ c& L! j6 B: S
8 z+ J2 c% n. ?% N 哈 u}!今晚你有没有去 IRC聊天 ! % o6 {/ V6 o/ a% j) Q9 B3 | v7 d
+ d& q7 y ~$ T& f$ {: u# c
6 ~: s% K% N; V3 A+ L& r <%End If%> : {2 f# M, F! E% O: u
2 q. ^' w$ o' r) R
+ o7 W" B2 l1 f0 c( f </ho<ly>
, g" k& C1 t% N4 F- J& J2 W& z; z J0 U J: F7 W2 |+ A' B, ~
$ L, s3 \5 u& S& q* U
</html>
$ I D* g; H- _/ { ?0 `9 W( ?7 `
$ P) `1 z1 C6 _+ v8 k8 d x8 q" q( S ]" y8 _
将 testl. asp保存在 WEB服务器的虚拟目录 (如 :aspsamp/ )下,并在浏览器中用 HTTP的方式进行浏览,如 :http://yourcx>mpu[二二 e/ aspsamp/ test 1. asp.
8 {' I7 c% @9 y; o) A: e' a- v& E: _
0 L1 j& }% O# m1 p
虽然,这只是一个非常简单的实例,而 A_这一功能完全可以通过 JavaScript完成,但是不难发现使用 ASP要比 JavaScript简洁迅速得多,而 A_运用此法,完全可以轻而易举地令你的网页在不同的时段展示不同的风格,此例中的“ T ime"实际上是一个 V BScript内置的显示系统当前时问的函数,由于系统默认的脚本语言是 V BSeript,因此在 ASP命令中调用该函数时,脚本引擎会自动将其转换成当前的系统时问 .接下来是给 testl. ; K$ C5 r' e) o1 F& I& k
, T6 X) ~' j! I" y) \# V
6 g \" G0 o( lasp 添加一点色彩,在 <holy>标识中添加“ bgcx>lor=“ <%=hgc% >””即变为 <body bgcx>lor=“ <%=bgc% $ e: ~1 T; t2 M4 q9 X S& P
% E3 U& T, ?% H" [+ S0 w
8 ` |6 t* P2 x+ j) \; a> ” >,并在 <holy>标记前添加如下语句 :
" P5 i# d8 k$ O, q( J' l
1 j, V4 n- t$ f6 H1 O* ^3 n
( u8 u+ d% b( {* h <%If' T 油 e<#12: 00: 00# An<1 T油 e>=#00:00:00# Then
; L/ [6 n1 k6 w. R% F2 I" A, x: {
$ q5 D3 F: y* S1 @9 K& j K5 ?4 {( J! j0 _
bg}}=“silver" . x6 H$ S7 y3 o. H0 l
. e% K# v- Z- m
9 w5 }* Y, r7 Y5 l
E1seIf' T 汕 e<#19: 00: 00# An<1 T油 e>=#12:00:00# Then + V% o" e* ~/ T
p/ s6 Q! A! I9 S0 Y- U: Z+ |3 X( Y" Z$ ~ H
hg( 一“ navy 1 {9 w4 x0 w- t
* c* M: K. _; R7 `! j# ^
; f/ W; w- {: c% f+ |& r3 ~ Else 1 w( O$ s7 O6 \
7 r: c+ \6 q& N! ]3 O- L
* J1 a0 _5 i3 W0 Y0 @7 Q0 ^ bg}}=“re<1"
) v Q1 {4 J$ \: N) Y
& m) {3 S, Q. |. n) X( D6 A0 K) I& \2 t* ^& r
En<1 且
6 k# h2 {) _, [4 @- p4 b* Q- c- V0 _$ }
: x1 z. S: j3 b1 A' e5 h
%> 3 d1 Q5 D8 {3 W4 J+ m
. t0 z' r: t" o' o: I) H! T+ G7 @7 j- y" \& Z. K* X+ I
如此一来,当用户在不同的时段访问该页面时,将会看到不同的页面背景色 .我们可以做的事情还有很
6 }) \4 L* C7 N% y, f) Q4 j+ I* ?6 P* ~. h4 o, p
, Y/ o H' ~4 V多,譬如想知道在凌晨至十二点之问浏览该页面的客户的姓名,并向客户问好,那么下面的这段程序将能助你达成心愿 .首先你需要在页面中设置表单,将以下 HTML代码剪贴到“ <%If Time<#12:00:00# An<1 Time>=#00:00:00# Then%>”之后 : ( Y8 P, H! F- q
9 f( E7 {; m& i& D
. A4 M* E H5 x+ e! ~
欢迎光临我的主页,清填写以下信息 :< FORM METHOD= "POST" ACTION= "testl. asp"> x) Q p: Q E- C# B/ N
% w& h: |# P2 v, g- B+ t9 i7 @
7 |7 [" _" k, H8 u/ i0 A7 W. } <P> First Name:<INPUT NAME= "fname" SIZE= "48"> i" ~ F3 C% v4 r
1 p; k) l" t! e" d. E- n" o( V
* `' E" h. [$ e, |7 g! P <P> Last Name:<INPUT NAME=“lname" SIZE=“48">
# W7 |6 N- Y9 F+ m( Y: F
4 I0 K) f |7 n" s" G4 q0 m( l. ^+ w# q' ^# U
<P> T itle:<INPUT NAME= “ title" TYPE= RADIO、 4LUE= "mr">Mr.
: s9 ` R4 i9 D& g: |' b! R$ U* x* E+ s$ {5 n s a
9 B. u- M0 R7 y1 I( j. ] <INPUT NAME= “ title" TYPE= RADIO、 4LUE= "ms">Ms.
1 S7 }% A1 @9 z* f8 g- @! o4 l6 A0 c" d3 K$ n0 n# t5 ^2 u8 A
* q% z! F! ~+ V
<P><INPUT TYPE= SUBMIT><INPUT TYPE= RESET> 8 O: ` A2 @0 V
, J7 l* I$ h3 t3 J: Q
, k0 n- Y$ A0 l* c' E$ C </FOR1Vl> . e7 }, N6 z1 s' y; {
( t/ n: f3 M [' s) A- C* _# u9 Y% z$ I/ C1 m* c
然后在以上 HTML代码后面添加如下 ASP命令 : : P- s( E2 q( h0 Y8 v
B& u. G% g% k- u% b7 F1 \* w7 v: D- g- q$ A' B
<% title=request. form(“title")
' N* b! r/ k2 O3 W
* t: y- b; W4 a* l, C) w
, Y$ X, i/ v3 r! |& [- F6 d if title= "mr" then 3 `3 n9 K# e8 Z; b" y
b/ T. a) C# \/ m. p
5 Z; A8 S$ b* J8 ` %> 8 t+ e& ?' _. A6 P0 `
; ]7 D5 h9 O7 {$ [0 Q& L$ n- h$ i+ Q
; F! l3 d- Y6 s. x* D# R o( w 欢迎您 Mr.<%=二 qu舰 .拓 mi(+.二 ;request. form( (name )%>. 7 {1 ~. X* p2 Y( [6 P' s5 P8 }; o4 @
; ^" g+ V$ ]* G$ L7 E
! w! z/ h0 ?* R. G; v! e <%elseif title= "ms" then%>
& i& H7 b r2 d0 y4 r6 J0 V( k
* m. T9 G* Z- t! k0 N. n% @1 c0 B# g0 b, h. F
欢迎您 Ms.<%=二 qu舰 .拓 mi(+.二 ;request. form( (name )%>. <%else%> 5 L' O7 ?9 a s/ y; \& F+ ?
; O6 d2 o: {* ?
6 B7 j0 L1 k( s/ D2 r <B><Font cola </font></B>
( \1 @5 A1 D" o4 A( k! w% U$ {; c, T) ~7 `
0 i7 s, F& D% c& b' O
<%end if%> 5 u4 \# \% i- g* c
* C! u* K' |/ a* B% O; o- f; V# \5 N. S
保存文件 testl.
5 l7 d! h2 _0 I M& a
" w" s7 R+ L6 w0 C+ W
, e9 o9 W- n z# P$ J8 ?# S+ O12: 00: 00 之问的话, >r= blue>欢迎您 <%=二 que从 .长 )mi(+.二 e ;)& + ;&二明 es[.长 )mi(“玩二 e ;request. form( (name ) & &request. form( lname%>
( x5 E" Q9 C+ z
, a: R' s0 W- S, q7 O5 T
/ I% d3 C- U5 ^7 e" j; H' jasp ,并在浏览器中以 HTTP方式进行浏览,如果此时的系统时问在凌晨 0: 00: 00和中 ! \& {: F' x* T! M6 f. w2 {( T
0 p% \5 |8 i( m& h8 k6 r5 N2 T4 D3 A$ A8 C
这其实是一个在 Internet和 Intranet上常见的功能,即当用户在浏览器端填写完表单后,通过调用一个通用网关程序将用户数据传送到服务器,由服务器进行处理后再将结果返还给客户浏览器 .过去为了实现这样的功能必须编写一个独立于 HTML之外的 CGI程序,并通过 HTML进行调用,撇开 CGI编写复杂等缺点不谈, CGI的执行效
" c+ i/ I1 F1 H" N" }. F( U# a5 u2 k
/ k# P; @9 P8 \ Q6 Q
率也是一个大问题,每一个表单 (form)均须执行一个可执行文档,当多人同时上线使用时,多个文档同时执行,将大大降低 WEB服务器的执行速度,如今 ASP提供了与 HTML完全相融的编程环境,显然要比使用 CGI便捷得多 . - b1 i. C2 g% L3 V3 Z( k7 v
/ J5 E$ T2 e* v% x( {2 M: q: O/ j# B, e; e
4 结束语
6 g) g K2 _/ c7 j: ~8 _3 o. e
. X; b) _) U. B) |2 \ Z( M Q' K- X: q1 q" i
ASP 作为动态网页设计的一套服务器端脚本环境,使得用户浏览网页的绝大部分工作量都能够在服务器端执行,大大减少了浏览器的负担,只要使用一般的文书编辑程序,如 Windows记事本,就可以编辑发展 ASP,它具有简洁、高效、迅速、多变等许多的优点,使网站具有大信息量传输、便于用户实时查询的特性,总而言之 ASP不愧为动态网站制作的利器 |
|