Foros del Web » Programación para mayores de 30 ;) » Java »

Servlet y Excel

Estas en el tema de Servlet y Excel en el foro de Java en Foros del Web. Hola a todos, me ocuerre lo siguiente: - Si desde un navegador realizo una llamada a mi servlet. - El servlet genera un archivo Excel, ...
  #1 (permalink)  
Antiguo 24/02/2010, 05:26
 
Fecha de Ingreso: febrero-2010
Mensajes: 6
Antigüedad: 14 años, 9 meses
Puntos: 0
Servlet y Excel

Hola a todos, me ocuerre lo siguiente:

- Si desde un navegador realizo una llamada a mi servlet.
- El servlet genera un archivo Excel, por lo que retorno dicho archivo.
- El navegador detecta que se trata de un excel y muestra una ventana de dialogo para indicar si se desea abrir o guardar.
- Si pulso abrir me visualizar el archivo incrustado dentro del navegador.
- Si pulso guardar me lo almacena en el directorio local de pc que yo le indique, el caso es que si utilizo esta opción en el navegado se muestra el mensaje:

"Se Canceló la navegación a la página web"
Puede intentar lo siguiente:
* Actualice la página

Me gustaría saber si existe alguna forma de que si el usuario indica guardar el documento se pueda hacer que no salga ese mensaje o en su lugar mostrar una página html indicando por ejemplo que el fichero se ha generado correctamente.

Un Saludo y muchas gracias.
  #2 (permalink)  
Antiguo 24/02/2010, 06:16
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 16 años, 3 meses
Puntos: 188
Respuesta: Servlet y Excel

Haz algo de debug y logging para ver donde se te bloquea en el código.
  #3 (permalink)  
Antiguo 24/02/2010, 06:41
 
Fecha de Ingreso: febrero-2010
Mensajes: 6
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Servlet y Excel

Hola, no se bloquea el archivo se guarda correctamente el local, pero claro en el navegado aparece esa ventana.
Lo que quiero es poder cambiarla. Ahora no hago nada solo retorno desde el servlet:

response.setHeader("Content-Disposition", "inline; filename=\""
+ nameFile
+ new java.util.Date().getTime() + ".xls\"");
OutputStream out = response.getOutputStream();
response.setContentType(CONTENT_TYPE_EXCEL);
response.setHeader("expires", "-1");
response.setHeader("Pragma", "public");
response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
response.setHeader("max-age", "0");
wb.write(out);
out.close();

donde wb es mi fichero excel.

Esto funciona bien...pero no como puedo hacer que si el usuario guarda el fichero en local poder cambiar la página del navegado o evitar que se muestre ese mensaje.

La llamada al servlet la estoy haciendo así:
http://localhost/xxxx.Miservlet?i=90

en el método get de mi servlet tengo:
public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException {
doPost(req, res);
}

y realmente el negocio lo tengo en el doPost

Gracias...

Etiquetas: excel, servlet
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:42.