Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Web Server Application


Автор: Zzz 31.8.2006, 22:59
Доброго времени суток! 
Есть Web Server Application. При обращении к нему срабатывает один из PageProducer'ов. Он высылает пользователю html, на которой есть форма. При нажатии на submit форма передается на сервер и обрабатывается этой cgi. Но! При формировании новой страницы я не знаю что пользователь ввел на предыдущей, т.к. оно (формирование) происходит до обработки WebAction'ом ответа. 
Как можно поменять порядок, чтобы сначала была обработка ответа, и только потом  формирование новой страницы..... 

Автор: Romikgy 1.9.2006, 10:48
чет вы мудрите тов. Zzz, 
Цитата(Zzz @  31.8.2006,  21:59 Найти цитируемый пост)
обрабатывается этой cgi

вот в нем и есть ответ с формы
Цитата(Zzz @  31.8.2006,  21:59 Найти цитируемый пост)
При формировании новой страницы я не знаю что пользователь ввел на предыдущей, т.к. оно (формирование) происходит до обработки WebAction'ом ответа. 

вот это мне совсем не понятно smile
Цитата(Zzz @  31.8.2006,  21:59 Найти цитируемый пост)
Как можно поменять порядок,

Руками если это возможно .
PS Что есть 
Цитата(Zzz @  31.8.2006,  21:59 Найти цитируемый пост)
Web Server Application


Цитата(Zzz @  31.8.2006,  21:59 Найти цитируемый пост)
PageProducer'

или вы думаете что все этим пользуются?

Автор: Zzz 1.9.2006, 16:43
File->New->Other->Web Server Application->CGI Stand-alone  executable.
Имеем WebModule. У него есть Actions, каждая из которых реагирует на определенное событие.
Например: 
http://.../cgi.exe/One отреагирует один из actions'ов
http://.../cgi.exe/Two отреагирует другой  actions
http://.../cgi.exe отреагирует тот который выставлен как реакция CGI по умолчанию.

У каждого из Actions'ов есть свойство Producer, которое указывает на определенную компоненту PageProducer. Его задача сформировать страничку которую получит пользователь.

Т.е. мы получаем, например:

Код

procedure TWebModule1.WebModule1waiStartAction(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
 - это WebActionsItem
и
Код

procedure TWebModule1.ppStartHTMLTag(Sender: TObject; Tag: TTag;
  const TagString: String; TagParams: TStrings; var ReplaceText: String);
 - это Page Producer

в них ppStartHTMLTag отвечает за формирование страницы посылаемой пользователю, а WebModule1waiStartAction за обработку того что пользователь ввел.

При обращении http://.../cgi.exe/ppStart я обращаюсь к WebModule1waiStartAction, а он поступает след. образом:
1. Вызывает ppStartHTMLTag
2. Тот в свою очередь формирует страничку, ее отсылает пользователю и возвращается в actions
3. А он уже обрабатывает данные поступившие от пользователя

В итоге в момнет формирования страницы я не знаю что было передано пользователем.

Код процедур ничего не даст.... 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)