Active Server Page - ASP
in JavaScript
王金龍、陳彥錚
銘傳大學 資管系
Content
Introduction
Object
Models
Request Object
Response Object
Server Object
Application and Session Objects
Installable Components for ASP
Introduction
Microsoft’s
newest server-based
technology for building dynamic
interactive web pages
No
compiler
Text editor
Browser independent
Object-oriented
Compatible to any ActiveX scripting
Transparent to users
ASP Usage
<%@language=JScript%>
<html> <head>
<title>Active Server Scripting</title>
</head>
<body>
<h3>Active Server Scripting </h3>
<% Response.Write("This is so cool!!!”)%>
</body>
</html>
Complete ASP Program
<%@Language=JScript %>
<HTML><HEAD> …</HEAD><BODY>
<% … ASP script which runs on the server … %>
<SCRIPT LANGUAGE=“JavaScript”>
Script which run in the browser
</SCRIPT>
<SCRIPT LANGUAGE=“JScript” RUNAT=Server>
Script which run in the server
</SCRIPT>
<!-- #include … -->
<table> … </table>
<% … %>
</BODY></HTML>
Server-side includes
<!--
#include file=“include.txt” -->
Include
text files in pages
Virtual file addresses
<!--
#include virtual=“/u99/file.txt” -->
Physical
file addresses
#include file=“c:\inetpub\user99\file.txt” -->
<!-- #include file=“file.txt” -->
<!--
<!-- menu.inc -->
<A HREF="top.htm">Top</A><BR>
<A HREF="next.htm">Next</A><BR>
<A HREF="previous.htm">Previous</A><BR>
<P>
…
<body>
<h3>Form Use </h3>
<!--#INCLUDE FILE="menu.inc"-->
<%
Response.Write(Request.Form("text1"));
%>
</body>
Basic Statements
<%
Response.Write(“string”) %>
Output
<%
a string ( more readable )
= “string” %> or <%=VarExpression%>
Insert
a string
<%=Request.Form(“userName”)%>
<%
Response.Redirect(“URL”) %>
Redirect
to the URL
<% // Some Comments
%>
An ASP Example
<%@language=JScript%>
<%
num=Request.Form("numOfHr");
msg="Welcome to My ASP Example!";
%>
<html>
<head><title>An ASP Example</title></head>
<body>
You are <b><%=Request.Form("userName")%></b>!<br>
<%=msg%>
<hr>
<% for ( i=1; i<=num; i++) { %>
<font color=blue>Iteration <i><%=i%></i></font>
<%
Response.Write("<hr width="+i*50+" align=left>");
} %>
</body>
</html>
aspExample1.html
<html>
<body>
<form method="post" action="aspExample1.asp">
Please input a number:
<input type=text name="numOfHr" size=4><br>
Your Name:
<input type=text name="userName"><br>
<input type=submit>
</form>
</body>
</html>
Source File in Web Client
<html>
<head><title>An ASP Example</title></head>
<body>
You are <b>Yen-Cheng Chen</b>!<br>
Welcome to My ASP Example!
<hr>
<font color=blue>Iteration
<hr width=50 align=left>
<font color=blue>Iteration
<hr width=100 align=left>
<font color=blue>Iteration
<hr width=150 align=left>
<font color=blue>Iteration
<hr width=200 align=left>
<font color=blue>Iteration
<hr width=250 align=left>
</body>
</html>
<i>1</i></font>
<i>2</i></font>
<i>3</i></font>
<i>4</i></font>
<i>5</i></font>
Built-In ASP Objects
Request
Object
To
retrieve the values that the client browser
passed to the server during an HTTP request.
Response
To
Object
send output to the client.
Server
Provide
utility functions on the server.
Built-In ASP Objects (cont.)
Application
To
share information among all users of a
given application. (Like global variables)
Session
To
store information needed for a particular
user-session. (Like local variables)
ObjectContext
To
commit or abort a transaction, managed
by Microsoft Transaction Server (MTS).
Client
Request Object Collection:
Form QueryString
ServerVariables Cookie
ClientCertificate
Response Object Collection:
Cookie
(Properties) (methods)
Server
Server Object
(method)
Application Object
Session Object
(properties)
(methods)
(properties)
(methods)
Request Object
Provide
all the information about the
user’s request to applications
Collection
A data
store that can store values by
linking each one to a unique key
Collections in Request Object
Five
collections
QueryString:
HTTP query string (GET)
Form: Form elements (POST)
ServerVariables: HTTP and environment
variables
Cookie: Cookie sent from the browser
ClientCertificate: Certificate values (SSL: https)
Usage
variable = Request.collectionName(“key”)
Properties and Methods
Properties
TotalBytes:
Read-only. Specifies the total
number of bytes the client is sending in the
body of the request.
Methods
BinaryRead(count):
Retrieves data sent to
the server from the client as part of a
POST request.
QueryString Collection: Get
The
names and values of form are put
into a query string
The amount of data can be sent is
limited to around 1000 characters
Usage
variable
= Request.QueryString(“name”)
queryTest.asp
queryTest.asp?name=Mickey+Mouse&age=50
<%@language=JScript%>
<html><head><title>Query String Test ASP</title></head><body>
You are
<font color=red><%=Request.QueryString("name")%></font><br>
You are
<font color=red><%=Request.QueryString("age")%></font>
years old.
</body></html>
<HTML><HEAD><TITLE></TITLE></HEAD><BODY>
<H3>Passing Name=Value Pairs with a Query String</H3>
<A NAME="product"
HREF="list7_5.asp?name=dina&pub=sams">Sams
Publishing </A></BODY></HTML>
<html> <head> <title></title> </head> <body>
<h3>Getting Name=Value Pairs with a Query String</h3>
<p>name = <%= Request.QueryString("name") %></p>
<p>pub = <% = Request.QueryString("pub") %> </p>
</body> </html>
Form Collection: Post
The
name and values of the form are
encoded into the request header
Usage
variable
= Request.Form(“name”)
formTest.html
<html><head> <title>the form</title></head><body>
<form name="form1" method=post action="formTest.asp">
text1: <input type=text name="text1" size=20><br>
radio1: <input type=radio name="radio1" value="yes">yes
<input type=radio name="radio1" value="no">no<br>
select1: <select name="select1">
<option>option 1<option>option 2<option>option 3
</select><br>
select2: (multiple) <select name="select2" multiple>
<option>option 1M<option>option 2M<option>option 3M
</select><br>
textarea1: <textarea name="textArea1" cols=10 rows=5>
</textarea><br>
<input type=hidden name="hidden1" value="a hidden value">
<input type=submit value="o.k.!">
<input type=reset value="cancel">
</form>
</body></html>
formTest.asp
<%@language=JScript%>
<html><head><title>Form Test ASP</title></head><body>
<table border=2>
<tr><td>text1</td><td><%=Request.Form("text1")%></td></tr>
<tr><td>radio1</td><td><%=Request.Form("radio1")%></td></tr>
<tr><td>select1</td><td><%=Request.Form("select1")%></td></tr>
<%num=Request.Form("select2").Count;
for (i=1;i<=num;i++) { %>
<tr><td>select2</td>
<td><%=Request.Form("select2")(i)%></td></tr>
<% } %>
<tr><td>hidden1</td>
<td><%=Request.Form("hidden1")%></td></tr>
<tr><td>textArea1</td>
<td><%=Request.Form("textArea1")%></td></tr>
</table>
</body></html>
ServerVariables Collections
Provide
HTTP header that is sent by a
client browser
To Retrieves the values of predetermined
environment variables.
Usage
variable
=
Request.ServerVariables(“HeaderType”)
AUTH_TYPE = <%= Request.ServerVariables("AUTH_TYPE") %><br>
CONTENT_LENGTH = <% = Request.ServerVariables("CONTENT_LENGTH") %><br>
CONTENT_TYPE = <% = Request.ServerVariables("CONTENT_TYPE") %><br>
GATEWAY_INTERFACE =
<% = Request.ServerVariables(“GATEWAY_INTERFACE”) %><br>
LOGON_USER = <% = Request.ServerVariables("LOGON_USER") %><br>
PATH_INFO = <% = Request.ServerVariables("PATH_INFO") %><br>
PATH_TRANSLATED =
<% = Request.ServerVariables("PATH_TRANSLATED") %><br>
QUERY_STRING = <% = Request.ServerVariables("QUERY_STRING") %><br>
REMOTE_ADDR = <% = Request.ServerVariables("REMOTE_ADDR") %><br>
REMOTE_HOST = <% = Request.ServerVariables("REMOTE_HOST") %><br>
REMOTE_METHOD = <% = Request.ServerVariables("REMOTE_METHOD") %><br>
SCRIPT_MAP = <% = Request.ServerVariables("SCRIPT_MAP") %><br>
SCRIPT_NAME = <% = Request.ServerVariables("SCRIPT_NAME") %><br>
SERVER_NAME = <% = Request.ServerVariables("SERVER_NAME") %><br>
SERVER_PORT = <% = Request.ServerVariables("SERVER_PORT") %><br>
SERVER_PORT_SECURE =
<%=Request.ServerVariables("SERVER_PORT_SECURE") %><br>
SERVER_PROTOCOL =
<% = Request.ServerVariables("SERVER_PROTOCOL") %><br>
SERVER_SOFTWARE =
<% = Request.ServerVariables("SERVER_SOFTWARE") %><br>
URL = <% = Request.ServerVariables("URL") %><br>
ALL_HTTP
ALL_RAW
APPL_MD_PATH
All HTTP headers sent by the client.
All headers in the raw-form.
The metabase path for the (WAM) Application for
the ISAPI DLL.
APPL_PHYSICAL_PATH
Retrieves the physical path corresponding to the metabase path.
AUTH_PASSWORD
The value entered in the client's authentication dialog.
AUTH_TYPE
The authentication method that the server uses to validate users.
AUTH_USER
Raw authenticated user name.
CERT_COOKIE
Unique ID for client certificate, Returned as a string.
CERT_FLAGS
bit0 is set to 1 if the client certificate is present.
bit1 is set to 1 if the client Certifying Authority is invalid.
CERT_ISSUER
Issuer field of the client certificate.
CERT_KEYSIZE
Number of bits in Secure Sockets Layer connection key size.
CERT_SECRETKEYSIZE Number of bits in server certificate private key.
CERT_SERIALNUMBER Serial number field of the client certificate.
CERT_SERVER_ISSUER
Issuer field of the server certificate.
CERT_SERVER_SUBJECT Subject field of the server certificate.
CERT_SUBJECT
Subject field of the client certificate.
CONTENT_LENGTH
The length of the content as given by the client.
CONTENT_TYPE
The data type of the content.
GATEWAY_INTERFACE
The revision of the CGI specification used by the server.
HTTP_<HeaderName>
The value stored in the header HeaderName.
HTTPS
ON : if the request came in through secure channel (SSL).
OFF : Otherwise.
HTTPS_KEYSIZE
Number of bits in Secure Sockets Layer connection key size.
HTTPS_SECRETKEYSIZE Number of bits in server certificate private key.
HTTPS_SERVER_ISSUER
Issuer field of the server certificate.
HTTPS_SERVER_SUBJECT Subject field of the server certificate.
INSTANCE_ID
The ID for the IIS instance in textual format.
INSTANCE_META_PATH
Metabase path for the IIS instance that responds to the request.
LOCAL_ADDR
Returns the Server Address on which the request came in.
LOGON_USER
The Windows NTR account that the user is logged into.
PATH_INFO
Extra path information as given by the client.
PATH_TRANSLATED A translated version of PATH_INFO (virtual-to-physical)
QUERY_STRING
Query information after ? in the HTTP request.
REMOTE_ADDR
The IP address of the remote host making the request.
REMOTE_HOST
The name of the host making the request.
REMOTE_USER
Unmapped user-name string sent in by the User.
REQUEST_METHOD
The method used to make the request.
SCRIPT_NAME
A virtual path to the script being executed.
SERVER_NAME
The server's host name, DNS alias, or IP address.
SERVER_PORT
The port number to which the request was sent.
SERVER_PORT_SECURE
1 : If the request is on the secure port. 0 : Otherwise.
SERVER_PROTOCOL
The name and revision of the request information protocol.
SERVER_SOFTWAREThe name and version of the server software.
URL
Gives the base portion of the URL.
Cookie Collection
The
cookie is a text file stored on the
client
Use Request object to access the
cookie
Read
only
To change cookie: Use Response object
Usage
variable
=
Request.Cookies(“cookieVariable”)
Response Object
To
send output to the client
Collection: Cookie Method
AddHeader(name, value)
Properties
AppendToLog(string)
Buffer
CacheControl
Charset
ContentType
Expires
ExpiresAbsolute
isClientConnected
Pics
Status
BinaryWrite(data)
Clear()
End()
Flush()
Redirect(url)
Write(variant)
Response Object: Classification
Insert
information
Write(),
BinaryWrite()
Send
cookie: Cookie
Redirecting: Redirect()
Buffering the page
Buffer,
Setting
Flush(), Clear(), End()
the properties of a page
Expires,
ExpiresAbsolute, CacheControl,
ContentType, AddHeader, Status
Inserting Information
Response.Write(“string”)
Insert
a string into the HTML output
Convert the text to an appropriate
character set
<%
= “string” %>
Response.BinaryWrite(data)
Prevent
the conversion
Sending Cookies
Response.Cookies(“CookieName”)=“data”
Response.Cookies(“CookieName”).Expires=“11/26/1197 17:35:00”
Response.Cookies(“CookieName”).Domain=“/netnt.mcu.edu.tw/”
Response.Cookies(“CookieName”).Path=“/u99”
Response.Cookies(“CookieName”).Secure=True
Multiple Value Cookie
<%
Response.Cookies(“CookieName”)(“item1”)=“data1”
Response.Cookies(“CookieName”)(“item2”)=“data2”
%>
Redirecting the Browser
Refer
users to alternative web pages
Redirection header
Tell
the browser to go and get the
information elsewhere
Usage
Response.Redirect(“URL”)
Buffering the Page
An
extra degree of control over
When
a client receives information
What they receive
Usage
= True ’Default is false
Response.Flush() ’Send the current content
Response.Clear() ’Clear the current buffer
Response.End() ’Stop processing and send
When reach the end, the contents are sent
Response.Buffer
Server Object
The
roof of the object model
Provides
access to methods and properties on
the server.
Most of these methods and properties serve as
utility functions.
Property
ScriptTimeout:
Method
CreateObject(progID)
HTMLEncode(string)
URLEncode(string)
MapPath(path)
Amount of time a script can run
Create an instance of an object
HTML Encoding
URL Encoding
Convert a virtual path to a physical path
ScriptTimeout Property
Define
the delay before all scripts are
terminated
Default
= 90 seconds
Usage
Server.ScriptTimout
= nn;
HTMLEncode Method
Replace
the angle-brackets with an escape
sequence
Server Client
<% = Server.HTMLEncode(“<Table>”) %>
<% = Server.HTMLEncode(“<%=Server.ScriptTimeout %\>”) %>
URLEncode Method
Convert
a string into URL-encoded form
Space +
Special
chars %nn
<a href=“a1.asp?ans=<%server.urlencode(33%) %>”> 33 % </a>
<a href=“a1.asp?ans=33%25”> 33% </a>
MapPath Method
Provide
file location information for use
in scripts
Logical
path Physical path
Usage
PhyPath
= Server.MapPath(“/clipper”)
e:\clipper
/path: virtual directory
path: relative path
CreateObject Method
Invoke
objects on the server
Extend
the use of server components
Usage
Set
obj = Server.CreateObject(“ProgId”)
Use the methods and access the
properties of the object
IsObject(
Check
obj )
if the object is created successfully
<%@language=JScript%>
<% textfile = Server.MapPath("/app5")+"\\test1.html"
fsObject = Server.CreateObject("Scripting.FileSystemObject")
outStream= fsObject.CreateTextFile(textfile, true, false)
myString = "<HTML><HEAD><TITLE>File</TITLE></HEAD>"
outStream.WriteLine(mystring)
now=new Date()
myString = "The time is " + now.toLocaleString()
outStream.WriteLine(mystring)
outStream.WriteLine("</BODY></HTML>")
outStream.close()
Response.Write("<A HREF='test1.html'>My New Text File </A>")%>
Application Object
To
share information among all users of a given
application.
An ASP-based application is defined as all the .asp
files in a virtual directory and its subdirectories.
Collections
Contents:
Contains all of the items that have been
added to the Application.
StaticObjects: Contains all of the objects added to the
session with the <OBJECT> tag.
Application Object (cont.)
Methods
Lock:
Prevents other clients from modifying Application
object properties.
Unlock: Allows other clients to modify Application
object properties.
Events
Application_OnEnd
: Occurs when the application
quits
Application_OnStart : Occurs when a page is first
referred.
Scripts
for the preceding events are declared in
the global.asa file.
Application Object
Usage
Application.Lock()
Application(“name”)=“value”
Application.Unlock()
Event
handles:
global.asa
in the root directory of the virtual
mapping
function Application_OnStart() {
…
}
function Application_OnEnd() {
…
}
Example - Application Object
<%@language=JScript%>
<%
Application.Lock()
Application("NumVisits") = Application("NumVisits") + 1
Application.Unlock()
%>
...
This application page has been visited
<%= Application("NumVisits") %> times!
Global.asa <script language=Jscript runat=server>
function Application_OnStart(){
Application(“NumVisits”)=0;
}
</script>
Application Object
Application
Life
Start
The
application starts the first time any client
requests a document from that virtual mapping
End
The
web server is stopped by the operating
system
appTest.html
<FORM METHOD=POST NAME="Personal" ACTION="appTest.asp">
Please enter your name:
<input type=text size=20 name="name" value=""><br>
Please enter your age:
< input type=text size=5 name="age" value=""><br>
Please select which city your are living in:
<SELECT NAME="city" ><P>
<OPTION VALUE="Seattle">Seattle
<OPTION VALUE="Denver">Denver
<OPTION VALUE="Miami">Miami
</SELECT><br>
<INPUT TYPE=SUBMIT></FORM>
appTest.asp
<%@language=JScript%>
<% Application.Lock()
Application("name") = ""+Request.Form("name")
Application("age") = ""+Request.Form("age")
Application("city") = ""+Request.Form("city")
Application.Unlock() %> <body>
<h3>Hello <%= Application("name") %>, thank you</h3>
<% if (Application("city") = = "Seattle") { %>
The weather in <%= Application("city") %> is grey skies and
plenty of rain.
<% }
else if (Application("city") = = "Denver") { %>
The weather in <%= Application("city") %> is cold and snowy.
<% } else { %>
The weather in <%= Application("city") %> is warm and sunny.
<% } %> </p>
<form name=“age” method=“POST” action="app2.asp">
<p><input type="SUBMIT" value="OK"> </p>
Session Object
Share
data between different pages, but not
between different clients
Session
information is maintained on an individual client
basis
Global to that client
A Session
object is created when the client first
makes a document request and destroyed 20
minutes after the last request.
Session Object
To
store information needed for a particular usersession.
Variables stored in the Session object are not
discarded when the user jumps between pages in
the application
Collections
Contents
: Contains the items that you have added to the
session with script commands.
StaticObjects: Contains the objects created with the
<OBJECT> tag and given session scope.
Session Object (cont.)
Properties
CodePage:
Codepage used for symbol mapping.
LCID: Locale identifier.
SessionID: Session identification for this user.
Timeout: Timeout period for the session state, in minutes.
Methods
Abandon(
Events
): Destroys a Session object and releases its resources.
(used in Global.asa)
Session_OnEnd:
Session Timeout or abandoned
Session_OnStart: When server creates a new session
Usage: Session(“name”)=“value”
SessionID Property
When
store information in the Session
object, the client is assigned a
SessionID
Used
to identify session
Actually be stored as a cookie with no
expiry data set
Usage
Session.SessionID
Event Handler
global.asa
<%@language=JScript%>
…
function Session_OnStart() {
…
’first request a document
}
function Session_OnEnd() {
…
’Timeout or Abandon
}
Summary
Object
Use
Models
Request Object to receive client's
request.
Use Response Object to control the output
to the client.
Use Server Object to access server utilities
and objects.
Use Application and Session Objects to
maintain the web state.
Installable Components
for ASP
Ad Rotator (AdRotator): Automatically rotates
advertisements displayed on a page according to a
specified schedule.
Browser Capabilities (BrowserType): Determines the
capabilities, type, and version of Browser.
Database Access (ADO): Provides access to databases.
Content Linking (NextLink): Creates tables of contents.
File Access (FileSystemObject): Provides access to file
I/O.
Collaboration Data Objects for NTS Component: Sends
and receives messages to your Web page.
Installable Components
for ASP (cont.)
Tools (Tools): Enables you to add sophisticated
functionality to your web pages.
MyInfo (MyInfo): Keeps track of personal information.
Counters (Counters): Creates, stores, increments, and
retrieves individual counters.
Content Rotator (ContentRotator): Automates the
rotation of HTML content strings on a Web page.
Page Counter (PageCounter): Counts and displays the
number of times a Web page has been opened.
Permission Checker (PermissionChecker): Determines
whether a Web user has been granted permissions to read
a file.
© Copyright 2026 Paperzz