вызвать html встроенный апплет с помощью urlconnection - PullRequest
0 голосов
/ 04 июля 2011

У меня есть следующая html-страница простого встраиваемого апплета:

<html>
    <applet code="WelcomeApplet.class" archive="WelcomeApplet.jar" width=300 height=30>
    </applet>
</html>

Если я позвоню на эту страницу (то есть адрес "http://192.168.0.2/WelcomeApplet.html"), апплет правильно отображается в браузере.

Я должен вызывать эту страницу только сервлетом, потому что страница URL не должна отображаться, поэтому в методе doGet сервлета вставляется следующий код:

URL url = new URL("http://192.168.0.2/WelcomeApplet.html");    
URLConnection conn = url.openConnection();     
conn.setRequestProperty("Content-Language", "en-US");    
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");    
conn.setDoInput(true);    
conn.setUseCaches(false);    
conn.setAllowUserInteraction(true);    

BufferedInputStream buffer = new BufferedInputStream(conn.getInputStream());    
StringBuilder builder = new StringBuilder();    
int byteRead;    
while ((byteRead = buffer.read()) != -1)    
    builder.append((char) byteRead);    
buffer.close();    
out.write(builder.toString());     

Все отлично работает, html-разбор аналогичен приведенному выше, но апплет не отображается, JVM сообщает: "WelcomeApplet.class not found"

Похоже, это не проблема безопасности, а проблема реализации (я думаю).

Есть идеи?

Спасибо

1 Ответ

0 голосов
/ 04 июля 2011

Атрибут code должен содержать имя класса Java, а не файла.(Файл JAR именуется атрибутом archive.) Таким образом, значение атрибута code должно быть просто WelcomeApplet, при условии, что оно находится в пространстве имен по умолчанию.

...