Pregunta

Tengo un Applet de Java de la aplicación.El caso de uso es el siguiente:

Los usuarios de invocar una URL que se asigna a un Servlet.El servlet como una respuesta devuelve una página JSP a partir de la cual los usuarios pueden navegar en la interfaz de usuario.Toda la interfaz de usuario es de Swing [básicamente un JApplet].Los eventos en la interfaz de usuario se gestionan de la manera tradicional [ActionListeners, SelectionListeners...].Ahora tengo el siguiente requisito:

Hay un archivo en el directorio del servidor que me suponía para permitir a los usuarios descargar a través de mi aplicación.Necesito dar a los usuarios un enlace en mi interfaz de usuario, el chasquido de que se active la descarga.

Este puede ser realizado teniendo en cuenta las características de seguridad de JApplets?También considere el caso de mecanismo de control de los componentes Swing.

¿Fue útil?

Solución

Las opciones para una arena en caja applet.

Existen 2(.2) maneras de ir (que puedo pensar inmediatamente).

  1. El uso de la AppletContext.showDocument(URL,String) método para activar la descarga con el navegador.
  2. Para la "Próxima Generación" plug-in 2 basado en applets (1.6.0_10+ en Sun/Oracle, JVM) es posible conectar a la funcionalidad de la JNLP La API de Java Web Start.
    1. El JNLP API proporciona la posibilidad de acceder al sistema de archivos local en una arena de caja de la aplicación o applet.Aquí está mi pequeño demo.de la JNLP de la API de servicios de archivo.
    2. El JNLP API también proporciona la BasicService.showDocument(URL) método.Esta versión es ligeramente superior a la AppletContext equivalente por el hecho de que devuelve un boolean para indicar el éxito o el fracaso.El applet basado en la versión podría fallar, y si lo hace, lo hace en silencio.Véase también el demo.de la BasicService.

Una confianza applet puede usar este proceso.

  1. Pop un JFileChooser para permitir al usuario decidir dónde guardar el File.
  2. Si el selector devuelve un válido File (lo que indica que la acción no estaba cancelado) continuar con el ahorro.
  3. Obtener un InputStream a partir de la URL.
  4. Establecer un OutputStream a la File.
  5. Leer bytes desde el InputStream, escribe en la OutputStream.
  6. Enjuagar y repetir hasta que lea produce -1.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top