OberonCore
https://forum.oberoncore.ru/

Как использовать потенциал ВВ в детском кружке (не школе)?
https://forum.oberoncore.ru/viewtopic.php?f=7&t=4999
Страница 2 из 2

Автор:  tvorimvsevmeste [ Суббота, 01 Март, 2014 21:13 ]
Заголовок сообщения:  Re: Как использовать потенциал ВВ в детском кружке (не школе

Пётр Кушнир писал(а):
Код:
Log.String('запрос'); Log.Ln;

Петр! Очень прошу Вас, покажите пример с html-формой, посылающей сервлету хотя бы что-нибудь. Прием сообщений после PHP кажется сложноватым. Снизойдите пожалуйста до неофита! Буду очень благодарен.

Автор:  Пётр Кушнир [ Воскресенье, 02 Март, 2014 14:20 ]
Заголовок сообщения:  Re: Как использовать потенциал ВВ в детском кружке (не школе

Далее я разместил код хэндлера Do, предполагается, что остальной код модуля не меняется. По сути, ему и не надо меняться, весь сервлет расположен в этом методе.

В сообщении m есть описание запроса .rq, и, в зависимости от запроса есть еще и данные .query.
Опишем простую форму, которая будет использовать метод POST для отправки данных на сервер.
Данные на сервер отправляются на адрес "/".
На сервере мы анализируем запрос, и если вдруг POST, то проверяем .query на NIL. Query содержит в себе список полей с идентификаторами, поэтому можно просто запросить по идентификатору значение этого поля val.
Далее мы значение поля отправляем обратно в виде строки. Вот и всё.
Код:
   PROCEDURE (s: Servlet) Do (m: O3baseWebServlets.Msg);
      VAR file: O3baseFiles.File; val: O3baseWebHttp.QVal;

      PROCEDURE Generate (IN text: ARRAY OF CHAR);
         VAR wr: O3baseFiles.Writer; i: INTEGER;
      BEGIN
         file := O3baseFiles.factory.Temp();
         wr := file.WrNew();
         i := 0;
         WHILE i < LEN(text$) DO
            wr.Char(text[i]);
            INC(i)
         END
      END Generate;

   BEGIN
      Log.String(m.rq.uri$); Log.Tab; Log.String(m.rq.method$); Log.Ln;
      IF (m.rq.uri$ = '/') THEN
         IF m.rq.method$='GET' THEN
            Generate('<html><body><form method="post" action="/"><input name="text"><input type="submit"></form></body></html>'); (* как будто загрузили с диска *)
         ELSIF m.rq.method='POST' THEN
            IF m.query#NIL THEN val:=m.query.Get('text') END;
            IF val#NIL THEN
               Generate('Hello, world!'+'</br>'+val.sp$);
            END;
         END;
      END;
      IF file # NIL THEN m.Respond(O3baseWebHttp.ResponseUtf8Html(file)) END;
   END Do;

Автор:  Пётр Кушнир [ Воскресенье, 02 Март, 2014 14:33 ]
Заголовок сообщения:  Re: Как использовать потенциал ВВ в детском кружке (не школе

Но вообще сейчас ведь модно делать веб-приложения на стороне клиента, а на сервере выполнять только серверную часть работы.
http://ru.wikipedia.org/wiki/REST http://ru.wikipedia.org/wiki/Ajax

Автор:  tvorimvsevmeste [ Воскресенье, 02 Март, 2014 20:09 ]
Заголовок сообщения:  Re: Как использовать потенциал ВВ в детском кружке (не школе

Пётр Кушнир писал(а):
Но вообще сейчас ведь модно делать веб-приложения на стороне клиента, а на сервере выполнять только серверную часть работы.
http://ru.wikipedia.org/wiki/REST http://ru.wikipedia.org/wiki/Ajax

Но тогда педагогический потенциал BB будет же не причём? о3 я хочу использовать, чтобы программы, написанные кружковцами в ВВ, можно было использовать для iframe приложений в ВКонтакте. Для соблазнения и воодушевления обучающихся на продолжительную работу.
PS. За пример большое спасибо. Именно это я и хотел найти.

Автор:  Роман М. [ Среда, 02 Апрель, 2014 15:09 ]
Заголовок сообщения:  Re: Как использовать потенциал ВВ в детском кружке (не школе

Ответил в теме Обучение на Обероне и Компонентном Паскале

Страница 2 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/