Java-апплет - скачать файл с помощью браузера - PullRequest
0 голосов
/ 21 июля 2010

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

С сервлетом это просто с javax.servlet.http.HttpServletResponse, но возможно ли это с помощью апплета?

Я пытаюсь сделать это без подписи апплета или использования какого-либо сервлета.

Ответы [ 4 ]

2 голосов
/ 21 июля 2010

Не используйте апплет для этого. Иди с сервлетом.

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

AppletContext a = getAppletContext();
URL url = new URL(link_to_your_servlet);
a.showDocument(url,"_blank");

Это откроет новое окно в браузере и загрузит файл.

0 голосов
/ 21 июля 2010

Вы можете или не можете использовать LiveConnect для изменения DOM текущей страницы.Это зависит от того, что вы генерируете.Обычно вы хотите создать на сервере.

0 голосов
/ 21 июля 2010

Апплет может запрашивать ресурсы с веб-сервера, к которому он пришел, например images - Applet.getImage() или получить другие файлы, например, так:

URL url = new URL("myfile.txt");
URLConnection uc = url.openConnection();
InputStream in = new BufferedInputStream(uc.getInputStream());

int d;
while ((c = in.read()) != -1) {
  // do something with d (remember to cast to byte!)
}
0 голосов
/ 21 июля 2010

Апплет - это просто файл JAR, который вы помещаете на веб-сервер, а затем добавляете описание JNLP, чтобы браузер знал, что делать. Думайте о ней как о сложной HTML-странице, потому что она не входит в WEB-INF, но помимо других файлов для браузера (HTML, внешний JavaScript, изображения, CSS, ...)

Эта статья от Oracle описывает шаги.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...