|
ASP Technology Features...
Contents
Introduction
Language Independence
Development with Scripts
Built-in and Installable
Objects
Databases and Cookies
Creating Client/Server Web
Applications
This is
an overview of Active Server Pages (ASP) technology, a
technology made available by Internet Information
Server (IIS). The ASP features described herein are
available in MS IIS version 4.0.
Active
Server Pages (ASP) technology is language-independent.
Two of the most common scripting languages are
supported right out of the box: VBScript and JScript™.
Support for other scripting languages, such as Perl,
is available. Whatever scripting language you use, you
can simply enclose script statements in special
delimiters for ASP. The starting delimiter is <%, and
the closing delimiter is %>.
VBScript
Using
VBScript on the server in an ASP page isn't very
different from using it in applications or on ordinary
Web pages. Nearly all of the VBScript commands are
available for use on the server. VBScript commands
that interact with the user, however, are not
available. For example, imagine a command that opens a
dialog box on the server. No one is around to dismiss
it, and the system can do nothing until someone
dismisses it!
The
VBScript statements that present user interface
elements are InputBox and MsgBox. In addition, the
VBScript function CreateObject is replaced by a method
of the Server object. This is necessary to track the
object instances on the server side. You can add
comments to your script just as you normally do.
However, you cannot add comments inside an output
expression. An output expression is an expression or
value that is evaluated and written to the Web page.
It is contained within the delimiters <%= and %>.
JScript
The
rules for using JScript are very similar to those for
VBScript. The delimiters are the same, for example. As
with VBScript, you cannot use user interface
statements such as the Alert statement.
The way
you use JScript on the server side is nearly identical
to the way you use it on the client side. As on the
client side, JScript on the server is case-sensitive.
The rules for case in server-side scripts are:
 | The
names of objects must be capitalized |
 |
Method and property names can be any case
|
You can
also add support for other scripting languages, such
as Perl, to IIS
Back to Top
Scripting languages are great for creating
applications quickly. Compared to formal programming
languages, you generally need far fewer lines of
script to accomplish a task. Now that Dynamic HTML and
the Document Object Model have arrived, you can even
combine server-side and client-side scripting to
quickly develop a prototype of your ideas.
Or
perhaps you simply want to serve Web pages that are
sensitive to the features supported by a particular
browser version. This applies to different versions of
a single browser (Internet Explorer 3. x and
4.0, for example), different operating systems
(Windows® and UNIX, for example), and to completely
different browsers (such as Navigator and Internet
Explorer). You can create scripts that are appropriate
for each browser, and invoke the appropriate commands
to serve pages uniquely suited to the features of any
browser. The Browser Capabilities object provides
detailed information about the features supported for
each browser version. For example, you can design an
application for Internet Explorer 4.0 that displays
different HTML code for down-level browsers such as
Internet Explorer 3.02, or for alternate browsers,
such as Netscape Navigator. This enables you to
maintain one set of content pages, with conditional
browser detection for features on different browsers
built right into each page.
You can
do a lot of development with scripts. You can
incorporate business rules, for example, into a
complete client/server or multitiered business
application such as a telemarketing sales application.
Or you can simply verify that a visitor has been to
your site before and recall preferences for that user.
HTML to the
Rescue
One way
to think about ASP pages is that they are really just
HTML pages with extra stuff added. You can develop
your basic pages the way you always have -- as Web
pages, and add the appropriate scripting for whatever
browsers or business rules you require. You can:
 |
Create Web pages that detect the browser in use, and
display properly for that particular browser or
browser version |
 |
Re-use HTML on a variety of pages, and avoid
duplication of effort |
 |
Develop complete applications that work over the Web
using forms and the advanced scripting potential of
ASP |
Converting to
ASP
It
couldn't be easier to convert an existing HTML page to
an ASP page -- just change the extension from .htm/.html
to .asp. Of course, it won't be a meaningful
ASP page until you add some scripting commands. The
.asp filename extension enables IIS to parse and
execute the scripts in your files.
Keep in
mind that IIS and ASP run on Windows NT® Server. You
can create an intranet that functions in your local
area network, or serve pages across the Internet by
connecting your server to the Internet. You can
integrate any of the IIS 4.0 features into your ASP
pages, such as using Microsoft Transaction Server to
safely commit or abort transactions that span multiple
computers.
Easy Delimiters
for Several Languages
If you
have any experience with Visual Basic®, Visual Basic
for Applications, Visual Basic Scripting Edition
(VBScript), JScript, or JavaScript, you can build
Active Server Pages with a scripting language you
already know. This means you can be up and running
with ASP quickly. The key is to place ASP scripts in
delimiters:
 |
Embed your script commands within the delimiters: <%
and %> |
 | Feed
variables to the page using a special form of the
starting delimiter:<%= |
For
example, to add the current date and time to a page:
<HTML>
<BODY>
<P>The current date and time on the server: <%= Now %>
</P>
</BODY>
</HTML>
The
result will look like this:
The
current date and time on the server: 8/24/98 11:40:02
AM.
You can
use various script statements to control what appears
on the Web page. The following example shows how to
change the output based on the time of day, but you
can use any conditional statement with whatever
criteria (user's name, current database record, script
language supported by the visitor's browser, and so
forth) to control output to the Web page.
<% If
Time >= #12:00:00 AM# And Time < #12:00:00 PM# Then
strGreeting = "Good Morning!" Else strGreeting =
"Hello!" End If %> <P><%= strGreeting %></P>
Two
styles for using delimiters are shown in the above
code sample. The five lines of code that constitute
the If statement are set off from the delimiters using
line breaks. The variable strGreeting in the
last line of the sample is a single line, and is
enclosed within delimiters on the same line. As a
general rule, your code will be more readable if you
follow these two style rules:
 | If
there is more than one line of script, put the
starting and ending delimiters on separate lines.
Indent the code from the left margin at least two
spaces for clarity. |
 | If
there is only one line of script, put the starting
and ending delimiters on the same line. Leave a
space before and after the script for clarity.
|
Back
to Top
Most of
the functionality you can build into an ASP page comes
from objects on the server. IIS 4.0 comes with some
built-in objects, as well as a number of installable
objects. You can also use objects created by a
developer you know, or create and use your own
objects.
Built-In
Objects
Six
objects come built-in with IIS 4.0. These objects
enable your pages to communicate effectively with the
server, the application, the current session, and the
user:
 |
Request object -- Gets information from the user.
You can get FORM data, read cookies, and so forth.
|
 |
Response object -- Sends information to the user.
You can send text to the page, redirect to another
URL, and set cookies. |
 |
Server object -- Interacts with the server. You can
access a database, read files, and find out about
the capabilities of the browser. |
 |
Session object -- Enables you to manage information
about the current session (each user has one session
per open browser). |
 |
Application object -- Will store information for all
sessions. |
 |
ObjectContext object -- Used for committing and
aborting transactions (new in IIS 4.0) |
Using Built-In
Objects
Use the
built-in objects just like any other object in a
script; by accessing properties, methods, and events.
For example, the general format for using the Request
object looks like this:
Request[.Collection](variable)
Here is
the Request object in action, being used to write a
form field's value on a Web page:
<P>The
value of 'strFirstName' is <%=
Request.Form("strFirstName") %></P>
The
collections available for the Request object are:
 |
ClientCertificate -- The values of fields stored in
the client certificate that is sent in the HTTP
request |
 |
Cookies -- The values of cookies sent in the HTTP
request |
 | Form
-- The values of form elements in the HTTP request
body |
 |
QueryString -- The values of variables in the HTTP
query string |
 |
ServerVariables -- The values of predetermined
environment variables |
Installable
Objects
IIS 4.0
comes with a variety of installable objects, and you
can also use your own custom objects on the server
side. The installable objects include:
 | Ad
Rotator -- Rotates advertisements displayed on a
page using a schedule |
 |
Browser Capabilities -- Gives you access to
information about the client browser's capabilities,
type, and version |
 |
Database Access -- Provides access to databases
using ADO (ActiveX® Data Objects) |
 |
Content Linking -- Creates tables of contents for
Web pages, and links them sequentially like the
pages of a book |
 | File
Access -- Provides access to file input and output
|
 |
Collaboration Data Objects for Windows NT Server --
Provides the ability to send and receive messages
from your Web page |
Back to Top
Data-Driven Web
Pages
IIS 4.0
and ASP make it easy to access data and put it on a
Web page. You can simply display data from an
ODBC-compliant database, or you can use ASP to make
decisions about what to display on Web pages. Here's
the process:
-
Create an ODBC Data Source -- Specify a Data Source
Name (DSN) in the server registry or in a file, and
grant access to all users, specific users, or
groups.
- Make
the Connection -- Use the Connection object to point
to a DSN, and create a Recordset object to gain
interactive access to data.
-
Execute Queries -- You can construct queries using
standard SQL syntax. You can submit queries using
Connection methods, Recordset methods, or with the
Command object.
-
Reissue Queries -- You can use the Command object to
change query parameters and quickly resubmit the
query. For example, you can INSERT a record into
your database with a set of values, reset the values
for the next record, insert it, and so on. The
Command object makes it easy to construct valid
queries, too, because it uses a parameter-driven
interface that is easy to set up and maintain.
-
Access Data Using Forms -- With forms, your users
can perform queries, read data, change data, add
records, and so forth. Thus you can create a
complete client-server solution. Using the
transaction features built into IIS 4.0, you can
even create multitier business solutions on the
Internet.
Cookies
You can
use cookies, as well as session and application
variables, to store and retrieve information. IIS
makes cookie values available to you with the Request
object's Cookies collection. You can set cookie values
with the Response object. Because IIS sends all header
information before the document content, you must set
cookies before the <HTML> tag. For example, to check
the value of a cookie, you can use this code:
<% Dim
strNameCookie strNameCookie =
Request.Cookies("nameCookie") %>
and
then set some session variables based on the cookie
value. You can use default values if there is no
nameCookie, or the existing cookie values if there is
a nameCookie:
<% If
strNameCookie = "" Then Session("strDefaultPage") = ""
Session("strDefaultLevel") = "1" Else
Session("strDefaultPage") =
Request.Cookies("pageCookie") Session("strDefaultLevel")
= Request.Cookies("levelCookie") End If %>
Back to Top
ASP
technology makes it easy to create complete Web-based
applications. You don't have to use the full breadth
of ASP technology on your Web pages, of course; you
can simply use ASP as a template language to create
flexible, easy-to-maintain Web pages. Or you can
create a client/server application: define a directory
for the application, and all files in that directory
(and in all of its sub-directories) exist as an
application. Pages can communicate with each other, or
with the application object. This is possible because
you can persist selected information across a user
session and/or the entire application as needed.
A
typical application can include Web pages, databases,
controls, server-side scripts, client-side scripts,
multiple servers, and transactions. The first visitor
to the application starts the application, and each
visitor has a unique session. You can create just
about any kind of application because of the multiple
levels of control available to you: scripts, built-in
ActiveX components, third-party components, custom
components of your own, databases, and transactions.
Other
key features of applications include:
 |
Start/End Events -- You can start and end
applications as needed, with complete control over
what occurs at both events. You can define subs or
functions that run at the start and end of an
application, enabling you to configure the
application automatically each time it starts, or
clean up each time it ends. |
 |
Isolated Processes -- You can run each application
in its own process on the server. This protects
applications from each other -- should one
application go down, it would not take the server or
other applications with it. |
 |
Application Object -- The Application object has its
own properties and methods. You can set or read
properties and use methods on any page that is part
of the application. You can set variables with
application scope when the application starts, and
change them at run time as needed to indicate the
application's current state. For example, you could
store the number of current sessions in the
Application object, and increment/decrement it as
visitors come and go from your site. |
Sessions and
Web Applications
The
Session object enables you to communicate effectively
between the pages of your application, and to store
information about visitors so you can easily retrieve
it on their next visit.
Each
visitor to your site has a Session object with a
unique session ID. You can use the Session object to
maintain information about that user during the
session. The session ID is stored in a cookie, and you
can add/read your own cookies as needed. You can use
the session ID cookie to rebuild session information
from one session to the next. For example, if a user
visits your site and establishes preferences that you
store in a database, you can use the session ID cookie
to read the correct database information every time
that visitor returns to your site. This makes it easy
to create a "personalized" Web site.
You can
store variables in the Session object that have
session scope. That means you can access the variable
from any page in the application that the user visits.
You can also establish handlers for the session start
and end events, integrate forms into your sessions,
and so forth.
Back to Top
|