ASP(Active Server Page) Note

¥»ºô­¶¥H¥´³yµL»Ùê¾\Ū¬°¥Ø¼Ð¡A¥i¥H¥Î¥ô¦óÂsÄý¾¹¨ÓÆ[¬Ý¥»ºô­¶


²¤¶

ASP(Active Server Pages) ¬O¥Ñ Microsoft ©Ò¶}µo¥X¨Óªº¤@ºØ§Þ³N¡A³oºØ§Þ³N³z¹L¦øªA¾¹ºÝ°õ¦æ´y­z»y¨¥ (Server-Side Scripting) µ{¦¡½Xªº¹BºâÅÞ¿è¡A¨Ñ¦UºØÂsÄý¾¹¾\Äý¡C


³q±`¦b¼¶¼g ASP µ{¦¡®É¡A·|¿ï©w¨Ï¥Î¬Y¤@µ{¦¡»y¨¥¨Ó¼¶¼gµ{¦¡½X¡A¦p¡GVBScript, JavaScript, Perl, Tcl, Pythonµ¥¡AµM«á¥Î¯S§Oªº¼ÐÅҨӰϹj³o¨Çµ{¦¡½X¡A¸m¤J¤@¯ëªºHTML¤å¥ó¤¤¡C¤@¥¹¨Ï¥ÎªÌ³z¹LÂsÄý¾¹¨ÓŪ¨ú ASP ÀÉ®×(§Y°ÆÀɦW¬° .asp ªºÀÉ®×)®É¡A¦øªA¾¹´N·|°õ¦æÀɮפ¤ªºµ{¦¡½X¡AµM«á¦b¹Bºâµ²§ô«á¡A§â¹Bºâªºµ²ªG¥H¼Ð·ÇªºHTML®æ¦¡¶Ç¦^¨ìÂsÄý¾¹¡C

ASP¤´«]­­¦b¦w¸ËIISªººô¸ô¦øªA¾¹©M¦w¸ËMicrosoftªºPWS(Personal Web Server)¤~¯à¨Ï¥Î¡A¦ýChili!Soft¤½¥q¤w¸g¬ãµo¥i¥H¦bUnix¤ÎLinux¨Ï¥ÎªºASP¦øªA¾¹, ·sª©ªºBigApache®M¥ó¤]¦P®É¤ä´©ASP¤F,ÁÙ¦³InstantASP¡C

¬ãŪ­I´º

Web server¬[³]

¥Ø«e¤ä´© ASP ªºWeb Server ¦³ MicroSoft WinNT/2000/XP ªºIIS 4.0/5.0/5.1 ¤Î Windows 98/SE/ME ªº PWS(Personal Web Server)¡C

¦w¸ËPWS

¦w¸ËIIS

Windwos 2000 Professional ª©ªº IIS ¤]©M PWS ¤@¼Ë¤p¾¹¡A¦³10­Ó³s½u¤W­­ªº­­¨î¡C¯uªº­n¬[³] IIS ºô¯¸¦øªA¾¹¡AÀ³¸Ó¦b¦³¦w¸Ë Win2000 Server ª©ªº¾÷¾¹¤W¦w¸Ë IIS¡C

±±¨î¥x
¡@·s¼W/²¾°£µ{¦¡
¡@¡@·s¼W/²¾°£Windows¤¸¥ó
¡@¡@¡@Internet Information Services(IIS)
¡@¡@¡@¡@¸Ô²Ó¸ê®Æ //SMTP Service, ÀÉ®×Âà´«³q°T¨ó©w(FTP)¦øªA¾¹)

®Ä¯à½Õ¾ã

ºô¸ô¤WªºªÚ¾F/¥kÁä/¤º®e
¡@°Ï°ìºô¸ô/¥kÁä/¤º®e
¡@¡@ÂI¿ïFile and Printer Sharing for Microsoft Netowrks/¤º®e
¡@¡@¡@ÂI¿ïºô¸ôÀ³¥Îµ{¦¡ªº¸ê®Æ¶Ç°e¶q³Ì¤j¤Æ/½T©w
¡@¡@¡@

±Ò°Êiis

§Q¥ÎInternetªA°ÈºÞ²z­û §Q¥ÎÂsÄý¾¹
±±¨î¥x
¡@¨t²ÎºÞ²z¤u¨ã
¡@¡@Internet ªA°ÈºÞ²z­û

http://localhost:2008/iis.asp

localhost : ¥ç¥i¥N´«¦¨ip
2008 : ¨t²ÎºÞ²zWeb¯¸¥xªº³s±µ°ð¸¹½X
iis.asp : ¥D¾÷¦WºÙ.asp

WEB¯¸¥x¥i¯àªº²Õ¦¨

¦Wµü¸ÑÄÀ

«Å §i

¨Ï¥Îªº»y¨¥

ÁöµM§A¥i¥H¨Ï¥Î¦UºØµ{¦¡»y¨¥¡A¨Ó¼¶¼g ASP ªºµ{¦¡½X¡A¦ý Microsoft ªººô¯¸¦øªA¾¹µ{¦¡¤w³]©w¦nVBScript¤ÎJavaScriptªºª½Ä¶®Ö¤ßµ{¦¡(©ÎºÙ¬°¤ÞÀº)¡C¦pªG­n¨Ï¥Î¨ä¥L»y¨¥¡A«h±z¶·¥t¦æ¦w¸Ë³o¨Ç»y¨¥ªºª½Ä¶®Ö¤ß µ{¦¡¡AµM«á¦bºô¯¸¦øªA¾¹¤¤§@¾A·íªº³]©w¡C

¶}ÀY«Å§i («Å§iserver side¨Ï¥ÎªºscriptÃþ«¬)

§Q¥Î@(¤@­ÓASPµ{¦¡¥u¯à¦³¤@­Ó@¡A¥B­n©ñ¦bhtml¼ÐÅÒ¤§¤W)
«Å§i¨Ï¥Îvbscript «Å§i¨Ï¥Îjscript
<%@language="vbscript"%> //ASP­Y±Ävbscript¥i¬Ù²¤«Å§i

<%@language="javascript"%>

¦æ¤º¬q¸¨«Å§i ( °ÊºA«ü©wserver side¨Ï¥ÎªºscriptÃþ«¬)

«Å§i¨Ï¥Îvbscript «Å§i¨Ï¥Îjscript
<script language="vbscript" runat="Server">
<script language="javascript" runat="Server">

Åܼƫŧi(µL¶·«ü©w¸ê®Æ«¬ºA)

vbscript jscript
¥þ°ìÅÜ¼Æ °Ï°ìÅÜ¼Æ ¥þ°ìÅÜ¼Æ °Ï°ìÅܼÆ
public x=1 dim x=1
private y=1
x=1; var x=1;

±j­¢«Å§i

vbscriptªºÅܼƨϥεL¶·«Å§i, ¦ý­Y­n±j­¢«Å§i¥i¥Î

< %Option Explicit%>

ÅÜ ¼Æ

VBscript

¸ê ®Æ«¬ºA(Data Type)

vbscript ¸ê®Æ«¬ºA
Empty   ¼Æ¦r=0 ; ¦r¦ê=""¡A¥i¥Îisempty()§PÂ_¬O§_¬°empty¸ê®Æ«¬ºA
Null   N/A¡A¥i¥Îisnull()§PÂ_¡AÁ×§K±q¸ê®Æ®w¨ú±onull­È
Boolean   True / False
Byte   0~255
Interger   -32768~32768
Currency    
Long    
Single    
Double    
Date/Time ¤é´Á/®É¶¡ ¦è¤¸100¦~1¤ë1¤é~¦è¤¸9999¦~12¤ë31¤é
String ¦r¦ê ­Y¦r¦ê¤¤¥]§t¦³Âù¤Þ¸¹«h my name is "peter". => "my name is ""peter""."
Object ª«¥ó N/A
Error ¿ù»~¥N½X N/A

µù ¸Ñ

HTML vbscript jscript CSS
  <!-- -->   ' , rem   //   /* */

¨ç ¼Æ

vbscript jscript
  µL¶Ç¦^­È   ¦³¶Ç¦^­È   µL¶Ç¦^­È   ¦³¶Ç¦^­È
sub ¨ç¼Æ¦W
¡@¡@return ¦^¶Ç­È
end sub
function ¨ç¼Æ¦W (°Ñ¼Æ)
¡@¡@¨ç¼Æ¦W=¦^¶Ç­È
end function
function ¨ç¼Æ¦W (°Ñ¼Æ)
{
¡@¡@
}
function ¨ç¼Æ¦W (°Ñ¼Æ)
{
¡@¡@return ¦^¶Ç­È
}

½d¨Ò : ¥Hvbscript¬°¥Dªºaspµ{¦¡, ©I¥svbscript©Îjavascript¨ç¼Æªº¤èªk

<html>
< head>
< %
sub vbproc(num1,num2)
Response.Write(num1*num2)
end sub
%>

< script language="javascript" runat="server">
function jsproc(num1,num2) {
Response.Write(num1*num2)
}
< /script>
< /head>

<body>
< p>Result: <%call vbproc(3,4)%></p>
< p>Result: <%call jsproc(3,4)%></p>
< p>Result: <%vbproc 3,4%></p>
< p>Result: <%jsproc 3,4%></p>
< /body>

</html>

°}¦C

vbscript jscript
  ½sĶ´Á¶¡©w¸q°}¦C   °õ¦æ´Á¶¡©w¸q°}¦C   ½sĶ´Á¶¡©w¸q°}¦C   °õ¦æ´Á¶¡©w¸q°}¦C

dim myarray(10,10)
'ª`·N¦¹®Éªº10¤@©w­n¬O¼Æ¦r±`¼Æ¡A¤£¯à¥NÅܼÆ

Dim famname(6) , i
famname(1) = "Jan Egil"
famname(2) = "Tove"
famname(3) = "Hege"
famname(4) = "Stale"
famname(5) = "Kai Jim"
famname(6) = "Borge"

For i = 1 to 6
response.write(famname(i) & "<br />")
Next

redim myarray(ÅܼƦW)
'ÅܼƥN¤J°}¦C»Ý¦bredim¤~¯à¨Ï¥Î
dim sick()
redim sick(rst("totalrec")) //®Ú¾Ú¸ê®Æ®wµ§¼Æ©w ¸q°}¦C¤j¤p
i=0
do while Not rst1.eof
¡@ sick( i ) = rst1("disease_cname") // ±NÄæ¦ì¸ê®Æ´`§Ç¥á¤J°}¦C¤¤
¡@ rst1.movenext
¡@ i=i+1
loop
myarray=new Array(10);
var myarray=new Array(10);
 

ASP ª«¥ó

·í§Ú­Ì¥´¶}ÂsÄý¾¹¨Ã¿é¤Jºô§}¡A¤]´N¬O¹ïWeb Server°e¥X Request ­n¨D¡AWeb Server·|¦Û°Ê¶i¦æ MIME §P§O¡A¨Ã±Ä¨úWindows¤@³eºD¥Îªº¤èªk¡A¤]´N¬O±qÀɮתºªþ¥[ÀɦW¥h§PÂ_­n¥æµ¹­þ­Ó DLL ¨Ó°õ¦æ©Î¸ÑĶ¡C ¦pªGµo²{­n³B²zªºÀɮתþÀɦW¬O .ASP Ãþ«¬ªºÀɮסA´N±N¦¹Àɮץ浹 ASP.DLL ³o­Ó°ÊºA³sµ²¨ç¦¡®w³B²z¡A¥¦·|±N¥ý±N Web Server ©Ò¦¬¨ìªº URI ³B²z¦n¡A¨ÃÀx¦s¨ì°O¾ÐÅé¸Ì­±¡C

ASP °ÊºA¨ç¦¡®w¤@¥¹°õ¦æ¡A´N·|±`¾n¦b°O¾ÐÅ餺¡A¤@ª½¨ìÃö¾÷¬°¤î¤~µ²§ô(ºÙ¬° in-process)¡A¦]¦¹¥¦ªº°õ¦æ®Ä¯à»·°ª©óªþ¥[ÀɦW¬O exe ©Î com ªºÀ³¥Îµ{¦¡(³q±`³o¤@ÃþÀ³¥Îµ{¦¡ªº°õ¦æ¤è¦¡´NºÙ¬° out-process)¡C¥Ñ©ó¨Ï¥Î in-process ¤è¦¡³B²z¡A©Ò¥H ASP ªº¤º«Øª«¥ó Application ¤~¦³¿ìªk¹B§@¡C¤]¥¿¦]¬°ASPÄÝ©ó in-process ªºÃö«Y¡A©Ò¥H¦pªG·Q­nÅܧó ASP ¬ÛÃöªº¨t²Î³]©w¡A¥²¶·±N¦øªA¾¹­«·s¶}¾÷¤~·|¥Í®Ä¡C

ASP ¶È¯à¥H IUSR_WebServer ³o­Ó±b¸¹¨Ó°õ¦æ¡A³y¦¨³\¦h¦øªA¾¹ºÞ²zªº¤u§@¥²¶·¥H administrator Åv­­¨Ó°õ¦æ¡A©Ò¥H ASP µLªk©I¥s WindowsAPI ¨Ó¨ú±o¨t²Î±b¸¹©MÀ³¥Î¦b¦øªA¾¹ºÞ²z¤u§@¤W¡A¨Ò¦p¡G±b¸¹ºÞ²z¡B³]©wÀɮץؿýÅv­­¡B­×§ï¨t²Îµn¿ý......µ¥µ¥¡C

ASP ´£¨Ñ¤F¤»­Ó¤º«Øªºª«¥ó¡Aµ{¦¡³]­p®v³z¹L³o¨Çª«¥óªº¤¶­±¡A¨Ó¼¶¼g ASP µ{¦¡¡C¥H¤U¬O³o¤»­Óª«¥óªºÂ²¤¶¡G

Response ´£¨Ñ§A¿é¥X¹Bºâµ²ªG¨ìÂsÄý¾¹ªº¤¶­±¡C
Request ´£¨Ñ§AŪ¨úÂsÄý¾¹©Ò¶Ç¨Óªº¸ê®Æ¤Î»P¦øªA¾¹¦³ÃöÅܼƪº¤¶­±¡C
Server

»P¦øªA¾¹¦³Ãöªº¬ÛÃö³]©w¡A«h¬O³z¹L Server ª«¥ó¨Ó»P Web Server ·¾³q¡A¨Ò¦p¡G©I¥s¦Û®aªº¨ç¦¡®w¡B­×§ï Timeout ³]©w¡BŪ¨ú¥D¥Ø¿ýªºµ´¹ï¸ô®|¡B¨Ï¥Î HTML ©Î URL ½s½X(Encode) ªk¨Ó³B²z Response ÅܼƵ¥¡C
´£¨Ñ»P³]©w¦øªA¾¹¥»¨­¦³Ãöªº¤¶­±¡A§ó­«­nªº¬O´£¨Ñ¤F²£¥Í¨ä¥Lª«¥óªº¤¶­±¡C

Session Session ª«¥ó¥Î¨ÓºûÅ@¨C­ÓÂsÄý¾¹³s½uªº¸ê°T¡A·í§Ú­Ì­nÅýASPµ{¦¡¯à°÷®Ú¾Ú¤£¦P¨­¤À°õ¦æ¤£¦P¥\¯àªº®É­Ô¡A´N·|¨Ï¥Î Session ÅܼơC¦¹Åܼƪº¦³®Ä®É¶¡¹w³]¬O20¤ÀÄÁ¡A¦ý¬O¦³¡©³s¿ï±o³s¥ô¡ªªº¯S©Ê¡A¤]´N¬O»¡·íºô­¶­«·s¾ã²z(Reload)«á¡ASessionªº¦³®Ä®É¶¡¤]¸òµÛ©µªø¡C ¦ý³Ìªø¤]¥u¯àºû«ù¨ìÂsÄý¾¹Ãö³¬¡A©Î²M°£ cookie ¬°¤î¡C
·í¨Ï¥ÎªÌ»P¦øªA¾¹³s½u®É¡A´£¨Ñ¦s¨ú¦³Ãö³o¦¸³s½u©Ò¨Ï¥ÎÅܼƪº¤¶­±¡C
Application

·íWeb Server¶}¾÷¶]°_¨Ó«á¡A­º¥ý°õ¦æªº¬O Applicationª«¥ó¡A¥¦©w¸q¤F±Ò°ÊIIS«áWeb¯¸¥x¹B§@©Ò»Ýªº¾ãÅéÅܼơA¨Ã¥B·|§â³o¨ÇÅܼƤ@ª½©ñ¦b°O¾ÐÅ餤¡Aµ¥«ÝASPµ{¦¡¦s¨ú¡A¤@ª½¨ìIIS Shutdown¤~®ø¥¢¡C
³o¸Ìªº Application «üªº¬O¾ã­Óºô¯¸¡A©Î³Q³]©w¬° Application ªºµêÀÀ¥Ø¿ý¡C³o­Óª«¥ó´£¨Ñ¦s¨ú»P Application Åܼƪº¤¶­±¡C©Ò¦³ªº¨Ï¥ÎªÌ¦@¥Î Application ªºÅܼơC

ObjectContext ObjectContext ª«¥ó«h¬O»P CGI ¹B§@¾÷¨î¤£¬Û¤zªºª«¥ó¡A¥¦¥Î¨ÓºÞ²z MTS¡]Microsoft Transaction Server¡^¡CMTS ¤¹³\¦b°õ¦æµ{¦¡«e¥ý¬ö¿ý¦øªA¾¹ª¬ºA¡A¦pªG¦³³¡¤Àµ{¦¡°õ¦æ¥¢±Ñ¡A«h¥i¥H°h¦^¨ì ¥ý«eªºª¬ºA¡A¥u¦³·í©Ò¦³¬ÛÃöµ{¦¡¶]§¹¥B°õ¦æ¦¨¥\«á¡A¤~·|¯u¥¿µn¿ý§ïÅܫ᪺¦øªA¾¹ª¬ºA¡A´N¹³¬O§Ú­Ì¬° ASP µ{¦¡³]©w¤FÁÙ­ìÂI¤@¼Ë¡A¥i¥HÁ×§Kµ{¦¡°õ¦æ¥¢±Ñ¤§«á¡A­n¦Û¦æ´_­ì¦øªA¾¹ª¬ºAªº³Â·Ð¡C
MTS ³q±`¨Ï¥Î¦b¦³»Ý­n¸û°ªªº¦w¥þ©Ê¡B©M¦h­Óµ{¦¡»Ý­n§@¡©¦P¨B¡ªªº³õ¦X¡A¤@¯ë§Ú­Ì¬O¥Î¤£¨ìªº¡C¥Ñ©ó MTS ¹ï©ó°O¾ÐÅ骺»Ý¨D¸û°ª¡A¦pªG§Ú­Ìºô¯¸³]­p¤W¨S¦³³o­Ó»Ý­n¡A«o¬G·N¥h¨Ï¥Î¥¦¡A¨º»ò±N·|¥Õ¥Õ®ö¶O³\¦hWeb Server ªº¨t²Î¸ê·½¡C
´£¨Ñ¨Ï¥Î Microsoft Transaction Server ª«¥óªº¤¶­±¡C

Response

Response.Write(¿é¥X)

¥i²¼g¬°<%="¿é¥X"%>

vbscript
jscript
word="±z¦n"
response.write word
word="±z¦n";
response.write(word);
Tips1 : ¨Ï¥Î Server.HtmlEncode() ¨ÓÅã¥Ühtml¦r¤¸
response.write Server.HtmlEncode("We sell the <<Best!>> products!")
Tips2 : ¥i¨Ï¥Î2ºØ¤è¦¡¨ÓÅã¥ÜÂù¤Þ¸¹
¨Ï¥Î³sÄòªºÂù¤Þ¸¹, ·|³Qµø¬°¤@­ÓÂù¤Þ¸¹ <% response.write "He said, ""This doesn't work!"" " %>
¨Ï¥Î chr(34) ¥N´ÀÂù¤Þ¸¹¨Ã¥H & ¨Ó³s±µ¦r¦ê <% response.write "He said," & chr(34) & "This doesn't work!" & chr(34) %>

Response.Redirect(Âà¦V)

vbscript
jscript
response.redirect "abc.htm" response.redirect("abc.htm");

Response.End(µ²§ô)

vbscript
jscript
response.end response.end();

Response.Cookies(¦bclientºÝªºbrowser¥[¤Wcookies)

Cookies¬O¥ÑNetscapeµo®i¨Ó­×¥¿Web Server»PBrowser¤§¶¡¤¬°Ê¤£¨¬ªº°ÝÃD, ¥]§t¤FSession cookie¤ÎPersistent cookie(¥Ã¤[)¨âºØ«¬ºA , ¨Ã¦³­­¨î¦p¤U

Session cookie Persistent cookie
response.cookies("name") = "Peter" response.cookies("name") = "Peter"
response.cookies("name").expires = "July 4, 2005"

Response.Expires

°£¤F¥ÑIIS¥i³]©wÅýInternet Explorer¤£cache¥H¥~¡A¥i¥H¥Î¥H¤Uªºaspµ{¦¡½X¡AÆ[©À¤W¬O§Q¥ÎHTTP header±±¨îcache¡C

¥H¤Uscript¥²¶· °õ¦æ¦bHTTP 1.1 server ¡A¾A¥Î©óInternet Explorer 4.0¥H¤Wª©¥»¡C¦b¨C¤@­¶ asp ªº¶}ÀY¥[¤W¤U¦Cµ{¦¡½X
<%
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "no-cache"
Response.Expires = -1
Response.ExpiresAbsolute = Now() - 0.1
%>

­nÁ×§KClientºÝ´Ý¦sªº¸ê®Æ¡AÁÙ¥i¥H¦b¨C¦¸¶}±Òºô­¶ªº¶WÃìµ²®É±a­Ó°Ñ¼Æ¡A¨Ã¥B¨C¦¸³£¤£¦P

Edit.asp?time=20050623104322

Request

<%=request("¤W­Óºô­¶¶Ç¨ÓªºÅܼÆ")%> ,­Y¹J¦³¬Û¦PÅܼƦWºÙ,¨äcollectionªºÀu¥ý¶¶§Ç¬°

  1. QueryString
  2. Form
  3. Cookies
  4. ClientCertificate
  5. ServerVariables

QueryString collection

§Q¥Î a ¼ÐÅÒ±NÅܼƥHurl¶Ç°e ±µ¦¬ÅܼÆ

<a href="answer.asp?apple=red&orange=blue"> ¤ôªG</a>

str="this is a apple"
str=Server.UrlEncode(str) //§t¦³ªÅ®æ­n¶i¦æurl ½s½X
< a href="answer.asp?fruit=<%=str%>"> ¤ôªG</a>

apple=request.querystring("apple")
orange=request.querystring("orange")

fruit=request.querystring("fruit")

Form collection

§Q¥Îªí³æ¶Ç°eÅÜ¼Æ ±µ¦¬ÅܼÆ

<form method="post" action="login.asp">
±b¸¹ :<input type="text" name="account" />
±K½X :<input type="password" name="password" />
<input type="submit" name="Submit" value="°e¥X" />
</form>

<%
account=request.form("account")
password=request.form("password")
%>

Tips : ¶Ç¦^©Ò¦³ªí³æÄæ¦ì,´î¤Ö¨Ï¥ÎªÌ­«½Æ¿é¤J

<form method="post" action="login.asp">
<% for each item in request.form %>
<input type="hidden" name="<%=item%>" value="<%=server.htmlencode(request.form(item))%>"/>
<% next %>
<p> <input type="submit" name="Submit" value="­«¶ñ" /></p>
</form>

ServerVariables collection

¥Ø«eºô­¶ªºµ{¦¡¦WºÙ script_name
¡@¡@¶Ç¦^µêÀÀ¸ô®|»Pµ{¦¡¦WºÙ

­Y­n¶Ç¦^¯u¹ê¸ô®|¡A¦³¢±ºØ¤èªk

  1. Request.ServerVariable("path_translated")
  2. Server.MapPath()

<% request.ServerVariables("script_name") %>

<%
response.write request.ServerVariables("path_translated")

response.write Server.MapPath(request.ServerVariables("script_name"))
%>

µn¤JªÌ«e¤@­ÓÂsÄýªººô­¶ http_referer
¡@¡@¶Ç¦^ºô­¶¦WºÙ
<% request.ServerVariables("http_referer") %>
µn¤JªÌªºIP remote_addr
¡@¡@¶Ç¦^IP
<% request.ServerVariables("remote_addr") %>
µn¤JªÌªºÂsÄý¾¹ http_user_agent
¡@¡@¶Ç¦^ÂsÄý¾¹«¬ºA
<% request.ServerVariables("http_user_agent") %>

Cookies collection

name = request.cookies("name")
or
name = request("name") //¦¹ªk»Ýª`·Nrequest¹ïcollectionªº³B²z¶¶§Ç

Session

ÅÜ¼Æ °}¦C
<% session("name") = "Peter" %>

//¦p¦ó¨ú¥Î©O
<%
response.write session("name")
%>
<%
dim cart(20)
cart(0) = "¥úºÐ¤ù"
cart(1) = "¿N¿ý¾÷"
session("cart") = cart
%>
//¦p¦ó¨ú¥Î©O
<%
response.write session("cart")(1)
%>

Session ª«¥ó´£¨Ñ¥|ºØÄÝ©Ê(Properties)¡B¨â­Ó¨Æ¥ó(Events)¡B¤@ºØ¤èªk(Method)»P¨â­Ó¶°¦X(Collections)¡A¦Cªí¦p¤U¡G

Session ª«¥óªºÄÝ©Ê
©Ê½è »¡©ú ½d¨Ò
CodePage CodePageªºÃѧO½X  
LCID LCIDªºÃѧO½X  
SessionID ¥Î¤áºÝªºSessionID,¨ã°ß¤@©Ê <%= Session.SessionID %>
Timeout Sessionª«¥óªº¦³®Ä®É¶¡(¥H¤ÀÄÁ¬°³æ¦ì)¡A¹w³]¬°20¤ÀÄÁ <% Session.Timeout = 60 %>
Session ª«¥ó´£¨Ñªº¨Æ¥ó
¨Æ¥ó »¡©ú ½d¨Ò
OnStart ±Ò°Ê¤@­Ó Session ª«¥ó®É©ÒIJµoªº¨ç¦¡¡A¦¹¨ç¦¡¥²¶·©ñ¦b global.asa ÀÉ®×  
OnEnd µ²§ô¤@­Ó Session ª«¥ó®É©ÒIJµoªº¨ç¦¡¡A¦¹¨ç¦¡¥²¶·©ñ¦b global.asa ÀÉ®×  
Session ª«¥ó´£¨Ñªº¤èªk
¤èªk »¡©ú ½d¨Ò
Abandon §R°£ Session ª«¥ó©Ò§tªº©Ò¦³¸ê°T <% Session.Abandon %>
Contents.Remove(item or index) §R°£ Contents ¶°¦X¤¤ªº¬Y¤@­Ó¶µ¥Ø  
Contents.RemoveAll §R°£ Contents ¶°¦X¤¤ªº©Ò¦³¶µ¥Ø  
Session ª«¥ó´£¨Ñªº¶°¦X
¶°¦X »¡©ú ½d¨Ò
Contents ©Ò¦³¥[¦b Session ª«¥óªºÅܼƶ°¦X  
StaticObjects ©Ò¦³¦b¨Ï¥ÎªÌ¼h¯Å¡]Session Scope¡^©Ò«Å§iªºª«¥ó¶°¦X  

Application

Recordset

¸ê®Æ®wªº¨Ï¥Î

¦s¨ú¸ê®Æ®w­n¥ý«Ø¥ßconnectionª«¥ó

vbscript set conn=server.createobject("adodb.connection")
conn.open "driver={SQL SERVER};server=163.17.1.25;uid=root;pwd=root;database=test"
jscript conn=server.createobject("adodb.connection");
conn.open("driver={SQL SERVER};server=163.17.1.25;uid=root;pwd=root;database=test");

°õ¦æsql¬d¸ßªº3ºØ¤èªk

¨Ï¥Îrecordsetª«¥óªºopen¤èªk

vbscript sql_str="select * from score.dbo.asco"&y1&" a "
set rst=server.createobject("adodb.recordset")
rst.open sql_str,conn,1
jscript sql_str="select * from score.dbo.asco"&y1&" a ";
rst=server.createobject("adodb.recordset");
rst.open(sql_str,conn,1);

¨Ï¥Îconnectionª«¥óªºexecute¤èªk

vbscript sql_str="select * from score.dbo.asco91"
set rst=conn.execute(sql_str)
jscript sql_str="select * from score.dbo.asco91";
rst=conn.execute(sql_str);

¨Ï¥Îcommandª«¥óªºexecute¤èªk

Ãö³¬¸ê®Æ®w

vbscript rst.Close;
set rst=null;
conn.Close;
set conn=null;
jscript rst.Close();
rst=null;
conn.Close();
conn=null;

¦^¶Ç°O¿ý¦b²Ä´Xµ§

vbscript

sql_str="select * from score.dbo.asco91"
set rst=CreateObject("ADODB.RECORDSET")
rst.CursorLocation=3 'cursor¦ì©óÂsÄý¾¹ºÝ
rst.open sql_str,conn,1
rst.find "stuid='9154610'"
if not rst.eof then
    response.Write rst.absoluteposition
else
    response.Write "§A©|µL¦¹¾Ç´Á±Æ¦W!"
end if

±`¥Îªºsql«ü¥O

¬d¸ß°O¿ý

Åã¥Ü·|­û°O¿ý: SELECT * FROM tblMember
Åã¥Ü¨k©Ê·|­û°O¿ý, ¨Ã¨Ì¥X¥Í¤é´Á±Æ§Ç, ¦~¬ö·U¤pªº¥ýÅã¥Ü : SELECT * FROM tblMember WHERE i_Sex = 1 ORDER BY dt_Birth DESC

·s¼W°O¿ý

·s¼W·|­û°O¿ý : INSERT INTO tblMember(vch_Name,i_Sex,dt_Birth) VALUES ('ALLEN',0,'1999/12/25')

§ó·s°O¿ý

±N©m¦W¬° ALLEN ªº·|­û, ©Ê§OÅÜ§ó¬° 1 (¨k©Ê) : UPDATE tblMember SET i_SEX=1 WHERE vch_Name='ALLEN'

§R°£°O¿ý

§R°£ ALLEN ·|­û°O¿ý : DELETE FROM tblMember WHERE vch_Name='ALLEN'
§R°£©Ò¦³¨k©Ê°O¿ý : DELETE FROM tblMember WHERE i_Sex=1
§R°£¥X¥Í¤é´Á¦b2000/1/18 ¥H«áªº·|­û°O¿ý : DELETE FROM tblMember WHERE dt_Birth > '2002/1/18'

ÀˬdSQL»yªk

¹ï©óSQL»yªk¿ù»~ªº³¡¤À¡A§Ú­Ì¥i¦L¥XSQL¦r¦ê¨Ó§PÂ_¡C¨Ò¦p¡G

..........²¤..........
sql = "select stdno,classno,student,count(correct) as total from award_answer where correct=1 group by stdno,classno,student order by total desc,classno"
response.wriet sql //¦L¥XSQL¦r¦ê
response.end //µ²§ô¤£°õ¦æ
Set rs2=conn.execute(sql)
.........²¤...........

¥H¸ê®Æ®wClass²¤Æ¸ê®Æ®wªº¨Ï¥Î

'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'¸ê®Æ®w¾Þ§@Ãþ§O
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'¦WºÙ¡GClass_DBOperate
'ª©¥»¡G0.2
'§@ªÌ¡Gqihangnet
'§ó·s¡G2005¦~6¤ë14¤é
'§@¥Î¡GŠé¤Æ¸ê®Æ®w¾Þ§@ªº¬yµ{
'±ÂÅv¡G§K…d¨Ï¥Î
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Class Class_DBOperate

'**ÅܼƩw¸q**
'Conn: ¸ê®Æ®w³s±µª«¥ó
'Conn_Str:¸ê®Æ®w³sµ²¦r¦ê

Private Conn,Conn_Str

'**¨p¦³¤èªk**
'ªì©l¤Æ

Private Sub Class_Initialize()
     Set Conn = Server.CreateObject("ADODB.Connection")
End Sub
'²×¤î
Private Sub Class_Teriminate()
     Set Conn = Nothing
End Sub

'**ÄÝ©Ê**
'¿é¥X¸ê®Æ®w³s±µ¦r¦ê
' ªð¦^­ÈÃþ«¬¡Gstring

Property Get ConnectString
     ConnectString = Conn_Str
End Property
'³]¸m¸ê®Æ®w³s±µ¦r¦ê
' °Ñ¼Æ¡Gstr --- string

Property Let ConnectString(str)
     Conn_Str = str
End Property

'**¤½¶}¤èªk (¨Æ¥ó)**
'¶}±Ò¸ê®Æ®w
Public Sub DB_Open()
     Conn.ConnectionString = Conn_Str
     Conn.Open
End Sub
'Ãö³¬¸ê®Æ®w
Public Sub DB_Close()
     Conn.Close
End Sub
'¸ê®Æ®w¬d†R¡]SQL‡N¥y¡^
' °Ñ¼Æ¤ÎÃþ§O¡Gsql ---- string
' ªð¦^­ÈÃþ«¬¡G°O¿ý¶°
' «e´£¡G¸ê®Æ®wª¬ºA¬°¥´¶}

Public Function DB_Select(sql)
     Set DB_Select = Conn.Execute(sql)
End Function
'¸ê®Æ®w°õ¦æ¡]SQL‡N¥y¡^
' °Ñ¼Æ¤ÎÃþ§O¡Gsql ---- string
' ªð¦^­ÈÃþ«¬¡G¾ã¼Æ
' ªð¦^­È§t¸q¡G¨ü¼vÅT¦æ¼Æ
' «e´£¡G¸ê®Æ®wª¬ºA¬°¥´¶}

Public Function DB_Excute(sql)
     Dim rs_affected
     Conn.Execute sql,rs_affected
     DB_Excute = rs_affected
End Function

End Class

¥H¤U¬°¨Ï¥Î½d¨Ò

Dim rdb : Set rdb = New Class_DBOperate ' ªì©l¤Æ¤@­Ó rdb ª«¥ó¡A¨Ã©I¥s New Class_DBOperate Ãþ§Oªº Class_Initialize ¤èªk
rdb.ConnectString = "Provider=SQLOLEDB;driver={sql server};database=car;server=127.0.0.1;uid=sa;pwd=sapasswd"
rdb.DB_Open

Dim rst, sqlstr
sqlstr="select * from op"
set rst =rdb.DB_Select( sqlstr )
if not rst.eof then
   while not rst.eof
      response.write rst(0) & rst(1) & "<br />"
      rst.movenext
   wend
end if
rst.close
set rst=nothing

rdb.DB_Close
Set rdb = Nothing ' ©I¥s New Class_DBOperate Ãþ§Oªº©I¥s Class_Terminate ¤èªk

¥H¸ê®Æ®wFunction²¤Æ¸ê®Æ®wªº¨Ï¥Î

<SCRIPT LANGUAGE="VBSCRIPT" RUNAT="SERVER">

Function GetRs(SQL)
   Dim Rs, Conn
   Set Rs=Server.CreateObject("ADODB.Recordset")
   Set Conn = GetCn()
   Rs.Open SQL, Conn, 3
   Set GetRs = Rs
   Set Rs = Nothing
   Set Conn = Nothing
End Function

Function GetCn()
   Dim Conn
   Set Conn=Server.CreateObject("ADODB.Connection")
   Conn.Open GetConProfile()
   Set GetCn = Conn
   Set Conn = Nothing
End Function

Function GetConProfile()
   Dim SQLServer, SQLLogin, SQLPwd, SQLDB
   SQLServer="127.0.0.1"
   SQLLogin="sa"
   SQLPwd="sapasswd"
   SQLDB="car"
   GetConProfile = "Driver={SQL Server};Server=" & SQLServer & ";Uid=" & SQLLogin & ";Pwd=" & Trim(SQLPwd) & ";Database=" & SQLDB & ""
End Function

Function Execute(SQL)
   Dim Cm, Conn, Errors
   Set Cm=Server.CreateObject("ADODB.Command")
   Set Conn = GetCn()
   Cm.ActiveConnection = Conn
   Cm.Prepared = True
   Cm.CommandText = SQL
   Cm.CommandType = 1
   Cm.Execute
   Set Errors = Conn.Errors
   Execute = CStr(Conn.Errors.count)
   Set Cm = Nothing
   Set Conn = Nothing
End Function

Function GetCm()
   Dim Cm, Conn
   Set Cm=Server.CreateObject("ADODB.Command")
   Set Conn = GetCn()
   Cm.ActiveConnection = Conn
   Set GetCm = Cm
End Function

</SCRIPT>

¥H¤U¬°¨Ï¥Î½d¨Ò

Dim rst, sqlstr
sqlstr="select * from op"
set rst = GetRs( sqlstr )
if not rst.eof then
   while not rst.eof
      response.write rst(0) & rst(1) & "<br />"
      rst.movenext
   wend
end if
If isobject("rst") Then
   rst.close
End If
set rst=nothing

¨Ï¥Î§Þ¥©

iif¨ç¼Æ

¨Ì¾Ú¹ï¹Bºâ¦¡ªºµû¦ôµ²ªG¡Aµ²ªG¬°¯u·|¶Ç¦^²Ä2­Ó°Ñ¼Æ¡Aµ²ªG¬°°²·|¶Ç¦^²Ä3­Ó°Ñ¼Æ¡C

<SCRIPT LANGUAGE="VBSCRIPT" RUNAT="SERVER">
Function IIf( exp, rst1, rst2)
      If exp Then IIf = rst1 Else IIf = rst2
End Function
</SCRIPT>

¨­¤ß»Ùê<input type="checkbox" name="ishandicap" id="ishandicap" <%=iif(ishandicap,"checked","")%> />

¦C¥X©Ò¦³±µ¦¬¨ìªº°Ñ¼Æ

¶Ç¦^ post ©Î get ¤èªk©Ò¦¬¨ìªº©Ò¦³°Ñ¼Æ

Dim obj
for each obj in Request.Form
     response.write obj & "=" & Request.Form(obj) & "<br />"
next

Dim obj
for each obj in Request.QuerString
     response.write obj & "=" & Request.QuerString(obj) & "<br />"
next

¦P¤@­Óªí³æ®Ú¾Ú­n¨D»¼¥æ¨ì¤£¦PASP

<form method="POST" name="form1">
......
<input type="button" value="del" name="B1" onclick="document.form1.action='del.asp'; document.form1.submit()" >
<input type="button" value="view" name="B2" onclick="document.form1.action='view.asp';document.form1.submit()">
<input type="button" value="addnew" name="B3" onclick="document.form1.action='addnew.asp'; document.form1.submit()">
</form>

¤Óªøªº±Ô­z­n¥H &_ Â_¦æ

response.write "this is a" &_
"asp program test."

°»´ú¨Ï¥ÎªÌIP

¦pªG¥ú¬O¥ÎRemote_Host©ÎRemote_Addr, ¨º§A®³¨ìªº¥u¬O¹ê»Ú¦s¨úªº¥D¾÷¦Ó¤w, ¦pªG§O¤H³z¹LProxy¨ÓŪ¨ú§Aªºµ{¦¡¨º§A´N°»´ú¤£¨ì¥¿½TªºIP¤F. Request.ServerVariables("HTTP_X_FORWARDED_FOR") , ³o¬q»yªk¥Nªíªº¬O°»´ú³o¥x¥D¾÷«áºÝ¨Ï¥ÎªºIP, ¦pProxy«áºÝªº¨Ï¥ÎªÌ´N¥i¥H¥Î³o­Ó»yªk°»´ú, ¦pªGRemote_Addr°»´úªº¬O¯uªºIP¨º³o­Ó­È·|¬OªÅªº.

dim ip
if Request.ServerVariables("HTTP_X_FORWARDED_FOR")<>"" then
¡@ip=Request.ServerVariables("HTTP_X_FORWARDED_FOR")
else
¡@ip=Request.ServerVariables("REMOTE_ADDR")
end if

ASPªºglobal.asa

¤º§tASP°ß¤@ªº¢³­Ó¨Æ¥óµ{§Ç

  1. Application_OnStart
  2. Application_OnEnd
  3. Session_OnStart
  4. Session_OnEnd

<script language="vbscript" runat="Server"> //¦¹½d¨Ò¬°­pºâ¤W½u¤H¼Æ
Sub Application_OnStart
¡@Application("OnlineCount") = 0
End Sub
Sub Application_OnEnd
End Sub
Sub Session_OnStart
¡@Application.Lock
¡@Application("OnlineCount") = Application("OnlineCount") + 1
¡@Application.UnLock
End Sub
Sub Session_OnEnd
¡@Application.Lock
¡@Application("OnlineCount") = Application("OnlineCount") - 1
¡@Application.UnLock
End Sub
</script>

ª`·N¨Æ¶µ

ºô ¸ô¸ê·½

¥D ºô ¯¸¡Ghttp://peterju.notlong.com (¥Ø«eÂà§}¦Ü http://irw.ncut.edu.tw/peterju/)

Bobby WorldWide Approved AAA| Level Triple-A conformance icon, W3C-WAI Web Content Accessibility Guidelines 1.0| [Åwªï¨Ï¥Î¥ô¦ó§@·~¨t²Î¡BÂsÄý¾¹Æ[¬Ý¡I]| [¥»ºô¯¸²Å¦X XHTML 1.0 ¼Ð·Ç¡I]| [¥»ºô¯¸²Å¦X CSS 1.0 ¼Ð·Ç¡I]| [Valid RSS]| [³Ð·N¤½²³³\¥iµý]
This work is licensed under a Creative Commons License