Сохранить переменную апплета Java в Mysql - PullRequest
0 голосов
/ 01 ноября 2010

Привет Я провел много исследований о лучшем способе связи между Java-апплетом и базой данных MySql. У меня есть проигрыватель мелодий, в который входят студенты, это Java-апплет со слайдером скорости. Я хочу сохранить скорость, с которой они играют каждую мелодию, чтобы она возвращалась к той же скорости при следующем открытии этой мелодии. Кажется, у меня есть несколько вариантов, ни один из которых не выглядит очень аккуратным.

  1. Используйте функцию JavaScript для периодически проверять скорость и сохранить его в куки, а затем на каждой странице сайт должен был бы проверить файлы cookie относятся к каждой мелодии.
  2. Сделайте каждую ссылку на странице функция JavaScript, чтобы проверить переменная скорость в апплете и добавить это к perameter в URL тогда перенаправить, так что следующая страница PHP может сохранить скорость в базе данных. это способ, когда пользователь перемещается от скорость будет сохранена, но это не победит; т работать, если используется кнопка возврата.

Есть ли лучший способ сделать это?

Ответы [ 4 ]

1 голос
/ 01 ноября 2010

Используйте API JNLP, и проблемы должны быть решены.

Начиная с Java 1.6.0_10 +, можно использовать сервисы Java Web Start API (JNLP API) во встроенном апплете. JNLP API предоставляет сервис PersistenceService. Вот небольшая демоверсия . службы постоянства .

Если пользователь нажимает кнопку «Назад» (или иным образом покидает страницу), вызывается метод destroy (). Переопределите метод уничтожения и сохраните данные в это время.

0 голосов
/ 01 ноября 2010

Нет необходимости использовать JavaScript.

В приведенном ниже Java-коде переменные помещаются в скрипт PHP на веб-сервере. показывает ответ сервера на консоли

private void post()
  throws MalformedURLException, IOException
{ URL url;
  URLConnection con;
  OutputStream oStream;
  String parametersAsString;
  byte[] parameterAsBytes;
  String aLine; // only if reading response

  parametersAsString = "msg=hi&to=memo";
  parameterAsBytes = parametersAsString.getBytes();
  // send parameters to server
  url = this.getCodeBase();
  url = new URL(url + "scriptfile.php");
  con = url.openConnection();
  con.setDoOutput(true);
// setDoInput(true); // only if reading response
  con.setDoInput(false);
  con.setRequestProperty("Content=length", String.valueOf(parameterAsBytes.length));
  oStream = con.getOutputStream();
  oStream.write(parameterAsBytes);
  oStream.flush();

 // read response from server & show the server response on the Java console or whatever ...
  BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
  aLine = in.readLine();
  while (aLine != null)
  { System.out.println(line);
    aLine = in.readLine();
  }
  in.close(); 


  oStream.close();
} 
0 голосов
/ 01 ноября 2010

Не совсем понятно, как все это настроено, так как у вас мало деталей.Однако, предполагая, что у вас есть настоящий Java-апплет, я бы сказал следующее:

  1. Если Java-апплет требует входа в систему (то есть он знает, кто пользователь), тогда он может сохранитьпредпочтение на сервере.Чтобы сделать это, вы можете подключить апплет к серверу с помощью JDBC, что, как правило, не очень хорошо для интернет-апплетов, или вы можете заставить апплет отправить сообщение серверному процессу, например веб-серверу.Этот процесс подключается к серверу mysql.
  2. Апплет может напрямую связываться с браузером с помощью Javascript.Таким образом, вы можете сделать так, чтобы апплет установил cookie при смене слайдера, вместо того, чтобы Javascript установил его.
0 голосов
/ 01 ноября 2010

Я бы посоветовал вам получить апплет для обновления базы данных. При изменении ползунка скорости вы можете запустить обновление базы данных или вам может потребоваться объединить несколько изменений в один запрос в зависимости от использования.

Когда апплет меняет мелодию, он также может самостоятельно искать правильную скорость.

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

...