Главная » Просмотр файлов » Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002)

Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (1160801), страница 154

Файл №1160801 Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002)) 154 страницаТ. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (1160801) страница 1542019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 154)

Но всЬ-серверы обладают дополнительными возможностями, которые позволяютт пм играть более активную роль. Они могут получать информацию от клиентского браузера (то есть от пользователя) и соответствующим образом менять свое 554 Глава ! 2. Сетевое программирование поведение. Мы, в сущности, используем тчсЬ-сервер для выполнения программ, и программ ированис и сЬ-страниц стало одним из последних измснсний нашей парадигмы программирования. Такие вьшолнясмые ч сЬ-страницы стали известны, как апплеты, или мини-приложения. Нскоторыс из них доступны на всех исЬ серверах. Кампания Эцп Мгсговузссшз разработала язык (ага, предназначенный для выполнения апплстов Анплеты мы обсулим в разделе 12.2.3. Формы. Форма представляет собой метод передачи информации между пользователем и к'сЬ-сервером через браузср.

Информация вводится пользователем на основс встроенных в НТМ1-файл команд. Затем зта информация передается нскоторой программе на сервере. Это так называемый файл оби(его швюзового интерфейса (Сощшоп Сассц ау 1пссг(асс, СС1). На тчсЬ-ссрвсрс обычно имеется специальный каталог с91-Ь!и, содержащий эти Сс'1-программьь Синтаксис элемснта <Тоги> задается как <ГСГЭ Ивгцсб = "Чин" всС1СП ='винсвнивинй СШ -сценарий' > текет <Нсгп> где тип можст быть или ОЕТ, или РО5Т.

При использовании метода ОЕТ данные пере- лаются СС!-сцена!тию чсрез нсремснную окружения ООЕРТ 5ТР1!чб, а в случае, если используется мстол РО5Т, информация переластся через обычный процесс чтения. Сцснарий С61 можст быть программой на С или на )ака, по чаще это вЬе!1-сцснарий, илн программа на языке ТС1 (Тоо! Сошп1апг! Евшйнаяе), или сценарий Рег!. Мы уже обсуждали Рег! как язык сценариев создания процессов с большими возможностями для обработки рггулярных выражсннй (сль главу 3).

Рог! оказался также подходящим языком для обработки данных форм НТМ1.. Мы приводим краткос описаннс сцспарисв Рсг! в разделе 12.2.2. Существует несколько элсментов, которые позволяют передавать информацию программе СС'!. Элсмепт <1прнС Суре = СехС папе="инв" иве = число> в больпншствс браузсров отображает па страницс НТМ1 поле ввода шириной в чиспс символов, заданных в атрибуте в1ге. Пара (имя — заеденный польэователеж в поле ивог)и текст) псредастся программе СС!, когда пользователь отпривляелй зти ланпыс на сервер. Эта пара может быть орг;шизована в Рог! как асс<йцнативный массив элементов данных для ассоциирования указанного имсни и введенного пользователем текста.

Тсг <!прцС Суре=вцбвпг иа1ие = "Отправить "> создаст кнопку с надписью Отправить, щелчок мышью па которой отправляет ввсденныс в форме лапшяе программе СС1 па ссрвсрс. Тсг «прцС Суре = "гевеС" на!це = "сброс" > создает кнопку с надписью сброс, щелчок на которой вызываст очистку вссх введенных в форме ланных и позволяет ввести новые данные до отправки формы на ссрвер. С помощью тога <й прнС>, задавая соответгтвующис значения атрибута Суре, можно создавать в форме другие элемсн ты управления.

Тсг <1прпС Суре = рав висгб> создает также текстовос иоле для ввода пользователем информации с одним отличием: вводимый текст пс отображастся на экранс (но умолчаннхй вмссто любого символа отображается символ «звездочка» (*). Как следует из его названия, он используется для ввода пароля. Тег <в прнС Суре = сцесЕЬсх> создаст элемент управления флажок, который может быть выбран нли сброшсн независимо от других флажков в форме. С помощью тегов <1прцС Суре = гаюо> можно создать группу переключатслсй, из которых можст быть выбран только олин.

Для этого следует при создании нерсключатслсй группы зздать для них одно и то же значение атри- 12.2. Всемирная паутина ЧЧЧДЧ 555 бутапапе.Тег<гехтагеа паве =- "паве" гснз = "пцв1" сс!з = "пэв2">,какитег<!при!>, создает текстовое иоле ввода, но с той разницей, что создаваемое иоле может быть многострочным (значение атрибута гоиз больше единицы). Атрибут со1 з задает ширину текстового поля в символах. Использование форм, сценариев СС! и динамического построения файлов НТМ В позволяет ЮЧуЪЧ функционировать так же, как функционирует любая другая компьютерная среда.

С помощью описанных средств можно разрабатывать поисковые системы, игровые программы и другие приложения, которые значительно повышают популярность ЪЧ~Ч)Ч. 12.2.2. Сценарии С6! На рис. 12.6 показано взанлщдействие между ч сЬ-страницей и сценарием СС1, написанным на языке Рсг!. Это простой пример клиент-серверного взаимодействия.

Ввод 11 М. в адресной строке ч сЬ-браузсра !стрелка 1 на рис 126) инициирует пересылку соответствующего файла НТМ1. с сервера на локальный компьютер, где браузер отображает полученный файл па экране !стрелка 2 иа рис. 12.6). После того как пользователь ввел необходимую информацию в поля формы полученной страницы НТМЕ., кнопка Отправить используется для отправки этой информации на сервер, где она обрабатывается сценарием хас11оп, написанным на языке Рег! (стрелкаЗ).

Сценарий Рег! обрабатывает полученные данные и создает НТМ1.-страницу, которая отображается в окне браузера пользователя. Эта страница Ев нашем примере) содержит информацию, которая была нсрсдапа на сервер!стрелка 4). Фактический код, который осуществляет это взаимодействие, приведен в листинге 12.2. Взаимодействие между чеЬ-страи, написанной па НТМ1., и сценарием СС! определяется элементом <гогв, приведенным в этом листинге. Последовательность действий, опредсляемая в этом листинге, такова. 1.

Атрибут а с!|оп элемента <1огв> указывает, что СС'1-программа хас11оп будет активизирована при передаче данных формы на сервер. 2. Текст, введенный пользователем в первое поле ввода формы, будет ассоциирован с именем х1'1гзЕ первого элемента <1прэт>, а текст, введенный во второе поле, — с именем х!аз1 второго элемента <1прць>, х11гзг и х1аз1 — произвольные имена, выбранные хусЬ-дизайнероы, который создавал данную страницу. 3. Когда пользователь щелкает мышью на кнопке Отправить!в предположении, что были введены имена Магч!и и Хе!!гоч йг в первое и второе поля соотвезствеино), на сервере вызывается программа хэсш оп, которая читает переменную окружения ООЕЙУ >ТЙ!НО со значением хЕ1гзг=иагн1п7х!аз1=7е1Есн11г.

На сервере Рег1-сценарий хас11оп действует следующим образом: 1. Сначала сценарий информирует опсрапионную систему о том, что он является программой Рог! !первая строка в листинге 12.2, б). 2. Результат работы этой программы посылается обратно хчсЬ-браузеру. Мы хотим, чтобы это была страница НТМ1., которую чей-браузер слщжет отобразить. Выводимая сценарием строка Сопгепт-1уре; Еех17Ьгв! сообщает ч еЬ- браузсру, какие данные будут передаваться далее, — в данном случае это ч еЬ-страница с текстом в формате НТМ1. 556 Глава 12.

Сетевое программирование Каталог св1ньгп Рис. 12.6. Сценарии С61 3. Каждый последуюший оператор рг~п1 языка Рег1 генерирует отображение очередной части страницы НТМЕ.. Программа таким образом динамически создает лчеЬ-страницу, написанную па НТМ1., которую н будет отображать лчеЬ-браузер. 4. Сушественной частью алгоритма программы хает~оп является цикл тогеасЬ.

Первая функция зр1~1 разбивает содержимое параметра ДЖЕКУ ЕТК!И6 среды окружения операционной системы (хэш-массив ФЕНт' в программе Рег1), созданного элементом 1!ТМ) <1огп>, на последовательность строк, используя в качестве разделителя символ а. Тем самым создается массив с двумя элементами (х11гзл = Иагюп. х1азг = Ее!Еогпгз). Оператор 1огеасЬ и функция зр111 могут работать с произвольным количеством имен. 5. Вторая функция зр1~1 разбивает каждый элемент созданного первой функцией зр1~ Е массива надва значения, используя в качестве разделителя символ =, которые присванваются соответственно переменным 1Кеу и луа1.

Таким образом создаются пары значений (х1~ гз1, йагн~ и) и (х1а з1, 1е1 Кои~ тх), которые затем сохраняются в ассоциативном массиве $сер, первое значение пары используется в качестве ключа, а второе — в качестве его значения. В дальнейшем доступ к сохраненным переданным пользователем дан- 12.2. Всемирная паутина)!)Пдд)Ч 557 ным может быть осуществлен с помощью конструкций 5Еир('хт1гат') и 5()пр('х1авт').

Листинг 12.2. НТМЕ-страница и сценарий Рег! а) ччеЬ-страница <НТИЕ> <НЕАО> <Т!ТСЕ>тест счз-сценария</ПТЕЕ </НЕАО> <ВОПЧ> <р> зто припер считывания двух злеиентов данных, введенных пояьзоватспен на ыеЬ-страницу: <Гоги асыоп-"ссп -Ь~ п/хасмоп" Фегцоб=рот> <р Иня = «прц! гуре-техт пане-хгзгвг взде=10> <Ьг>Фаиипия - <)прот дурсеьех! пане=к!азд зые=20> «Ьг> <зпрцг гурегюЬФзт ча1цс=Поспать> <тпрц! Ьуре=гевет ча1це-Сбросить> </Гоге> <ЛЮОТ> </НТНЕ> б) С61-сценарий хасбтоп, написанный на языке Рег! 0'/цзг/Ьтп/рег) рюпь "Сопдепг-Туре: тех!/ьгл)'тптп".

ргзпт "~МФ)>~пеас~)п": ргзпт "<гзт1е>Припер РЕЙС-сценария</ттд1е \п"; ргзп! "</Ьеаб><Ьоцу>)п"; ргзп! "<р>ООЕЙЧ 5ТК!НО ЛЕНЧ('ООЕКЧ 5ТК!НО'))п"; Тогеасц ! вр1здТ /б/. ФЕНЧ('ООЕКЧ 5ТК!НО'))) ( (адеу. Ъча1 ) = вр1тг! /-/, $, 2). абер(адеу) = ача): ) ргтп! "<р> Иня: <Ь>!!ар['х!згвв')</Ь \и"; рг!пт "<р> Фанипия: <Ь>дояр('х1аас')</Ь>)п", рюпд "</Ьоцу></Ьса)>)п" Этот пример показывает только основной механизм )взаимодействия между тчеЬ- страницами и С61-спспарпями. Существуют и другис аспекты: 1. Однажды переданные и дскодпрованные в операторе !ОгеасП параметры формы в дальней)нем могут быть использованы программой па Рсг), напримср, для получения информации из файлов, расположенных на сервере, для оформления заказа пользователя т)(/сЬ на какие-либо товары или лля выполнения какой-либо иной задачи.

2. Представленная в листинге 12.2, б операция выделения из перемснной окружетмтя Я~УЕЕУ ВТЕ11чС переданных данных формы (вторая т(зут)кция вр1) Ь) опредслсна нс полностью. Дело в том, что прп перслачс на сервер данных формы в строкс запроса (метод ОЕТ) вес пробслы во введенных пользователем в поля формы данных заменяются на символы -'. Таким образовт, Пробелы могут зал~сняться нс только на символ И цо и ня шестнадцатеричное значение пробела т20 Замена пробслон, «синопов хыщпн строк и других гпсциатьных символов и строкс запроса ня их шсстнядкпсрнчныс зпнчспин, начин иогцисся с символа т, называется Е)ЙЕ-копи!зонанисм. — /Три- меч. науч, ред. 558 Глава 12.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6417
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее