Вызов метода java с веб-страницы для создания эскиза обработки и отображения этого эскиза на веб-странице - PullRequest
0 голосов
/ 30 января 2020

Я написал программу обработки в Eclipse, которая генерирует изображение и сохраняет его в указанном c месте на моем компьютере.

Можно ли запустить эту программу из файла javascript, чтобы при нажатии пользователем кнопки на веб-странице вызывался соответствующий метод в программе обработки, генерировалось изображение и, наконец, изображение отображается на веб-странице.

У меня нет большого опыта в этой области, но я полагаю, что я мог бы сделать так, чтобы метод Processing сделал запрос POST после сохранения изображения, чтобы его можно было отправить на соответствующий сервер?

Основная проблема, с которой у меня возникают проблемы, заключается в том, как на самом деле вызвать метод с веб-страницы. Использование Processing. js или преобразование моего java кода в javascript на самом деле не вариант, так как мне нужно импортировать ANTLR в мою программу Processing, которую, насколько я знаю, можно использовать только с Java. * 1007. *

Просто чтобы прояснить, моя программа - это файл .java, который генерирует изображение в виде эскиза Обработки путем импорта processing.core.

Я открыт для изучения новых технологий и c.

Любая помощь очень ценится.

1 Ответ

1 голос
/ 30 января 2020

Вы захотите вызвать HTTP-запрос из JavaScript, который вызовет функцию на вашем бэкэнде. Это может быть достигнуто с помощью Fetch API , который является интерфейсом для извлечения и отправки ресурсов.

Поскольку вы не можете запустить Java в Интернете, вам нужно полагаться на некоторые форма связи между клиентом JavaScript и сервером Java. Вы можете отправлять данные туда и обратно для обновления обоих концов.

Ниже я создал примеры того, как это может выглядеть с вашей стороны. У вас есть кнопка, функция, которая обращается к серверу, и прослушиватель событий, который срабатывает при каждом нажатии кнопки, подключая кнопку к функции.

<!-- Create a button in html -->
<button class="process">Process me</button>
// Write a function that sends a HTTP request to your server.
// Can be either POST or GET. Change the 'yoururl' part to your own endpoint.
// The rest of the function will check if the request has been successful and 
// returns a string with the received data from the server, if there is any.
function process() {
  return fetch('yoururl/process', {
    method: 'POST',
  }).then(response => {
    if (response.status === 200) {
      return response.text();
    }
  }).catch(error => {
    console.log(error);
  });
}
// Select the button from the HTML.
const button = document.querySelector('.process');

// Fire a function when the button is clicked.
button.addEventListener('click', function(event) {
  process().then(text => {
    console.log(text); // Show the text that has been received from the server.
  });
});

Но ваш вопрос нет четкого ответа, так как он достаточно широк. Я надеюсь, что по крайней мере это поможет вам понять, как это может работать.

...