Перейти к содержимому

Фото
- - - - -

JSP -> dynamically launching java code


  • Вы не можете создать новую тему
  • Please log in to reply
6 ответов в этой теме

#1 _kosha

_kosha
  • Новобранец
  • 10 сообщений
  • Откуда:Tallinn

Отправлено 03 Август 2005 - 10:16

В обшем такая проблема:

На JSP странице ест форма на с кнопкой "run". Необходимо сделат так, чтобы введённый в форму java код после нажатия кнопки выполнялся.

Т.е. мне, КАЖЕТСЯ, нужен класс, который будет рассматриват и "запускат" полученный набор символов как ява код. Sorry за тупые вопросы - JSP свалился на головы внезапно.

Сообщение изменено: _kosha (03 Август 2005 - 10:38 )

  • 0

#2 ParadoxL

ParadoxL
  • Постоялец
  • 4 756 сообщений
  • Откуда:Edinburg

Отправлено 03 Август 2005 - 12:23

_kosha, именно ява? Ну тогда записываешь это все в файл ... компилишь это ... и делаешь Invoke
  • 0
Victoria nulla est, Quam quae confessos animo quoque subjugat hostes ...
Верю в смерть после жизни, любовь после секса и в крем после бритья ...

#3 _kosha

_kosha
  • Новобранец
  • 10 сообщений
  • Откуда:Tallinn

Отправлено 03 Август 2005 - 14:10

_kosha, именно ява? Ну тогда записываешь это все в файл ... компилишь это ... и делаешь Invoke

Просмотреть сообщение

Ммм... Именно Ява. Я сеичас делаю через beanshell.
Если не получится - попробую через Invoke. Толко я в JSP записыват в фаилы не умею :(
  • 0

#4 _kosha

_kosha
  • Новобранец
  • 10 сообщений
  • Откуда:Tallinn

Отправлено 04 Август 2005 - 14:53

Разбираюсь с BeanShell. Использую Interpreter для обработки java кода. Проблема - выходные данные из(вместо) System.out надо перевести в out (на JSP страницу).

Могу получить некий PrintStream, который есть "outptut stream associated with this interpreter". :angry:
  • 0

#5 ParadoxL

ParadoxL
  • Постоялец
  • 4 756 сообщений
  • Откуда:Edinburg

Отправлено 09 Август 2005 - 12:30

_kosha, есть еще вариант :). Создаешь JSP wrapper (обёртку) для кода, который полуаешь из формы. То есть создаешь файл JSP к тело которого помещаешь полученный код ... дальше просто ссылаешься на него (можно думаю через include).
  • 0
Victoria nulla est, Quam quae confessos animo quoque subjugat hostes ...
Верю в смерть после жизни, любовь после секса и в крем после бритья ...

#6 tomatensaft

tomatensaft

    Samurai Jack

  • Пользователь
  • 449 сообщений
  • Откуда:Tallinn

Отправлено 12 Август 2005 - 08:56

Вообще-то, если мне не изменяет память, в стандартной библиотеке Java есть классы доступа к компилятору... Бишь берешь строку с кодом, компилируешь в байт-код (как результат -- другая строка, с бинарными данными),потом импортируешь и обращаешься к этому байт-коду, как к модулю Java ("классу").

В этом случае, не нужно никаких временных файлов, все делается на лету...

(Или, может, я с Python путаю?.. В Python-то точно есть такая фича... А вот насчет Java... Не уверен.)

Сообщение изменено: tomatensaft (12 Август 2005 - 08:58 )

  • 0
"This is all I want'd t' say 'bout dat..." © Forest Gump

#7 ParadoxL

ParadoxL
  • Постоялец
  • 4 756 сообщений
  • Откуда:Edinburg

Отправлено 12 Август 2005 - 12:27

tomatensaft, придется делать memmory mapped файлы для это фичи, так как насколько я знаю нет прямого компилирования строки ... так как в Java всё идет классами и зависимостями ...то есть инклуди и всё остальное, то компилятор должен подсоединять в процессе компиляции, что весьма сложно представляется при динамическом компилировании, как в твоем примере.
  • 0
Victoria nulla est, Quam quae confessos animo quoque subjugat hostes ...
Верю в смерть после жизни, любовь после секса и в крем после бритья ...