Лекция 3 Основные технологии разработки Web приложений.

Презентация:



Advertisements
Похожие презентации
Троицкий Д.И. Интернет-технологии1 ДИНАМИЧЕСКИЕ WEB-СТРАНИЦЫ СЕРВЕРНЫЕ СЦЕНАРИИ Лекция 9 Кафедра «Автоматизированные станочные системы» Dept. of Automated.
Advertisements

Лекция 2. Тема « Новые технологии и тенденции развития Интернет »
Java Server Pages (JSP). JSP Позволяет веб разработчикам динамически генерировать HTML, XML - и другие веб страницы. Страницы компилируются JSP- компилятором.
Платформа J2EE Сервис: Java Naming Directory (JNDI) – универсальный сервис хранения объектов в иерархической структуре имен (аналогично файловой системе)
WEB- ТЕХНОЛОГИИ Лекция 1. WEB- ПРИЛОЖЕНИЯ 1 Особый тип программ, построенных по архитектуре « клиент - сервер » Основа получение запросов от пользователя.
Платформа J2EE Сервис: Java Naming Directory (JNDI) – универсальный сервис хранения объектов в иерархической структуре имен (аналогично файловой системе)
Web-узлы. Разработка и администрирование.. Часть 1. Web-технология.
Introduction Microsoft Access 41 Database models 2 Database management system 3 What is database?
Java-script – обзор и возможности.. JavaScript объектно-ориентированный скриптовый язык программирования. JavaScript обычно используется как встраиваемый.
Saint Petersburg, 2012 Java Lecture 11 Web/Servlets.
Java Server Pages(JSP). JavaServer Pages (JSP) позволяют вам отделить динамическую часть ваших страниц от статического HTML. Вы, как обычно, пишете обычный.
Где хранить данные в web- приложении page –JSP страница request – HTTP запрос session – сессия пользователя application – веб-приложение Static Java class.
Разработка web- приложений и ASP.NET. Web-приложения и web- серверы Web-приложение это набор взаимосвязанных файлов (*.htm, *.asp, *,aspx, файлов изображений.
Saint Petersburg, 2012 Java Lecture 12 JSTL. JSP -> JSTL JSP – хорошо Что делать если хотим добавить условие? Итерирование по списку и вывод каждого элемента.
Программирование на стороне сервера.
Единая система аутентификации Обзор решения Москва, 2012г.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – ASP.NET-процесс, пул, домен приложения, компиляция,
1 Учебный курс Введение в JavaScript и CGI Лекция 5 Основы CGI кандидат технических наук Павел Брониславович Храмцов
Интернет- технологии МИИГаИК. Указание XML-документов в ориентире на будущее
Языки, технологии и средства создания Web-сайтов. Компонентная структура. Выполнил Федорова Я.В., студентка СФУ ИППС 1 курс заочное отделение.
Транксрипт:

Лекция 3 Основные технологии разработки Web приложений

Web страница (page) Файл, который содержит информацию описанную на языке HTML (или XHTML) и может включать гиперссылки на другие web страницы. Каждая web страница имеет URL адрес с помощью которого она может быть получена. Web страницы могут быть статическими или динамическими: –Статические (html или htm) страницы передаются браузеру без обработки; –Динамические страницы предварительно обрабатываются на сервере в результате чего получается HTML документ, который и передается браузеру.

Web сайт Web сайт это набор логически связанных Web страниц, изображений (images), videos или других цифровых данных, которые доступны web серверу. Web сайт имеет некоторую начальную страницу (homepage) используя которую можно перейти к другим страницам сайта. Страницы web сайта обычно разделены по папкам, которые создают иерархическую структуру сайта. Если начальная страница сайта в URL не указывается, то web сервер использует страницу со стандартным именем (default или index).

Web приложения Web приложение или webapp это приложение, с которым можно работать с помощью web браузера по сети Internet или intranet. Это также компьютерная прикладная программа, пользовательский интерфейс (UI) которой кодируется на языках понятных браузерам (например, HTML, CSS, JavaScript и пр.) и которая доверяет обычному браузеру возможность работы с ней. Web приложения стали очень популярными по следующим причинам: –браузеры стали доступными во всех операционных системах; –браузеры удобно использовать в качестве клиентов (иногда называемых «тонкими»); –возможности обновлять и поддерживать web приложения без без обновления ПО у пользователя; –возможность поддерживать разные компьютерные платформы (Intel, Sun, Apple …); К распространенным web приложениям относятся: –Почта (gmail.com) –Розничная торговля (ozon.ru) –Аукционы, –Открытые энциклопедии (wiki).

Web приложение Первоначально Web приложение рассматривалось, как реализация цикла запрос/ответ (request/response): –клиент (браузер) отправляет запроса Web серверу с любыми данными на текущей странице; –наличие кода на сервере, который формирует новую страницу; –отправка новой страницы назад клиенту и (наконец) браузер отображает всю новую страницу пользователю; –далее цикл запрос – ответ повторяется. Современное понимание Web приложений: –клиент также отправляет запрос на новую страницу; –но после формирования новой страницы, получения ее браузером и отображения пользователю, все последующие взаимодействия между страницей и сервером выполняется с использованием JavaScript и Web Сервисом (по крайней мере, до тех пор, пока пользователь не перейдет к новой странице.

Типичная структура web-приложений

Браузер Web- сервер HTML страница CSS JavaScript Script Engine содержание оформление поведение Server Script Engine Папка Web сервера a.htm b.asp c.php d.aspx q.exe

Основные идеи ASP.Net Web Forms Создание на стороне сервера объектной модели приложения, аналогичной объектной модели локального приложения. При поступлении HTTP запроса к web форме (странице) xxx.aspx создаются объекты web приложения. Объекты web страниц содержат набор обработчиков событий, связанных с ЭУ формы. После обработки всех событий, каждый ЭУ записывает в ответ (response, HTML страницу) некоторый HTML ЭУ (или скрипт)

Технологии разработки Web приложений

Технологии программирования на стороне сервера (Server-Side Code) Выполняемая программа –Common Gateway Interface (CGI) Набор классов, используемых сервером –Internet Server API (ISAPI) –Java сервлеты –Netscape Server API (NSAPI) Скриптовые технологии –Active Server Pages (ASP) –Java Server Pages (JSP) –Personal Home Page (PHP) –Cold Fusion (CFM) –Google App Engine (Python) Технология разработки web apps на платформе.Net ASP.NET Web Forms ASP.NET MVC

Технология Common Gateway Interface (CGI) Простейший способ динамически формировать Web страницу в ответ на HTTP запрос состоит в том, чтобы передать работу по поиску динамических данных и описанию HTML страницы внешней программе, которая должна получать переданные в HTTP запросе входные параметры и генерировать выходную страницу на языке HTML. Вызов внешней программы выполняется при поступлении к Web серверу HTTP запроса от браузера, который включает ссылку не на статическую страницу, а на CGI программу (например: prog.exe). Для того, чтобы выполнить взаимодействие между сервером и внешней программой необходимо использовать стандартный интерфейс, который называется Common Gateway Interface (CGI) (Общий Интерфейс Доступа). Интерфейс CGI позволяет Web серверу вызывать программы, называемые CGI программами, которые выполняются «на лету», для динамического формирования HTML страницы. CGI программа может: –посылать запросы базе данных для получения требуемых данных, которые затем используются для сборки HTML страницы, или –может сохранять переданные данные пользователя в базу данных, вставляя или обновляя хранящиеся в ней данные.

Выполнение CGI запроса На рисунке показаны последовательность динамического формирования Web страниц с помощью технологии CGI: 1.Клиент отправляет HTTP запрос (request) к серверу для выполнения CGI программы. Данный запрос также может включать некоторые входные данные; например, с запросом к поисковой программе должны передаваться термины (искомые слова), которые входят в запрос. 2.Используя CGI интерфейс, HTTP сервер вызывает на выполнение внешнюю программу (т.е., CGI скрипт) и передает в ее входной поток (вместо ввода с клавиатуры) данные, которые поступают вместе с HTTP запросом. 3.Внешняя программа с помощью выходного потока (вместо вывода на экран) создает (генерирует) результирующую HTML страницу и передает ее назад HTTP серверу. 4.HTTP сервер формирует HTTP ответ (response), в который встраивает созданную CGI программой web страницу и отправляет ее назад клиенту, который прислал запрос.

Выполнение CGI запроса (2) Размещение CGI программы в файловой системе сервера задается в виде URL в HTTP запросе, точно также, как описывается размещение на сервере HTML страницы. Для того, что выполнить подходящие действия, HTTP сервер конфигурируется таким образом, чтобы различать запросы к статическим ресурсам и запросы CGI программам: –в случае статических ресурсов (например, HTTP страница), они просто отсылаются клиенту, –CGI запросы вначале выполняются, а затем полученный результат отправляется клиенту. Для указания серверу на то, где в файловой системе размещаются HTML страницы и CGI скрипты, в конфигурационном файле задается соответствие (mapping) различных URL и каталогов (directories, папок) на HTTP сервер. Таким образом сервер определяет, что если URL в HTTP запросе указывает на конкретный каталог (папку) (например, каталог с именем cgi-bin), то тогда запрашиваемый файл является программой, которая должна быть запущена на выполнение. Web сервер и CGI программы взаимодействуют с помощью системных переменных (system variables), в которые HTTP сервер записывает данные полученные от HTTP запроса. Эти переменные описывают параметры HTTP запроса (такие, как, используемый HTTP метод, количество байт прикрепленных к запросу, и т.п.), которые являются полезными для CGI программы.

Web сервер также передает CGI программе данные переданные в запросе, которые вводятся пользователем (с помощью форм) и передаются с HTTP запросом посредством методов GET и POST протокола HTTP: –метод GET: communicates the user input as label/value pairs appended to the requested URL. For example, when the URL is received, the server invokes the search CGI script, located in the cgi-bin directory, and initializes a CGI variable, called query string, with the label/value pair (Key=search key in the pervious example). In this way, the CGI script can get the user input simply by fetching and decoding the content of this variable. The CGI script is then invoked by passing to a system shell a command line, whose length can be at most 256 characters. Due to this limitation, the GET method is used when the client needs to communicate to the server only few simple parameters. –метод POST: attaches the user input to the HTTP request using the message body. Therefore, differently from the GET method, the POST method is able to support the transmission of large amounts of data from the browser to the Web server. More specifically, the browser packages the user's input in the body of the HTTP request and sends it to the Web server. The Web server then extracts the user's input from the message body, and sends it to the standard input of the CGI script, which can then use it for performing a business action and generating the response. Входные данные пользователей собираются с помощью форм. На следующем слайде показан HTML код и его отображение в браузере, который использует метод GET для передачи ключевых слов поисковой CGI программе. The form is delimited by the tag and is composed of two elements: –a text field, for entering the search keys, and a button, for submitting the keys to the Web server. –The action attribute of the element specifies the URL of the program to be called when the Search" button is pressed. The method attribute then specifies the HTTP method to use for sending the input.

Простая форма для ввода поискового запроса

Недостатки технологии CGI Технология CGI это простейший способ динамически публиковать и обновлять информацию (content) в сети Web, но ее архитектура имеет существенные недостатки, которые делают ее не практичной в большинстве случаев. –Основной проблемой является производительность: для каждого HTTP запроса к CGI script Web сервер запускает новый процесс, который заканчивает работу только после завершения программы. Работа по созданию и завершению процессов является очень трудоемкой (требует много процессорного времени и оперативной памяти), что очень быстро может понизить производительность системы, кроме этого различные активные процессы начинают конкурировать за системные ресурсы, такие как оперативная память. –Кроме этого, завершение процесса после выполнения CGI программы, при обработке каждого запроса препятствует сохранению информации о взаимодействии с пользователем в ходе последовательности его запросов, если она не будет сохраняться в базе данных, что также влияет на производительность системы. –Завершение процесса препятствует управлению совместными ресурсами, такими, как база данных, которая используется множеством пользователей при обработке их HTTP запросов. –И, наконец, CGI программы не могут связываться с другими этапами обработки запросов Web сервером, такими, как аутентификация (авторизация) и ведение журнала обработки запросов (logging).

Расширения технологии CGI Для преодоления этих недостатков и для создания приложений, требующих высокую производительность и сохранения данных о сеансе работы пользователей, были предложены более сложные инфраструктуры коммуникации. Например, несколько компаний разработали собственные API для своих серверов, которые однако жертвовали простатой технологии CGI. Технология FastCGI была разработана как независимое от языка, открытое расширение CGI, улучшающая общую производительность сервера, но при этом позволяющая преодолеть ограничения Специфических API сервера. Технология FastCGI является интерейсом Web сервера, который концептуально очень похож на CGI. Основным отличием технологии FastCGI является то, что ее процессы являются постоянными (persistent): после каждой обработки запроса они не завершают работу, а ожидают обработки нового запроса. Обработка запросов программой FastCGI выполняется следующим образом: 1. The Web server creates FastCGI processes to handle requests. The processes may be created at startup or on demand. 2. Each FastCGI process initializes itself and waits for a new connection from the Web server. 3. When the client sends a request, the Web server opens a connection to the FastCGI process. The server transports the CGI environment variables and the input over the connection. 4. The FastCGI process sends the output back to the server over the same connection. 5. When the FastCGI process closes the connection, the request is complete. The FastCGI process then waits for another connection from the Web server.

Технология SSI (Server Side Includes) Server Side Includes (SSIs) это директивы вставляемые в HTML код и выполняемые web сервером при обработке страницы. Они позволяют добавлять динамически генерируемое содержание к существующей странице, без необходимости формировать всю страницу с помощью CGI программы или другой динамической технологии. Директивы SSI имеют следующий синтаксис: As can be observed, they are formatted like HTML comments. Therefore, if the Web server is not SSI-enabled, the directive will not be processed, and the browser will simply ignore them; otherwise, the directive will be replaced with its results. To call SSI from a Web page, the Web server must be enabled and configured to interpret SSI commands, and the Web page must be named with the.shtml extension, instead of with the usual.html or.htm. The server is therefore able to parse the Web page looking for comments that, in the case of SSI directives, tell the server which operations must be performed before sending back the Web page to the client.

В страницу можно включают несколько директив. The most commonly used are shortly illustrated in Table 2.1. Beyond the basic set of directives, which are mainly used to generate contents, some advanced commands can also be used to set variables and to use variables in comparisons and conditions. It is worth noting that the decision of when to use SSI and when to have pages entirely generated by an external program usually depends on the amount of content that needs to be regenerated every time the page is served. SSI это способ добавлять небольшие порции информации, такие, как текущая дата и время. Hоднако если требуется сформировать значительную часть Web страницы при ее обработке, то требуется использовать другие технологии.

Некоторые общие SSI директивы echo - It displays the value of some HTTP environment variables. For example, the directive displays the today's date. include - It is used to include the content of one file (HTML page, text file, script, etc.) into another. A typical example is the inclusion of files coding parts of pages that are persistent throughout the whole Web site, such as navigation bars, headers and footers. For example, the directive includes the file navigationBar.html, coding a persistent navigation bar. The parameter virtual specifies the path of the file to be included. In alternative, the parameter file can be used to specify a file path relative to the directory of the document being served. fsize and flastmod - They return the size and last modification date of some files on the server. For example, the directive returns the last modification date of the file home.html, whose path is specified trough the virtual attribute. exec - It executes a program, script, or shell command on the server. The cmd parameter is used to specify a server-side command, while the cgi parameter is used for expressing the path to a CGI script.

Расширения Web Сервера (Server Extensions) Недостатки технологий CGI/FastCGI и SSI можно преодолеть путем расширения возможностей Web сервера с помощью компонент выполнения приложений (application execution engine), как это показано на рис. ниже ). Здесь программы for computing the HTTP response can be processed in an efficient way, without being terminated after each request, and shared resources can be associated with one or more applications and concurrently accessed by multiple users. Such an extended architecture typically also offers a main memory environment for storing session data whose duration goes across multiple HTTP requests. The extended Web server architecture

Приложения на стороне сервера (программы и классы объектов) CGI Java cервлеты, ISAPI Программа Данные запроса (Request) HTML код (Respons e) Набор классов (объекты) Данные запроса (Request) HTML код (Respons e)

Сервлеты - servlets Примером расширения архитектуры Web сервера является прикладной интерфейс Javasoft's Servlet API, который связывает Web server с виртуальной машиной a Java Virtual Machine (JVM). Виртуальная машина JVM поддерживает выполнение специальной Java программы (контейнер сервлетов), которая в свою очередь отвечает за управление данными сеанса работы и выполнение Java сервлетов. Java сервлеты это программы на языке Java, которые могут быть вызваны на выполнение с помощью HTTP запросов (requests), чтобы динамически формировать отправляемые клиентам страницы. Контейнер сервлетов (servlet container) отвечает –за получение HTTP запроса для выполнения сервлетов от Web server, –создание сеанса работы пользователя, если это требуется, –вызов сервлета связанного с HTTP запросом, –передача сервлету параметров, которые содержатся в HTTP запросе, представленные в виде Java объекта. В общем случае контейнер сервлетов является ответственным за оптимизацию жизненного цикла сервлетов, путем их совместного использования всеми клиентами, которым требуется их услуги. Таким образом возможно уменьшить количество операций создания и удаления объектов, соответствующих сервлетам и организации соединений с источниками данных.

Существуют разные типы сервлетов, каждый из которых реализует интерфейс javax.servlet.Servlet, описанный в спецификации servlet API, которые поддерживают управление жизненным циклом сервлетов, который состоит из следующих шагов: –Класс сервлета (servlet class) загружается контейнером сервлетов в ходе этапа инициализации с помощью метода init(). Данный метод инициализирует сервлет до того, как он сможет обслужить какой-либо запрос. –После инициализации, каждый раз, как требуется использовать сервлет, контейнер вызывает метод service(), который определяет тип запроса и переправляет его соответствующему методу сервлета. –Прежде чем завершить работу, контейнер вызывает метод destroy() для удаления экземпляра сервлета и освобождения всех его ресурсов. В случае специфических для HTTP сервисов, servlets extend the class HTTPServlet, a standard implementation of the Servlet interface for the HTTP protocol that offers basic primitives for interacting with the servlet container, such as the functions for inspecting the HTTP request and the session data, and for writing the output (i.e., the generated page markup) to the HTTP response.

Архитектура Java сервлета

Пример Java сервлета, генерирующего HTML страницу

Пояснение к примеру Сервлет с именем SimpleServlet, является производным классом (extends) от класса HttpServlet. В этом классе переопределяется метод doGet(), который вызывается контейнером сервлетов при поступлении HTTP запроса, использующего метод GET. Метод doGet() формирует HTML страницу, которая отправляется клиенту в качестве ответа. В метод doGet() передаются два параметра, которые соответствуют обрабатываемому запросу (request) и создаваемому ответу (response). В этих параметрах есть методы, которые позволяют работать с ними. Например: –метод setContentType() используется для определения типа ответа (в данном случае HTML страница), –метод setHeader() controls some parameters of the page to be sent back to the client. For example, the attribute Pragma no-cache" sets an HTTP header that prevents the browser from caching the page. Метод getWriter() дает возможность сервлету вернуть результат обработки клиенту. Точнее, метод возвращает выходной поток (output stream - out object) с помощью которого созданная страница отправляется назад клиенту. Все данные выведенные в этот output stream отправляются клиенту. В данном примере Iвсе вызовы метода println() выводят некоторую разметку HTML и некоторое текстовое содержание, постепенно формируя HTML страницу, которая будет отправлена клиенту.

Использование скриптов на стороне сервера Server-side scripting is a technique for building dynamic pages, which consists of inserting into HTML page templates programming instructions to be executed by a server program to determine the dynamic parts of the pages. The programmer thus may add the necessary scripting instructions to the HTML template that, as shown in Figure 2.13, must then be deployed in an extended Web server equipped with a scripting engine capable of interpreting the server-side scripting instructions. When an incoming HTTP request refers to a page template, the Web server forwards the page template to the scripting engine, which processes the embedded programming instructions to determine the dynamic parts of the page and includes them in the page template. The generated output is a plain HTML page that is sent back to the Web server, which in turn forwards it to the client. For the browser receiving the result page, the server- side processing is completely invisible, and the HTML code received is perfectly identical to that of a manually produced, static page. Despite the similarity, the coding style of server-side scripts is completely different from that of servlets. A servlet contains programming instructions for printing the entire page, whereas a page template contains regular HTML, with programming instructions limited to the computation of the variable part of the page. Thanks to this separation between static and dynamic content, server-side scripting page templates are typically easier to write and maintain. Today, a broad variety of server-side scripting languages is available on the market. Factors influencing the choice of the most appropriate language include the availability of the technology on the target platform, the support for the scripting language by the Web server, the cost (free or not), and the complexity of the required functionality.

Выполнение шаблона страницы со скриптами на стороне сервера

Основные скриптовые серверные языки ASP: ASP, an acronym for Active Server Pages, is Microsoft's closed-source solution technology for server-side scripting. It was originally designed for and only supported by Internet Information Server (IIS). Although some solutions have become available to run ASP script on other Web servers, it is still most reliable combined with ISS. Furthermore, unlike PHP, it is not tied to one particular scripting language. ASP uses Microsoft Visual Basic Scripting Edition (VBScript) as the default scripting language, but others can be used. PHP (PHP: Hypertext Preprocessor", Personal Home Page) is one of the most popular server-side scripting languages today. It draws its popularity from the fact that it is free, open source (with a huge supporting community), available on all major platforms, and is supported by all popular Web servers. It is in essence an imperative dynamically typed language, enhanced with object-oriented programming constructs. Perl: Perl, originally designed as a string manipulation language, grew to be one of the most popular server-side scripting languages today. It stems from the early days of the Web, when it was used for CGI scripting. Now, it is a dynamically typed multi-paradigm programming language, freely available on most platforms. Like PHP, it is open source, and enjoys the support of a large community.

Java Server Pages (JSP) JSP является простой но мощной технологией, которая увеличивает возможности Java сервлетов. JSP страница состоит из блоков статического кода (HTML, JavaScript, CSS и т.п.), смешанных с динамическими блоками, т.е. порциями кода на языке Java, который выполняется системой выполнения скриптов на сервере (scripting engine). Как показано на слайде, при получении Web сервером (контейнером JSP) первого запроса к JSP странице, JSP шаблон (template) преобразуется в сервлет, который затем компилируется и сохраняется в основной памяти, а затем используется для формирования HTML страницы. При этом статический HTML код просто переносится в формируемую страницу, связанную с service методом сервлета. Сформированный таким образом результат отсылается клиенту, который отображает его, как простую HTML страницу. При получении Web сервером каждого следующего запроса к той же самой JSP страницы, он проверяет, не изменился ли программный код после последней его обработки с помощью HTTP заголовка Last Modified. Если код не изменился, то выполняется откомпилированный код, сохраненный в ОП; иначе JSP страница заново обрабатывается и создается новый экземпляр сервлета, который компилируется и сохраняется в ОП. В связи с этим, выполнение первого вызова JSP страницы требует больше времени (так называемый штраф на первого пользователя (first-person penalty)), а последующие запросы обрабатываются быстрее.

JSP страница JSP страница состоит из следующих элементов: –Директивы (Directives): are used to communicate information about the page to the JSP container and to specify options about the translation of the page to a servlet. The page directives relate to page properties, such as the language used for the expression of scripts within the page, the URL of the error page, session tracking instructions. Besides page directives, the include directive can be used for importing les to be combined with the JSP page, while the taglib directive declares libraries of personalized tags used within the page to code the invocation of some actions (see the next paragraph on server-side executable tags for details). –Скриптовые элементы (Scripting elements): enable the inclusion of code written in the language declared through the directives (generally Java). They can specify declarations of variables and methods, expressions returning strings to be displayed in the final HTML page, or arbitrarily complex portions of code, called scriptlets. –Действия (Actions): are tags that invoke the execution of actions. The JSP specification offers a set of standard actions: to include resources (both static or dynamic) in the JSP page ( ), to forward the processing of the current resource to another static resource, a servlet, or a JSP page ( ), and to invoke the execution of Java components (see Table 2.2). An extension of this set is provided by the Java Standard Tag Library (JSTL). Libraries of custom tags can also be defined and used within JSP pages to invoke functions not covered by the standard actions and JSTL (see the next paragraph on server-side executable tags for details).

An example of a JSP page

На слайде показан пример очень простой JSP страницы. The HTML markup (lines 4-8 and 11-12) constitutes the page template. The other lines are JSP elements: –Lines 1-3 correspond to page directives: the first line specifies the language used within the page (Java), the second one the type of the document to be generated (text/html, according to the MIME standard), and the third one imports a Java package (util). –Lines 9 and 10 are examples of scripting elements. Line 9 is a scriptlet, that is, a portion of Java code displaying a message in the final rendered page. –Line 10 is an expression, whose result (the current date) is transformed into a string displayed on the final rendered page. It is worth noting that scripting elements can access some implicit objects, i.e., objects that the JSP container makes directly available to the JSP pages, without any need for the JSP pages to instantiate them. The most important objects are: –request: it is an instance of a class implementing the ServletRequest interface, included in the package javax.servlet. It stores the HTTP request received by the client, and its methods allow access to information related to the request, such as possible parameters (getParameters() and getParameterValues()), or to the client issuing the request (getRemoteAddr() and getRemoteHost()). –response: it is an instance of the class implementing the ServletResponse interface, which can be used to manage the response to be sent back to the client. It enables in particular access to the output stream, to set properties of the generated HTTP response, such as an error or a cookie to be sent back to the client. –out: it is an instance of the class JSPwriter. By means of methods such as print() and println(), it allows us to write on the output stream corresponding to the response to be delivered to the client. –session: it allows us to associate an identifier of the user requesting a page with a parameter whose value can be maintained by the JSP container and retrieved when serving any subsequent request by the same user. In this way, it is possible to keep track of the selections made by a user during navigation using one or more session variables.

Теги выполняемые на стороне сервера Although server-side scripting facilitates the development of dynamic Web applications, it does not eliminate the need for mixing programming with content and markup. The need remains for the programmer and the graphic designer to work jointly on the same source file, which limits a full separation of concerns" between the various aspects of Web development: the static content, the look and feel, and the programming logic. The so-called server-side tag libraries take a further step in the direction of separating content and markup from the programming of a dynamic page template. Tag libraries are available both in the Java world, starting from Version 1.1 of the JSP specification, and in the Microsoft.NET platform, as part of the ASP.NET language. The key idea behind them is to mask the programming code necessary for dynamic content production through tags, which can be inserted in the page as regular markup elements, but are executed by a runtime interpreter. With a tag library, content and programming are not mixed up in the page template markup. The template consists of only content and markup; the markup includes special XML tags that are executed by a server-side program to produce further content and/or HTML markup. In JSP, custom tags are used to invoke JavaBeans, reusable Java software components (Java classes), that can be used for building different types of Java applications (applets, or even more complex standalone applications) in any application domain. Whether JavaBeans are used to develop simple applets or more sophisticated applications, they can be easily integrated into JSP pages: the JavaBean code will be hidden to the developer of the JSP page, who will only need to invoke the methods exposed by the corresponding Java class.

Стандартные действия в JSP для включения JavaBeans Встраивание JavaBeans в JSP страницы возможно с помощью таких стандартных JSP тегов, как: It invokes the execution of a JavaBean, that is a Java Component that runs in any Java Virtual Machine. In particular, it associates an instance of the corresponding Java class with an identifier, also defining the scope of the created object. –Например, следующий создает экземпляр класса JavaClass и связывает его с идентификатором myBean, который после этого может использоваться для получения доступа к методам и переменным класса. Областью видимости созданного экземпляра является сеанс работы, т.е. данный объект будет доступен для всех страниц запрашиваемых в течении одного и того же сеанса. Other possible scopes are page (the page where the instance is created), request (all the pages computed within a same request), and application (all the pages within a given application). It is a sub-action of, used to set some properties of a JavaBean. It is a sub-action of, used to get the values of some properties of a JavaBean.

Технология ISAPI Что такое – библиотека с помощью которой создаются объекты web- приложения. Отличие от CGI –Процессы и потоки Недостатки: –Достаточно сложные. Нужно знать С++ и множество функций и структур. –Много стандартных задач, которые нужно решать при создании web – приложения.

Обзор архитектуры ISAPI Приложения ISAPI представляют собой библиотеки DLL, напрямую взаимодействующие с IIS API. Программное обеспечение ISAPI – это расширение или фильтр. –Расширения ISAPI являются библиотеками DLL, вызываемыми посредством квалифицированного запроса в IIS. –Фильтры ISAPI вызываются независимо от других запросов IIS. Запросы HTTP передаются напрямую расширению ISAPI с помощью ссылки URL или данных, отправляемых из формы HTML. Расширение ISAPI может вызываться косвенно посредством связывания файла с определенным расширением ISAPI в IIS. При установке связей файлов выполняются действия, аналогичные ассоциированию файлов ответа сервера (SRF) с конкретным расширением ISAPI в ATL Server. Можно настроить реагирование фильтров ISAPI на запросы согласно приоритету; это отличает их от других фильтров, загружаемых в IIS. Фильтры используются в специализированных приложениях, связанных с IIS, и обычно выполняют следующие задачи: –шифрование; –ведение журналов; –аутентификация; –сжатие данных. Расширения ISAPI – наиболее частый способ применения ISAPI. Фильтры ISAPI довольно сложны в создании, и сфера их использования ограничена. Данная тема выходит за рамки книги и рассматриваться не будет.

Приложения на стороне сервера (скрипты) Серверный скрипт –ASP –PHP –JSP Script Engine (компонент выполнения скриптов) Данные запроса (Request) HTML код (Response) HTML + script Чтение и выполнение

Технология ASP Active Server Pages (ASP) это система обработки скриптов на стороне сервера, разработанная компанией Mictrosoft (Microsoft's server-side script engine) для динамического создания web страниц. Она поставляется в виде дополнения к Web серверу - Internet Information Services (IIS). Реализован с помощью специального ISAPI расширения. Освобождает разработчика от изучения ISAPI.

Active Server Pages ASP страницы пишутся на языке VBScript, но вместо этого языка может быть выбран любой другой Active Scripting engine: –Язык JScript (реализация Microsoft стандарта ECMAScript) является другим языком, который также обычно доступен. –Язык PerlScript (вариант языка Perl) и другие языки доступны при инсталяции Active Scripting engines, разработанных сторонними компаниями. Используемый язык указывается с помощью: или –тега. Вставка кода в HTML документ с помощью тегов Обычно используется ADO для взаимодействия с БД

Active Server Pages Программирование ASP web-сайтов облегчается за счет использования различных встроенных объектов. Каждый объект содержат набор удобных в использовании методов, полезных для создания динамических web страниц. В ASP 2.0 имеется 6 таких встроенных объектов: –Application, –Request - позволяет получить доступ ко все данным, которые посылает браузер при предоставлении формы Метод по умолчанию Form(имяЭлемента) –Response – позволяет вставить в HTML текст требуемые данные Например, метод Write() –Server –Session - объект Session является объектом организации сеанса работы на основе использования cookie, который поддерживает переменные передаваемые от одной страницы к другой. –ASPError.

Что такое ASP? HTTP request (form data, HTTP header data) HTTP response HTML, XML ASP page (static HTML, server-side logic)

Обработка скрипта на сервере Server Script Engine (ISAPI компонент выполнения скриптов) … … … Server Applica tion Request Respo nse Session HTML страница

Пример: HelloWorld.asp HelloWorld.asp

Достоинства ASP Простая процедурная модель программирования Доступ к COM компонентам –ActiveX Data Objects (ADO) –File System Object –Компоненты пользователя Основаны на скриптах: нет компиляции, просто скорректируй, сохрани & выполняй –VBScript, JScript – использование существующих навыков Поддерживают несколько языков скриптов ASP был очень популярен

Недостатки ASP Много кода (все операции требуют написания кода!) Плохая читаемость кода (слишком сложный; код и интерфейс пользователя перемешаны) Поддержка состояния страниц требует дополнительного кода Повторное использование кода затруднено Трудно поддерживать различные типы браузеров Проблемы установки (например, блокировка DLL) Плохая масштабируемость и доступность состояния Ограниченная поддержка кэширования, трассировки, отладки. Ограниченность производительности и безопасности скриптов.