<% ASP на блюдечке %>. Часть 1

Построение интерфейса к базе данных

Ты никогда не будешь знать достаточно,
если не будешь знать больше, чем достаточно.
Уильям Блейк

Рубен Садоян

Введение

Немного истории

     HTML (HyperText Markup Language)

     DHTML (Dynamic HyperText Markup Language)

     Языки сценариев (JavaScript и VBScript)

     Технологии Java и CGI

ASP и PHP

Зачем нужен ASP

Чем отличается ASP от других CGI

Интерфейс к базе данных с помощью ASP

     Постановка задачи

     Что нам понадобится

     Создание и подготовка базы данных

     Оформляем главную страницу (index.asp)

     Язык структурированных запросов — SQL

     Что такое Global.asa

     Удаляем статью (RemoveForm.asp и Rem.asp)

     Организуем поиск (SearchForm.asp и SearchDBS.asp)

И в заключение

Введение

Еще совсем недавно, когда Интернет являл собой лишь роскошь для избранных, профессия разработчика интерактивных Web-приложений была сродни профессии шофера в начале XX века или космонавта — в середине века. Как и в большинстве профессий, поначалу был просто врач, просто инженер, просто разработчик гипертекстовых страниц. В настоящее время уже довольно сложно разобраться во всевозможных профессиях, связанных с Интернетом, и инструментах для решения самых различных Интернет-задач. Давайте попробуем разобраться в этом пестром мире средств, служащих в конечном счете для нас с вами — читателей занимательных, ярких и разнообразных страниц всемирной компьютерной сети, и рассмотрим одно из них — ASP.

Настоящая статья — попытка собрать воедино весь инструментарий, необходимый и достаточный для построения простейшего Web-интерфейса к базам данных. И хотя для простоты изложения и понимания материала рассматриваются примеры по работе с базами данных MS-Access, тем не менее, освоив их, для читателя не составит труда перейти к созданию аналогичных интерфейсов к другим базам.

Статья адресована начинающим Web-программистам, профессионалам же будет достаточно беглого взгляда, чтобы понять принципы и вникнуть в детали работы активных серверных страниц — ASP.

В начало

В начало

Немного истории

Итак, проведем небольшой экскурс в историю развития и становления средств разработки содержания (content) и поведения (behavior) Всемирной паутины.

В начало

В начало

HTML (HyperText Markup Language)

HTML — язык разметки гипертекста — является приложением языка SGML (Standard Generalized Markup Language) — стандартный обобщенный язык разметки. Средствами HTML задаются синтаксис и размещение специальных встроенных указаний, в соответствии с которыми браузер отображает содержимое документа (текст, графика, мультимедиа, гиперссылки).

Базовый синтаксис HTML определяется стандартом HTML.

Говоря другими словами, HTML — язык компоновки документов и спецификации гиперссылок, используемый для кодировки документов в WWW.

Было время, когда знание HTML могло считаться необходимым и достаточным для владения профессией разработчика Web-страниц. Теперь же это только база — необходимая, но далеко не достаточная для создания подлинного интерактива (взаимодействия с читателем).

<html>
-------------------------------------------------------------------------------------------
<head>
<title> Заголовок HTML документа </title>
</head>
-------------------------------------------------------------------------------------------
<body>
Тело HTML документа
</body>
-------------------------------------------------------------------------------------------
</html>

Простой HTML-документ

С течением времени страницы Всемирной компьютерной сети постепенно начали «оживать», если выражаться пользовательской терминологией, а по сути произошел переход от структурного предъявления гипертекстовой информации к событийному. Если быть точнее, то переходом это в полной мере называть нельзя, попросту HTML обогатился средствами динамической интерпретации, или Dynamic HTML (DHTML — Dynamic HiperText Markup Language).

В начало

В начало

DHTML (Dynamic HyperText Markup Language)

До недавнего времени информация в большинстве Web-документов была статической, что требовало реакции сервера на действия пользователя. С введением DHTML парадигма Web сместилась от взаимодействия с сервером в сторону создания интерактивных Web-узлов и Web-приложений. Основной отличительной особенностью DHTML от HTML является возможность взаимодействия DHTML-документов с пользователем на клиентском компьютере, что в значительной степени обогащает возможности создаваемых с их помощью Web-страниц и Web-приложений и в то же время сводит часть взаимодействия пользователя с сервером к взаимодействию пользователя с DHTML-документом. Таким образом, можно говорить о перенесении некоторой доли вычислений с серверной на клиентскую сторону, что, разумеется, сокращает объем передаваемой информации от клиента серверу и обратно и экономит время. Как следствие, страницы, разработанные с использованием модели DHTML, в отличие от HTML, работают значительно быстрее именно за счет снижения объема информации, передаваемой от клиента (браузера) серверу и обратно.

В начало

В начало

Языки сценариев (JavaScript и VBScript)

Введя понятие DHTML, необходимо поговорить о языках создания сценариев событий HTML-документов. Для начала давайте определим понятие «сценарий». Итак, сценарий, в отличие от программы, имеет лишь одно направление выполнения — сверху вниз, именно поэтому, говоря о сценариях, встроенных в HTML-документы, не следует забывать о строгом порядке, в котором браузер формирует содержимое страницы.

Компания Netscape разработала язык создания сценариев JavaScript, а компания Microsoft — VBScript. Эти языки используются на стороне клиента, то есть генерируют объекты на основании HTML-страницы на стороне клиента в окне его браузера.

 

<!-- Here Script starts -->
 
<SCRIPT LANGUAGE="javascript">
 
function RunningTime() {
var RightNow = new Date()
var ampm = RightNow.getHours()
 
if (ampm >= 12) {nampm = "PM"}
else {nampm = "AM"}
 
var hr = RightNow.getHours()
if (hr > 12) {nhr = hr -12}
else {nhr = hr}
 
if (hr == 0) {nhr = "12"}
else {nhr = nhr}
 
var min = RightNow.getMinutes()
if (min < 10) {nmin = "0" +min}
else {nmin = min}
 
var sec = RightNow.getSeconds() +1
if (sec < 10) {nsec = "0" +sec}
else {nsec = sec}
 
if (nsec >= 60) {nnsec = "00"}
else {nnsec = nsec}
 
var printIt = "Time: " +nhr+ ":" +nmin+":" +nnsec+ ":" +nampm
document.clock.clockface.value = printIt
var KeepItGoing=setTimeout("RunningTime()","1000")
}
</SCRIPT>
<!-- End of the script -->
 
<FORM NAME="clock">
<INPUT TYPE="text" name="clockface">
<INPUT TYPE="button" VALUE="Get the Time" onClick="RunningTime()">
</FORM>

Пример весьма полезного JavaScript сценария

В начало

В начало

Технологии Java и CGI

В 1994 году специалистами компании Sun Microsystems была разработана технология создания динамических интерактивных Web-страниц — Java. Программы на языке Java называются аплетами (little applications).

Аплеты пишутся на Java и посылаются по Web как HTML-файлы браузеру, где выполняются как HTML-документы. Существенным преимуществом Java является независимость программ от платформ, на которых программы выполняются. Хотя Java не обязательно выполняется в окне браузера, возможно создание независимых (stand-alone) Java-приложений, которые могут выполняться на компьютере независимо от Интернета.

Фактически программа на языке Java транслируется компилятором в специальный код, называемый байтовым (bytecode), а затем выполняется уже с помощью интерпретатора языка Java. Такое «разделение обязанностей» и позволяет обеспечивать полную независимость Java-кода от конечной платформы, на которой он будет выполняться. Разумеется, для каждой конкретной платформы имеется свой интерпретатор языка, называемый виртуальной машиной Java (Java Virtual Machine).

<applet code="HelloWorld.class" width=150 height = 75>
Если Вы видите это сообщение, Ваш браузер не имеет поддержки Java.
</applet>
Исходный текст класса "HelloWorld.java" (компилируется в "HelloWorld.class"):
import java.applet.*;
import java.awt.*;
public class HelloWorld extends Applet
{ public void paint(Graphics g) {
g.drawString("Приветы всем!", 10, 70);
}

Много полезных Java-аплетов лежат здесь.

Сайт языка Java компании Sun Microsystem's: http://java.sun.com/.

Схема исполнения аплетов коренным образом отличается от схемы выполнения CGI-скриптов. Последние, в частности, выполняются на стороне сервера, в отличие от Java-аплетов, которые выполняются, как правило, на стороне клиента.

Что же такое CGI (Common Gateway Interface), или интерфейс общего шлюза?

По сути CGI — способ взаимодействия Web-программ с браузером пользователя. Поэтому под CGI-программами понимают программы, написанные на любом языке программирования, способного выполняться на Web-сервере, включая C, C++, Visual Basic или даже командные языки операционных сред (например, C Shell). Но большинство CGI-программ пишется на языке Perl.

Perl (Practical Extraction and Report Language) является одним из наиболее гибких языковых средств, служащих для программирования интерфейсов CGI. Изначально Perl предназначался для обработки больших объемов данных и генерации отчетов по обработке этих данных (как явствует из его названия). За последние несколько лет Perl превратился в полнофункциональный язык программирования. Изначально созданный исключительно для работы под управлением операционных систем семейства UNIX, Perl теперь совместим с такими ОС, как Amiga, MS-DOS, OS/2 Warp, VMS, Windows NT, Window 95 и Macintosh.

В начало

В начало

ASP и PHP

В последнее время все большую популярность получают эти два средства создания интерактивных Web-страниц. Основным их достоинством является возможность формирования страниц на основании интерактива «клиент-сервер». Сами же программы, написанные на ASP (Active Server Pages — активные серверные страницы) и PHP (Personal Home Page), настолько просты, что программирование с их помощью доступно даже неискушенным.

<? php 
  if ( strstr ( $HTTP_USER_AGENT, "MSIE" ) )  {
  ?>
  <center><b>You are using Internet Explorer</b></center>
  <?
  } else {
  ?>
  <center><b>You are not using Internet Explorer</b></center>
  <?
  }
  ?>

Пример PHP кода определяющего версию браузера

PHP часто еще называют препроцессором гипертекста (Hypertext Preprocessor). По сути PHP серверный (выполняющийся на стороне сервера) мультиплатформный язык описания сценариев, встраиваемый непосредственно в HTML-код. В настоящее время PHP интенсивно используют более полумиллиона доменов Всемирной компьютерной сети, он распространяется на правах freeware и его можно свободно скачать с сайта разработчика www.php.net. Основу синтаксиса PHP составляют язык программирования C, Java и Perl. Целью создания языка является разработка динамически генерируемых страниц в кратчайшие сроки.

Например, если Вы создаете online-каталог, вам скорее всего понадобится разрабатывать не сами HTML-страницы, а их шаблоны, по которым PHP будет формировать HTML-страницы исходя из ваших потребностей. Традиционно этот колоссальный объем работы выполняется вручную. С помощью PHP гораздо проще организовать интерфейс к базе данных и динамическое формирование страниц.

Несмотря на то что PHP — прекрасная альтернатива ASP, мы остановимся на последнем. Сравнивая эти два средства, решающие по сути схожие задачи, следует отметить переносимость первого (PHP) в отличие от второго (ASP) и специальную «заточку» ASP под создание гибких и удобных интерфейсов к базам данных. Это включает использование ActiveX Data Objects (ADO). Колоссальная поддержка структурированного языка запросов к базам данных SQL является мощнейшим средством, используя которое разработчик может не переучиваясь, работать напрямую с базами данных привычным образом. ASP поддерживает работу со всеми базами данных, соответствующими стандарту ODBC.

Говоря простыми словами, Active Server Pages — это обычные страницы, которые содержат скрипты, выполняющиеся на сервере наряду с обычным HTML-кодом (если вы посмотрите на строку адреса в окне браузера, то заметите довольно часто встречающееся расширение .asp). Если вы когда-нибудь программировали на Perl, то начать писать на ASP не составит для вас труда, ведь принцип почти один и тот же: после того как «серверный» код обработан сервером, результирующая страница, содержащая только клиентский код (HTML, JavaScript, VBScript), посылается клиенту. Код, выполнявшийся на стороне сервера, увидеть в окне браузера невозможно — вы видите лишь результат его работы.

ASP работает как под управлением Windows NT-сервера (необходимо установить Windows NT Server и Web-сервер с поддержкой ASP — Microsoft's Internet Information Server [IIS]), так и под управлением других операционных систем. В последнее время компания Chili!Soft разработала версии ASP для следующих операционных систем:

  • Linux (Red Hat Linux 6.2, 6.1, Suse Linux 6.4, Linux-Mandrake 7.0, Slackware Linux 7.0)
  • Windows NT
  • Solaris (Solaris 2.7, Solaris 2.6, 2.5.1)
  • AIX
  • HP-UX

ASP становится совместимым со все большим числом операционных систем.

<%@ LANGUAGE="VBSCRIPT" %>
  <HTML>
  <HEAD>
  <TITLE>ASP test</TITLE>
  </HEAD>
  <BODY>
  <%= "Good day! It is now " & time %>
  </BODY>
  </HTML>

Еще пару лет назад процесс программирования Web-серверов был отнюдь не тривиальной задачей. Написание CGI (Common Gateway Interface)-программ требовало особой осторожности и весьма высокой квалификации от программистов и администраторов, возникали сложности при отладке большинства приложений написанных на C, C++ или Perl. Когда компания Microsoft выпустила 3-ю версию своего Web-сервера (Internet Information Server), в начале 1997 года был создан принципиально новый метод написания серверных приложений.

В начало

В начало

Зачем нужен ASP

Активные серверные страницы (Active Server Pages) и HTML взаимодействуют с базами данных совершенно по-разному. Принципиальное отличие состоит в том, что на HTML-странице строка с директивой, осуществляющей прямое соединение с базой данных, расположена непосредственно в исходном коде страницы в окне браузера на стороне клиента. В ASP-странице она заменена переменной Web-приложения, которая определена в специальном файле global.asa и доступна всем ASP-страницам Web-приложения.

В начало

В начало

Чем отличается ASP от других CGI

Как известно, CGI обеспечивает способ, посредством которого Web-браузер осуществляет запуск Web-приложения на стороне сервера, результатом работы которого является HTML-страница, посылаемая клиенту. Всякий раз, когда клиент инициирует выполнение CGI-приложения, Web-сервер выполняет отдельную его копию (instance). Проблема заключается в том, что для каждого запроса клиента запускается копия Web-приложения на сервере, что резко сокращает производительность сервера при больших и средних нагрузках. Совсем иначе обстоят дела в случае использования ASP. Предположим, одно и то же приложение выполняется двумя разными клиентами. Двух приложений не существует, существуют лишь две сессии одного и того же приложения. И всякий раз, когда новым клиентом осуществляется запрос, порождается новая сессия Web-приложения.

ASP позволяет перемешивать HTML-код с программным кодом, что, в свою очередь, позволяет легко и удобно встраивать серверные программы в страницы, причем первые будут выполняться только на стороне сервера. Еще одним мощным средством является поддержка ActiveX, так как ASP является языком, обеспечивающим полную поддержку ActiveX Scripting Interface. Итак…

В начало

В начало